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 + tmuxHQSSH
AgentsClaude Code onlyAny CLIAny CLI, one-tap launch for Claude Code, Codex, OpenCode, Aider
Authclaude.ai Pro/Max/Team/Enterprise only — no API keys, Bedrock or VertexAnythingAnything
InterfaceChat UI in the Claude appRaw terminalTerminal with an agent keyboard toolbar
Survives disconnectsYesYes (tmux)Yes (hqsshd daemon)
Alerts when the agent needs youYes (push)NoYes (bell / OSC 9, ntfy push)
NetworkOutbound to AnthropicSSHSSH

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:

  1. 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.
  2. 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_URL gateway.
  • 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 | sh

hqsshd 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.

Frequently asked questions

Can Claude Code run directly on an iPhone?

+

No. Claude Code runs on a Mac, Linux machine, VPS or WSL host. Your phone is the screen and keyboard: it connects to that machine through Remote Control or SSH.

Do I need a Claude Pro or Max subscription?

+

Claude Code itself needs either a Claude subscription or an Anthropic API key. Anthropic's Remote Control additionally requires a claude.ai subscription and does not work with API keys, Bedrock or Vertex. Over SSH (HQSSH or any SSH client) Claude Code uses whatever authentication the server already has.

How do I get notified when Claude Code needs me?

+

Claude Code rings the terminal bell when it finishes or needs input. HQSSH turns that bell into a phone notification, and its daemon can forward events to an ntfy topic so you get push alerts with the app closed.

Is it safe to expose SSH for this?

+

Don't open port 22 to the internet. Put the machine on a private network such as Tailscale, use key-based authentication, and verify host keys — HQSSH pins each server's host key on first connect.

Keep reading