How to control Claude Code from your phone
Claude Code runs on your computer, with your files, skills and MCP servers. This page shows how to reach that same setup from your phone, through a chat app, in about ten minutes. I use Angelia for this, which I built, so the steps below use it. If you only want to watch one coding session from the couch, Anthropic's Remote Control is the better tool: see the four ways compared.
Short version: your Mac keeps running Claude Code, a small program connects it to a Telegram bot or a WhatsApp number, and you write to it like to a person. Commands that need your yes come to the chat. The answer comes back to the chat when the work is done.
What you need
- A Mac with Node 22.23.4+, 24.22.1+ or 26.12.1+ and git.
- Claude Code 2.1.270 or newer, signed in with a claude.ai plan. Check with
claude --version. - A chat app on your phone. Telegram is the fastest: open @BotFather, send
/newbotand keep the token. WhatsApp also works, but it needs a second, established number, not your personal one (why).
Step 1: install and pair a chat
curl -fsSL https://useangelia.com/install | sh
The installer checks the release's signature, installs Angelia and starts a setup wizard. You can read the script first. The wizard asks:
- Telegram, WhatsApp or both. For Telegram, paste the bot token. For WhatsApp, scan a QR code with the second phone.
- Quick or Advanced. Quick gives one chat and one folder. Pick it for a first try.
- Which CLI. Pick Claude Code.
- Pair the chat. Send your bot any message from your phone. The wizard shows it and asks you to confirm.
Now send "what is in this folder?". Claude Code answers from the profile's folder, on your Mac.
Step 2: keep it running
angelia service install
Angelia now starts when you log in and comes back after a crash. The Mac must be on and awake: while it sleeps, nothing answers. How to run Claude Code 24/7 covers sleep settings, reboots and scheduled jobs.
Step 3: point it at your code
The agent works in its profile's folder, not in your current repo. Quick setup names the profile main. To let it work on a repo, add the repo to the profile in ~/.angelia/workspace/routing.yaml:
profiles:
main: { cwd: ~/.angelia/workspace/profiles/main, permission_mode: acceptEdits, add_dirs: [~/code/my-app] }
Then take the change and apply the profile's rules:
angelia accept
angelia compile main --write
Send /restart in the chat, then /restart confirm. The profile's folder holds its own CLAUDE.md, so the phone chat can have its own rules, apart from your terminal sessions.
Step 4: approve commands from the phone
With permission_mode: acceptEdits, Claude Code edits files on its own and asks before it runs other commands. The question comes to the chat:
🔐 Bash: npm test
Reply "yes 6b480a6f" or "no 6b480a6f".
Answer yes 6b480a6f and the turn goes on. No answer in ten minutes means no. Only the chat's owners can approve, so a group member cannot say yes for you. More in notifications and approvals on your phone.
While it works
- Short progress lines come to the chat while Claude Code works, then the answer. You do not need to keep the chat open.
/stopends the current turn./newstarts a fresh session./statusshows what is running. The router answers these itself, without spending tokens.- Voice notes work after
brew install openai-whisper ffmpeg. Talk, and Claude Code gets the text. Whisper runs on your Mac, so the audio stays there. - Photos and files you send reach Claude Code as files on your Mac. It can send files back.
Back at your desk, and the other way round
- Phone to terminal:
/statusends with a command such asclaude --resume <id>. Paste it in a terminal and the same session opens there. - Terminal to phone: type
/angelia-handoffin a Claude Code session at your desk. The chat goes on from a written brief of what you were doing.
Limits
- macOS only for now. Linux is next.
- Each chat keeps its own warm Claude Code process. All chats share your plan's limits.
- It uses your claude.ai login. A Console API key is not supported for Claude Code profiles.
- It is a young project (v0.3), maintained by one person.
Try Angelia
curl -fsSL https://useangelia.com/install | sh
It checks the release's signature, then a wizard pairs your first chat. Free and open source (MIT). How it works · Security model · GitHub