Claude Code is one of the most capable AI coding agents available. It reads your codebase, writes code, runs tests, and iterates — all from a terminal. But it’s a CLI tool. It runs on your laptop or workstation. And when you step away from that machine, you lose visibility into what it’s doing.
This guide covers every practical way to access Claude Code from your phone in 2026, with honest tradeoffs for each approach.
Why You’d Want Claude Code on Your Phone
Claude Code sessions aren’t instant. You give it a complex task — refactoring a module, implementing a feature, debugging a test suite — and it works for minutes or even hours. During that time, it periodically stops to ask for permission before running commands, editing files, or accessing the network.
If you’re sitting at your desk, you click “Yes” and it continues. If you’re not, it just waits. Your AI agent is blocked, and you have no idea until you walk back to your machine.
The question isn’t really “how do I code on my phone.” It’s “how do I monitor and control a running Claude Code session without being chained to my desk.”
There are three realistic approaches.
Option 1: The Claude iOS App
Anthropic ships an official Claude app for iOS and Android. It gives you access to Claude’s conversational AI — you can ask questions, analyze documents, and have back-and-forth conversations.
But the Claude app and Claude Code are different products. The app is a chat interface to the Claude model. Claude Code is a terminal-based coding agent that operates on your local file system with tool use, shell access, and persistent context.
What you get:
- Full conversational Claude access
- File and image uploads
- Project-based conversations
What you don’t get:
- Terminal access or shell commands
- Tool call approval for a running agent
- Visibility into an active Claude Code session on your machine
- Push notifications when your agent needs input
The Claude app is excellent for what it does, but it doesn’t solve the “my Claude Code session is waiting for approval on my workstation” problem.
Option 2: SSH + tmux + Tailscale
The classic sysadmin approach. Set up Tailscale (or another VPN / overlay network) on your workstation and phone, SSH in from a mobile terminal emulator, and reattach to a tmux session where Claude Code is running.
Setup overview:
# On your workstation
brew install tmux
# Install Tailscale from tailscale.com
# Start Claude Code inside tmux
tmux new -s claude
claude
# From your phone (using any SSH app + Tailscale)
ssh your-workstation
tmux attach -t claude
This works. You get full terminal access to your running Claude Code session. You can see output, type responses, and approve tool calls. It’s free and uses standard tools.
The downsides are real though:
- No push notifications. You have to manually open the SSH app and check. If Claude Code is waiting for approval, you won’t know until you look.
- Tiny terminal. Phone screens aren’t great for terminal output. You’ll be pinch-zooming and scrolling constantly. Claude Code’s output is verbose — file diffs, command output, reasoning text — and reading it on a 6-inch screen through an SSH session is tedious.
- Input is painful. Typing on a phone keyboard through SSH is slow. Even a simple “yes” approval requires switching apps, waiting for the connection, navigating to the right tmux pane, and typing.
- Connection management. SSH sessions drop when your phone sleeps, when you switch cell towers, or when you move between Wi-Fi and cellular. You’ll spend time reconnecting and reattaching.
- No structured approval UI. Claude Code’s permission prompts show up as terminal text. You have to read the full context and type the right number. There’s no quick-action button.
If you’re already comfortable with tmux and have Tailscale configured, this can work as a fallback. But for daily workflows where you’re regularly away from your desk during Claude Code sessions, the lack of push notifications alone is a dealbreaker. You end up compulsively checking the SSH app every few minutes, which defeats the purpose of stepping away.
For occasional use, this is fine. For daily use, it’s friction-heavy.
Option 3: MobileCLI
MobileCLI is a self-hosted Rust daemon built specifically for this use case: monitoring and controlling AI coding agents from your phone.
It’s not an SSH client. It’s not a mobile IDE. It’s a live terminal mirror with an approval control layer designed for AI coding agents.
How It Works
MobileCLI has two components:
- The daemon — a Rust binary that runs on your workstation. It wraps your Claude Code session, captures the terminal output via a PTY, and serves it over WebSocket.
- The iOS app — connects to the daemon over your local network or Tailscale. Renders the terminal stream and provides native controls for interacting with the agent.
Setup
# Install the daemon
curl -fsSL https://mobilecli.app/install.sh | bash
# Start Claude Code through MobileCLI
mobilecli claude
Open the iOS app, and it discovers the daemon on your local network. Pair once, and you’re connected.
For remote access outside your home network, MobileCLI works over Tailscale — same as the SSH approach, but with the structured UI on top.
The Approval Flow
This is where MobileCLI differs most from SSH. When Claude Code hits a permission prompt:
- Your phone gets a push notification — even if the app is closed, even if your phone is locked.
- Open the notification and you see the full terminal context — what Claude Code wants to do, which files it wants to edit, what command it wants to run.
- Tap a numbered button to respond:
- 1 = Yes (approve this action)
- 2 = Yes, always (approve this and don’t ask again for similar actions)
- 3 = No (reject)
- Esc = Interrupt the agent entirely
These buttons map directly to Claude Code’s own prompt options. No typing, no keyboard, no fumbling with a terminal on a small screen.
The “Yes, always” option is particularly useful on mobile. If Claude Code is running through a series of similar actions — say, editing multiple test files — you can approve the first one and tell it to stop asking for the rest. This means fewer interruptions on your phone while still maintaining the safety checkpoint for genuinely new actions.
What Else You Get
- Live terminal streaming — watch Claude Code work in real time, with proper terminal rendering (colors, scrollback, full output)
- Session management — see all running sessions, switch between them
- File browser — browse your project’s file system from your phone (Pro feature)
- Push notifications — for approvals, errors, and session events
Comparison
| Feature | Claude iOS App | SSH + tmux | MobileCLI |
|---|---|---|---|
| See Claude Code terminal output | No | Yes | Yes |
| Approve tool calls | No | Yes (typing) | Yes (tap buttons) |
| Push notifications | No | No | Yes |
| Works without internet | N/A | LAN or VPN | LAN or Tailscale |
| Self-hosted / no cloud | N/A | Yes | Yes |
| File browsing | No | Yes (CLI) | Yes (Pro) |
| Setup effort | Download app | Medium | Low |
| Phone UX | Native chat | Poor (tiny terminal) | Native controls |
| Free | Yes | Yes | Yes (Pro for files) |
| Open source | No | Yes (tools) | Yes (daemon) |
Security and Privacy
One concern with any remote access solution is security. All three approaches handle this differently:
- Claude iOS app — your data goes through Anthropic’s servers, same as using Claude on the web.
- SSH + tmux — encrypted end-to-end over SSH. With Tailscale, the connection is WireGuard-encrypted and never traverses a relay unless both devices are behind restrictive NATs.
- MobileCLI — the daemon serves over your local network or Tailscale. No cloud relay, no account, no data leaving your network. The daemon is open source, so you can audit every line.
If keeping your terminal output entirely on your own infrastructure matters to you, both SSH and MobileCLI satisfy that requirement. The Claude iOS app does not — it’s a separate product talking to Anthropic’s API, not your local terminal.
Which Approach Should You Use?
Use the Claude iOS app if you want to have AI conversations on the go. It’s great at what it does — it’s just not designed for monitoring terminal-based coding agents.
Use SSH + tmux if you already have the infrastructure set up, only need occasional access, and don’t mind the small-screen terminal experience. It’s free, standard, and works everywhere.
Use MobileCLI if you run Claude Code sessions regularly and want push notifications, quick approval buttons, and a phone-native interface for monitoring your agent. The free tier covers terminal streaming and approvals. The daemon is open source and self-hosted — your terminal data never touches a third-party server.
All three approaches are valid. The right choice depends on how often you’re away from your desk while Claude Code is running, and how much friction you’re willing to tolerate when it needs your attention.