Say it once. Hear back when it's done.
An open-source personal AI on your own Mac or server. You talk to one partner; it runs the
work on Claude Code, Codex, pi or DeepSeek Harness with the plans you already pay for, and
speaks up only when something is done or needs you.
ducter.ai · Getting started · Docs · 中文
- One partner, not a wall of sessions. You write "Fix the flaky compaction test in HawDB and tell me when it's done." Your partner starts the task, watches it, and comes back with the result, its proof and Merge into main. You can open any task and steer it yourself.
- Your agents, your subscriptions. Tasks run on Claude Code, Codex, pi or DeepSeek Harness, signed in as you, with your own skills and settings. No Ducter account, no API key to start.
- Your computers. It lives on your Mac, or on a Linux server you own, at home or in the cloud, so it keeps working while your laptop sleeps. Lend it more computers to run tasks on.
- Quiet until it matters. Done comes with proof, a question comes with a default it will take if you don't answer, and on a quiet day you hear nothing. Reply to a task's result and that task carries on.
- Open source and self-hosted. Hosted agent workbenches come and go, and the best personal AIs are closed. Ducter is Apache 2.0 and runs where you put it, so nobody can wind it down for you (why it exists).
- Ready the first time. One line installs it; it sets up what's missing and greets you with things to start from your own folders and accounts.
| Mac | The desktop app, Apple silicon. Ducter can live here and run tasks here. |
| Linux server | x64 or arm64, at home or in the cloud. Runs as a service and stays on. |
| iPhone and iPad | One app, in public beta on TestFlight. On a wide iPad, On hand stands beside the conversation. |
| Android | The Ducter app, from each GitHub release; it updates itself, and a foldable opened like a book shows the conversation and On hand on either side of the fold. Or your phone's browser. |
| Terminal | The ducter command, on the Mac or the server. |
A phone needs an address it can reach from outside: Ducter on a server with your own domain, or a Mac at home set up From outside with your domain on Cloudflare (Your phone).
You need Claude Code or Codex signed in with your own account; if neither is there, the Mac app installs one and walks you through signing in.
On a Mac (Apple silicon), paste this into Terminal. It installs the signed app and the
ducter command, and opens it:
curl -fsSL https://ducter.ai/install.sh | shOr download the .dmg from the latest release.
On a server, run it as a service, then give it your domain (HTTPS, and a code for your Mac and phone):
curl -fsSL https://ducter.ai/install.sh | sh -s -- --service
ducter domain ducter.example.comOn iPhone or iPad, join the TestFlight beta and
connect with the address and code from ducter pair.
With your AI agent: ask it to "Install the ducter-deploy skill from github.com/wey-gu/ducter/tree/main/skills and deploy Ducter on my server." (For AI agents)
Building from source, the walkthroughs and every command: Install and Getting started.
- Coding work. Each task gets its own git worktree and
ducter/…branch; merging is your call. - Reviews and write-ups. "Review this week's open PRs." "Write the v0.4 release notes."
- Things that take time. Wait for a CI run, keep trying until the tests pass, or run every Monday at 9 (Waiting and routines).
- The web. It browses in its own Chrome; watch it from your phone and take a turn when a page needs you (Your devices).
- Your Mac's apps, and a phone of its own. With Use the computer on a Mac, a task exports the Keynote deck or answers the mail in that Mac's apps, in the background, with Stop in reach; password managers, banks and System Settings stay out of reach. Use a phone gives it an Android phone of its own, running on a Mac with Apple silicon, for apps that live only on a phone. Anything that sends, pays or deletes waits for your Go (Your devices).
- Errands. Book and buy with your saved sign-ins and cards, filled in without being seen, and every payment waits for your OK (Autofill). A task that needs a key (a deploy key, an API key) asks you with a card, never in the chat, and the key stays on your own computer. Calls through Tuwa, after you tap Call (Phone calls; needs a Tuwa account).
- Your mail and calendar. Say yes once, and it tells you only what needs you: a first look over the last two weeks, then a morning message with at most three things, and right away only when waiting would cost you (Accounts it can read).
- What you already decided. With Nowledge Mem (optional), your partner and its tasks share one memory with your other AI tools.
Early preview. Expect rough edges and breaking changes. See the changelog.
For people who already run several agents at once, what makes them hold up as one partner:
- One adapter for four agents, through OAR: clean sessions that still carry your own skills and settings, and a partner that can only read and decide on every one of them (enforced, not asked).
- Small windows on purpose. About 200K tokens per session; a long conversation stays coherent through digests and recall (memory, context).
- One registry of facts per agent (
harness-facts.ts, readable twin): windows, compaction points and verified versions, whichducter doctorchecks against what you have installed. - Budgets are tests. Prompt and tool-list sizes fail the build when they grow, and a partner change carries a fresh eval result.
flowchart LR
you(["You<br/>Mac · iPhone · iPad · browser · terminal"]) <-->|one connection| partner
subgraph main["Ducter, on your Mac or your server"]
partner["Your partner"]
log[("The Log<br/>local SQLite")]
partner <--> log
end
partner -->|task| t1["Claude Code, Codex, pi, DeepSeek Harness<br/>own worktree and branch, here or on a computer you lend it"]
partner <-.->|memory, optional| mem[("Nowledge Mem")]
Nothing lands without you: Ducter never merges, never works in your own checkout, never sees your passwords, and never pays, sends or calls without your OK. In your Mac's apps it never opens a password manager, a bank or System Settings. Your work reaches an AI provider only through your own agent's login or key. A server listens on itself only, and each phone or computer connects with a one-time code. Details: Privacy and safety.
- Using Ducter: the docs, starting with Getting started.
- Building Ducter: why it exists, the principles, the design notes, build and run and the roadmap. Ducter writes its design down before its code; CONTRIBUTING.md explains how, and SECURITY.md how to report a security issue.
Ducter is made by the people behind Nowledge Mem. Once a pull request of yours is merged, mention it and we'll send you a free lifetime Nowledge Mem license (details).
Ducter 是开源、自己部署的个人 AI。你只跟一个伙伴说话,它把活儿交给 Claude Code、Codex、pi 或 DeepSeek Harness 去做,用的是你本来就在付的订阅。它住在你的 Mac 上,或者你自己的 Linux 服务器上(家里或云上都行);做完了一两句话告诉你结果,证据点开就能看,只有真要你拍板的事才来找你,而且先替你想好默认的做法。
在哪儿用:Mac 桌面 app(Apple 芯片)、Linux 服务器、iPhone 和 iPad(同一个 app,TestFlight 公测)、Android(GitHub 发布页下载,自己更新,折叠屏也照顾到了)。界面中英双语。
能替你跑腿:订、买时用你存好的登录和卡,它填进去但看不见,每笔付款都先问你;通过 Tuwa 替你打电话(需要 Tuwa 账号),你点了「打过去」才拨。任务缺密钥时给你一张卡,填一次就接着做,密钥存在家里那台电脑上,对话里看不到。
还能在你 Mac 的应用里做事(用电脑),也能用 Ducter 自己的 Android 手机(用手机,跑在 Apple 芯片的 Mac 上);发送、付款、删除之前都等你点头,密码管理器、银行和系统设置它碰不到。想接着某件事说,回复那条消息就行。上手请看 Getting started。