個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A robot duck that lives on your Mac. Unofficial desktop pet inspired by Pollen's Microduck. Free, open source.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A 25 cm robot duck walks along the bottom of your screen. It climbs your windows, falls over and gets back up, and talks back. Free and open source.
It is Pollen Robotics' Microduck in simulation: their MuJoCo model and their trained walking policies, from the open source Microduck simulator by Pollen Robotics and Hugging Face. Every step is a trained robot policy driving physics, not an animation.
It also talks back through Claude, keeps your Mac awake when you ask, naps, sulks when ignored, likes being petted and chases a beach ball.
Download the .dmg from Releases, drag Digital Duck to Applications, and open it. Apple Silicon and Intel builds are both there.
A 🦆 appears in the menu bar. That is the whole setup.
brew install media-control; volume works without it. It pauses the music while you talk to it and plays it again after its answer.Right-click the duck, or click 🦆 in the menu bar, for everything else. Settings… (⌘,) has every option in one window.
Chat needs a Claude brain. Either works:
claude CLI is installed and logged in, the duck uses it. Nothing to set up. Replies use your Claude account.Without either, the duck still walks, climbs and plays. It just can't talk back.
Settings → Model picks Haiku (quickest), Sonnet or Opus.
A new duck can only talk. Settings → What the duck can do has four levels (they need Claude Code; the API key brain only chats):
Advanced: flags in extraArgs in the config go to the claude CLI as they are.
Each of these is a switch in Settings:
Alt+D and talk. Needs brew install whisper.cpp and a speech model in models/ inside the config folder (ggml-base.en.bin from whisper.cpp). Transcribed on your Mac.{"message", "source"} object per line).gh CLI to tell you when checks go red or green, or a review lands.mcpServers in the config, so the duck can answer from them. Needs Claude Code.Everything is saved to ~/Library/Application Support/Digital Duck/config.json. Edit raw config… at the bottom of Settings opens it.
What it reads, all on your Mac:
media-control installed: the title, artist and play state of whatever the Mac shows as Now Playing. Without it: whether Music or Spotify is playing, and macOS asks first.gh, only with pull request watch on.What it sends:
No analytics, no telemetry, no accounts. Its notebook, reminders and chat history stay in the config folder. So does app.log, a log of what the app did, kept under about 4 MB. It can include reminder and nudge text, song titles and app names, and never leaves your Mac.
A see-through Electron window covers the screen. Inside, Pollen's MuJoCo model runs in WebAssembly and their trained policies run through ONNX Runtime, 50 times a second, drawn with three.js. A small Swift helper lists your windows, and the top edge of each becomes a ledge in the physics. Chat goes to Claude, and macOS say gives it a voice.
Needs Node 20+, macOS and Xcode command line tools.
git clone https://github.com/gurmundi7/digital-duck
cd digital-duck
npm install
npm start
npm test runs the tests. npm run dist builds the .dmg files into release/. Signing and notarizing use the Apple Developer ID in your Keychain and a notarytool profile set in APPLE_KEYCHAIN_PROFILE.
Debugging: kill -USR2 <pid> writes snap.png (the duck's own render) to the config folder and logs its pose. kill -USR1 <pid> runs debug.js from that folder inside the renderer (duck.sim, duck.behaviour, duck.bubble are global).
electron/ window, menu, brain, speech, helpers (Swift)
renderer/ physics and policy loop, behaviour, bubble, audio
sim/ Pollen's simulator source and assets, unchanged (Apache 2.0)
electron/winlist.swift, the window list that becomes ledges (CoreGraphics)electron/agenda.swift, meeting reminders (EventKit)electron/micwatch.swift, whether a microphone is in use, for call detection (CoreAudio)say voicesbrew install whisper.cppmedia-control, and the Mac volumeBug reports, "can it do X?" ideas and pull requests are welcome. See CONTRIBUTING.md.
The robot, its model, policies, meshes, voices and the simulator are by Pollen Robotics and Hugging Face, under Apache 2.0 (sim/LICENSE-pollen-simulator). The model and the walking policies come from pollen-robotics/microduck and pollen-robotics/microduck_rl. Physics by MuJoCo, rendering by three.js, policies run on ONNX Runtime Web, all inside Electron. Microduck is Pollen Robotics' robot. Digital Duck is not affiliated with or endorsed by Pollen Robotics or Hugging Face. If you like the duck, get the real one.
Digital Duck is Apache 2.0. See LICENSE and NOTICE.