How to Run Claude Code From Your Phone (iPhone & Android)
Three ways to use Claude Code from an iPhone, iPad or Android phone — Remote Control, a plain SSH client with tmux, or HQSSH — with setup steps, notifications and security tips.
Updated
Short version: Claude Code does not install on a phone. It runs on a computer you control (a Mac, a Linux server, a VPS or a WSL box), and your phone becomes the screen and keyboard for it. There are three practical ways to do that, and the right one depends on which agents you use and how you authenticate.
| Remote Control (Anthropic) | SSH client + tmux | HQSSH | |
|---|---|---|---|
| Agents | Claude Code only | Any CLI | Any CLI, one-tap launch for Claude Code, Codex, OpenCode, Aider |
| Auth | claude.ai Pro/Max/Team/Enterprise only — no API keys, Bedrock or Vertex | Anything | Anything |
| Interface | Chat UI in the Claude app | Raw terminal | Terminal with an agent keyboard toolbar |
| Survives disconnects | Yes | Yes (tmux) | Yes (hqsshd daemon) |
| Alerts when the agent needs you | Yes (push) | No | Yes (bell / OSC 9, ntfy push) |
| Network | Outbound to Anthropic | SSH | SSH |
How phone access to Claude Code works
Every option follows the same idea: Claude Code keeps running on the computer with your repos, toolchain and credentials, and the phone sends keystrokes and receives output. Your code never has to leave that machine. What differs is the pipe between the phone and the machine, and how much of the terminal you get.
Two things make or break the experience on a phone:
- Persistence. Phones drop connections constantly — elevator, train, screen lock. If the agent dies with the connection, phone access is useless. The session has to live on the server.
- Getting pulled back in. Agents spend minutes working and then stop to ask for approval. Without a notification you either stare at the screen or come back an hour later to an agent that has been waiting the whole time.
Option 1: Anthropic's Remote Control
If you only use Claude Code and sign in with a claude.ai subscription, Remote Control is the zero-install option. Run this in your project:
claude remote-control
or type /remote-control inside a running session, then open the session from the Code tab of the Claude app on your phone.
What to know before you rely on it:
- It requires a Pro, Max, Team or Enterprise plan, and Team/Enterprise owners must enable it. API keys are not supported, and neither are Amazon Bedrock, Google Cloud, Microsoft Foundry or a custom
ANTHROPIC_BASE_URLgateway. - Your session talks to the Anthropic API, which relays messages between your machine and the app.
- You get a chat view of the session, not a terminal. You can't run
git status, tail a log or start another tool from the same screen. - It drives Claude Code only. Codex, OpenCode, Aider and your shell need another route.
Option 2: Any SSH client, tmux and Tailscale
This is the classic setup and works with every agent.
1. Make the machine reachable privately. Install Tailscale on the computer and the phone, signed into the same account. Never forward port 22 from your router to the internet.
2. Enable SSH. On a Mac: System Settings → General → Sharing → Remote Login. On Linux, install and start openssh-server.
3. Run the agent inside tmux so it survives disconnects:
tmux new -s claude
claude
Detach with Ctrl-b d, and reattach later with tmux attach -t claude.
4. Connect from a mobile SSH client using the machine's Tailscale address and key-based authentication.
It works, but the rough edges show up fast on a phone. tmux key chords are awkward on a touch keyboard. Claude Code's Shift+Tab (cycling permission and plan modes) and Esc are hard to reach. Mouse scrolling inside Claude Code's full-screen UI often fights tmux. And nothing tells you when the agent stops to ask a question.
Option 3: HQSSH, the SSH app built for agents
HQSSH keeps the SSH model (any agent, any authentication, your own network) and fixes the parts that hurt on a phone.
1. Install the daemon on the machine (Linux or macOS, optional but recommended):
$ curl -fsSL https://hqssh.com/install | shhqsshd keeps agent sessions alive on the server, discovers your git projects and detects which agents are installed. It talks to the app through your existing SSH connection, so no new ports are opened.
2. Add the machine in the app. Enter the host (a Tailscale address works), username and an SSH key. You can generate an Ed25519 key in the app and it stays in the iOS Keychain or Android Keystore. HQSSH pins the server's host key on first connect and refuses a changed key unless you approve it.
3. Open a project and tap LAUNCH CLAUDE. Claude Code starts in the right directory in a persistent session. Lock your phone, switch networks, open it again from your iPad or from the hqssh attach desktop CLI: it's the same session with its scrollback.
4. Use the agent toolbar. One-tap keys for Shift+Tab (mode cycling), Esc, Ctrl+C, arrows and paste sit above the keyboard. Scrolling works inside Claude Code's full-screen UI, and an image button uploads a screenshot from your camera roll and pastes its path into the prompt.
Get notified when Claude Code needs you
Claude Code rings the terminal bell when it finishes a task or waits for input. HQSSH turns that bell into a phone notification for any session on the machine, including ones you are not looking at, and lists them in an activity feed.
To get alerts while the app is closed, point the daemon at a free ntfy topic in ~/.hqssh/daemon.yaml:
events:
webhook_url: "https://ntfy.sh/your-private-topic-name"
Then run hqssh service restart and subscribe to the same topic in the ntfy app. If you get no alerts at all, check that Claude Code's notification setting in /config uses the terminal bell.
Security checklist
- Keep SSH on a private network (Tailscale, WireGuard, a bastion or jump host). Never expose port 22 publicly.
- Use key-based authentication and disable password logins on internet-facing machines.
- Verify host keys. A changed host key is the one warning you should never click through.
- Be careful with "bypass permissions" modes when you can't watch the agent closely. A phone makes approvals easy, so keep them on.
Which option should you pick?
Use Remote Control if Claude Code is your only agent, you're on a Pro or Max plan, and a chat view is enough. Use HQSSH if you also run Codex, OpenCode or Aider, sign in with an API key or a cloud provider, want the real terminal, or want one app for every server. Use a plain SSH client with tmux if you already live in tmux and don't need notifications.