Using Claude Code from your phone and what still works on a small screen

There is no Claude Code app. That is the first thing to settle, because a lot of search results imply otherwise. The Claude app for iOS and Android is a client for Claude Code sessions rather than a place where code runs, and everything described here happens in its Code tab.

What that buys you is narrower and more useful than "coding on a phone". It is the ability to answer a question a running agent is stuck on, redirect a task that has gone the wrong way, and start something while the laptop is shut. Typing a long specification with your thumbs is not the point and never will be.

Getting the app pointed at the right thing

Install the Claude app from the App Store or Google Play. On an iPad, install the same iOS app. If Claude Code is already open on the machine, running /mobile displays a QR code that opens the right store for the phone in hand. /ios and /android do the same.

Sign in with the same claude.ai account and organization used for Claude Code. This is where a share of setups stop: cloud sessions and Remote Control both require a claude.ai account, so they are not reachable with an Anthropic Console API key or through a third-party provider such as Amazon Bedrock. Then tap Code in the app's navigation. If the Code tab is not there, the plan or organization may not include these features.

Four things the Code tab connects to

The app looks the same whichever you pick. What differs is where the work happens.

What you connect to Where it runs When it fits
Cloud session Cloud infrastructure, Anthropic-managed by default The repository is on GitHub and the task should outlive the phone going back in your pocket
Project Cloud, with Claude coordinating parallel sessions as threads A stream of related work rather than one task
Remote Control Your own computer The work needs your local filesystem, tools, or MCP servers
Dispatch The Desktop app on your computer You want to message a task and let Dispatch decide how to run it. Pro or Max plan

The dividing line is whether the machine at home will be on. Cloud sessions and projects continue with the laptop closed, because the laptop was never involved. Remote Control and Dispatch drive your own machine, so it has to stay awake with Claude Code or the Desktop app running. If the machine sleeps mid-session, Claude Code reconnects when it wakes.

For most people the mix is obvious in retrospect. Work that touches a local database, a local MCP server, or files that never leave the Mac belongs in Remote Control. Work on a repository that already lives on GitHub belongs in a cloud session, where it survives the commute.

Starting a cloud session from the phone

Cloud sessions are the lower-effort half of this. From the Code tab, pick a repository and a branch, describe the task, and submit it. The session runs on cloud infrastructure, so it carries on after the phone goes back in a pocket. Opening it again shows progress, and you can answer questions or push it in a different direction from there.

Two behaviors make this more useful than it first sounds. Sessions persist across devices, so a task started on the laptop is ready to review from the phone, and one started on the phone is waiting at the desk. And a session can be told to watch a pull request and fix CI failures or review comments as they arrive, which turns dead time into work that is already done when you sit down.

Setup is not zero. GitHub has to be connected and the environment configured once, following the cloud quickstart. After that the phone needs nothing but the app. When a cloud session needs to come back to the terminal, /teleport pulls it in, fetching the branch and the conversation.

Driving a session that lives on your Mac

Start it on the machine, not the phone. Either run claude remote-control in the project directory, or run /remote-control inside a session already open, which carries the conversation over. Then scan the QR code the terminal can show, or open the app, tap Code, and pick the session from the list. Remote Control sessions appear with a computer icon and a green dot when they are online.

From there the phone is a full participant. Messages sent from the terminal, a browser, and the app all land in the same conversation, and subagent progress stays in sync across every connected device. Typing @ autocompletes file paths from the local project, which is the detail that makes the phone usable for more than yes-or-no answers.

Attachments work in both directions and are handled differently depending on type. Photos are seen directly as part of the message, and Claude Code also saves each one under ~/.claude/uploads/ and passes the saved path along, so an image can be copied into files Claude creates. Other files are downloaded to the machine and passed as @ file references. Photographing a whiteboard and sending it to a session running at home is a genuinely practical use of this.

If the session's directory is a git repository, the diff pane on the phone shows uncommitted changes. The device requests the diff over the connection and the machine computes it, so what appears is the real working tree rather than a summary.

Which commands survive the trip

Most of the session works from a phone. A specific set does not, and knowing which saves a round trip to the desk.

Local-only, whatever argument you pass: /plugin and /resume, along with other commands that only exist in the terminal interface.

Working from mobile and web, with text output: /compact, /clear, /context, /usage, /exit, /usage-credits, /recap, and /reload-plugins.

Working with the value as an argument, in place of the terminal's picker or slider: /model, /effort, /fast, /color, and /rename. So /model sonnet and /effort high are fine, while a bare /model has no picker to open.

