Requirements
- macOS with Zed, and Claude Agent and/or Codex added in Zed's Agent panel.
- An Android phone. The iPhone app is coming to the App Store.
- Optional: Tailscale on the Mac and the phone, to reach your Mac from anywhere. Without it, afk works on the same Wi-Fi.
You don't need Node.js installed: the installer downloads its own copy if yours is missing or older than 22.18.
Install on the Mac
curl -fsSL https://goafk.dev/install.sh | sh
The installer only touches your home folder. It:
- uses your Node.js 22, or downloads a checksum-verified private copy into
~/.afk/runtime; - installs afk into
~/.afkand adds theafkcommand to~/.local/bin; - runs
afk setup, which syncs Zed's agents, starts the hub in the background, makes the Mac reachable (Tailscale on port 8443 and/or your Wi-Fi), checks everything, and prints a pairing QR code.
If setup says so, quit and reopen Zed once so running agents start syncing. Want to read the script first? It's at /install.sh.
Get the app
afk for Android is available as an APK while the Google Play listing is on its way; the App Store version follows. Download links appear here as soon as each is live.
Pair your phone
- Open afk. On first launch it shows Connect your Mac.
- Scan the QR code from
afk setup, or runafk pairfor a new one. You can also scan it with the phone's camera, or copy the link and tap Paste pairing link. - That's it: your projects and threads appear.
Codes work once and expire after 15 minutes. Each phone gets its own key; the Mac's master key never leaves the Mac.
Several Macs
Install afk on each Mac, then in the app tap the Mac's name at the top of the home screen → Add a Mac and scan that Mac's code (or Settings → Computers → Add a computer). The switcher shows one Mac at a time and badges the others when they need you. Rename Macs from the same sheet.
Themes and appearance
afk starts in its own theme. In Settings → Appearance you can pick:
- Match Zed: uses the theme set in Zed (light and dark), including themes from extensions, and follows when you change it.
- A popular theme: One, Catppuccin, Ayu, Gruvbox, Tokyo Night, Rosé Pine, GitHub, Solarized, Nord or Dracula.
- Mode, text size, code font and density, and whether the agent's thinking starts expanded.
Settings are kept on the phone. Match Zed needs a current hub: if the app says the hub is too old, run the install command again on the Mac.
Commands
| Command | What it does |
|---|---|
afk setup | Sync Zed's agents, start the hub, check everything, show a pairing code. Safe to re-run. |
afk pair | A new pairing code for another phone. |
afk devices | Paired phones and when each was last seen. |
afk devices revoke <id> | Cut one phone off. |
afk status | Hub health and connected agents. |
afk threads | List synced threads. |
afk send <thread> "…" | Send a message into a thread (it shows in Zed). |
afk new <project> claude "…" | Start a new thread in Zed. |
afk watch | Stream live events. |
afk permissions | One-time macOS permission so afk can open new threads in Zed. |
afk uninstall | Remove everything setup added. |
Troubleshooting
The app can't reach my Mac
Make sure the Mac is awake. At home, the phone must be on the same Wi-Fi; away, Tailscale must be on for both. Run afk setup again: it reports which addresses work.
A thread shows as read-only
Its agent process isn't running. Open the thread in Zed, or tap Continue here in the app to load it into a running agent.
I don't get notifications
Open Settings → Notifications. If permission is off, tap Allow (or Open settings if the system won't ask again). Then tap Send a test notification: it goes from your Mac through the same path as real ones, so if the test arrives, everything works.
"Tailscale Serve could not start"
Tailscale asks you once to enable HTTPS / Serve for your tailnet. Follow the link setup prints, then run setup again.
New threads from the phone don't open
Zed must be running, and afk needs a one-time macOS permission: run afk permissions.
Uninstall
afk uninstall # removes the Zed settings blocks and the background service
rm -rf ~/.afk ~/.local/bin/afk
Your Zed settings were backed up to ~/.afk/backups before every change.