I built this because I wanted my agents in my pocket. I run a lot of Claude Code and Codex sessions on my Mac, and I spent months trying to reach them from my phone with remote desktop apps and screen sharing. This replaces all of that with a proper chat app.
Every chat on the phone is the live session on the Mac. When I send a message from the phone, it types into the real terminal, so the conversation on my desk and the one in my pocket are the same conversation. It runs over Tailscale, so it never touches the open internet.
What it does
- Shows every agent session as a chat, grouped by project and agent, with live status: working, needs you, or done.
- Sends your messages into the real session on the Mac, and replies show up on the phone a few seconds later.
- Gives you Allow, Always allow and Deny buttons when an agent asks permission, plus Stop and a row of keys for anything else.
- Starts a new Claude Code or Codex chat from the phone, which opens as a new tab on the Mac.
- Lets you dictate messages, rename chats and attach photos that the agent can see.
How it works
- A small server on your Mac reads your agent sessions and the list of open tabs.
- Your phone reaches it over Tailscale, a private network that only your own devices can join.
- When you send a message, the server types it into the real terminal on the Mac.
- The iPhone app is a native SwiftUI app, and the same chat also works in any browser on your tailnet.
What you need
- A Mac running Damon, the desktop app my agents live in (it needs Damon’s local control API)
- Claude Code and/or the Codex CLI
- Bun on the Mac
- Tailscale on the Mac and the phone
- Xcode, XcodeGen and an Apple developer account for the iPhone app
Get the code
Download it, or clone it and follow the steps below. You can also hand the repo to Claude Code or Codex and ask it to set it up for you.
git clone https://github.com/per-simmons/damon-mobile.git
cd damon-mobile
export DAMON_MOBILE_TS_IP=$(tailscale ip -4)
export DAMON_MOBILE_LOGIN=you@example.com
bun run server.tsOpen http://<your Mac’s Tailscale IP>:8787 on your phone for the web version, or build the iPhone app with ios/install.sh. The README walks through both.
The full setup guide is in the README on GitHub.
Try it
- Check on an agent from your phone and answer its permission prompt.
- Start a new Codex chat from the + button and give it a task.
- Dictate a follow-up to a running Claude Code session on your walk home.
Security
- The server listens only on your Mac and its Tailscale address, never your home network or the internet.
- Every request has to come from a device signed in to your Tailscale account.
- Web pages from other sites are blocked from talking to it.
- The phone can do anything your agents can, so only use it on a tailnet you trust.
Good to know
- It only works with Damon. The phone talks to Damon’s control API, which plain terminals don’t have.
- Replies arrive a paragraph or step at a time, not letter by letter.
- A brand-new chat can take up to about 45 seconds to show its first reply.