Behaving differently on purpose: /mcp from the app returns a text summary of server status instead of opening the picker, though reconnect, enable, and disable still work. /config takes key=value to set a setting, or lists the keys it can set when run bare. /autocompact takes the window size as an argument, for example /autocompact 500k.

Permission modes are also narrower. Cloud sessions offer Accept edits, Plan, and Auto. Remote Control sessions offer Manual, Accept edits, and Plan. Bypass permissions cannot be selected from the app in either case, and Auto is not available for a Remote Control session. That restriction is deliberate: the modes with the least friction are the ones you should not be able to switch on from a bus.

What the phone sees when the terminal changes

A connected device mirrors the terminal, and a few moments are worth expecting. While the conversation is being compacted, the phone shows the progress and then where the compaction happened. Running /clear resets the conversation on the phone too.

Switching conversations is the exception. After /resume in the terminal, the device does not receive the switched-to conversation's title or earlier history, though new messages in both directions go to whichever conversation is open in the terminal. The same applies to a cloud session pulled in with /teleport. If the phone suddenly looks emptier than expected, that is usually why.

Prompts sent from the phone mid-turn are queued rather than dropped, and they stay in the device's transcript once the turn finishes. Picking a model or an effort level from the device applies it to the session running on the machine, and the terminal's own /model and /status then show that choice.

Notifications are the actual feature

The reason to set any of this up is to stop discovering an hour later that a task stalled on a permission prompt.

When Remote Control is active, Claude can send push notifications, typically when a long task finishes or when it needs a decision. A prompt can ask for one directly: notify me when the tests finish. In the terminal, /config has two toggles, Push when Claude decides for proactive notifications and Push when actions required for permission prompts and questions. Turn on at least the second one.

When nothing arrives, the cause is usually one of three. If /config shows No mobile registered, opening the Claude app refreshes its push token and the warning clears the next time Remote Control connects. On iOS, Focus modes and notification summaries delay or suppress delivery. On Android, battery optimization does, unless the app is exempted. There is also an intentional silence: pushes are skipped while you are typing in or focused on the connected terminal.

Dispatch sends its own notification when a session it spawned finishes or needs approval.

What a phone is honestly good for

Three things, in order of how often they matter.

Answering. A permission prompt, an AskUserQuestion, a choice between two approaches. Thirty seconds of attention that would otherwise cost an hour of idle time.

Redirecting. Reading enough of the transcript to see that the agent has gone after the wrong file, and saying so before it writes twenty more.

Starting. Describing a task and letting a cloud session run while you go back to whatever you were doing. Sessions persist across devices, so something started from the phone is waiting at the desk.

What a phone is not good for is judging output. A diff pane on a five-inch screen tells you that six files changed and roughly where, which is not the same as knowing whether the change is right. That judgment happens back at the machine, and it is worth noticing how much of the delay lives there rather than on the road. Checking a result usually means a Finder window for the files, a terminal for the commands, an editor for the diff, and something else again for a generated image or PDF.

A file manager with a built-in terminal removes part of that circuit by keeping the folder, the shell, and the session in one window. The feature list covers which operations stay in a single window, and the comparison with other file managers sets out how that differs from Finder.

What to change first

Install the app, sign in with the same account, and turn on Push when actions required in /config before the next long task. That one toggle converts the phone from a curiosity into the thing that keeps a session moving while you are away from the desk.

Then decide where the review happens. If the answer is still four windows at the Mac, the queue has just moved rather than disappeared, and Atriens is one way to keep the folder, the terminal, and the session together, including from an iPhone while the Mac keeps working.

Frequently asked questions

Is there a separate Claude Code app for iPhone?

No. Claude Code does not have its own mobile app. Cloud sessions and Remote Control both live in the Code tab of the Claude app for iOS and Android, and Dispatch is a task you message in the same app. On an iPad, install the same iOS app.

Can I run Claude Code on my phone without a computer?

Only through cloud sessions or projects, which run on cloud infrastructure and need the repository to be on GitHub. Remote Control and Dispatch both drive a machine you own, so that machine has to stay on with Claude Code or the Desktop app running. Neither option runs code on the phone itself.

Why do some slash commands not work from the app?

Commands that only exist in the terminal interface, such as /plugin and /resume, are local-only. Several others work but take the value as an argument instead of opening a picker, for example /model sonnet or /effort high. /mcp returns a text summary of server status rather than the interactive list.

Why am I not getting push notifications from Claude Code?

Check three things. If /config reports No mobile registered, open the Claude app so it refreshes its push token. On iOS, Focus modes and notification summaries can suppress or delay delivery. On Android, exempt the Claude app from battery optimization. Notifications are also skipped deliberately while you are focused on the connected terminal.

Back to all posts