Article· Updated May 2026

Claude Code runs on three surfaces now — the CLI in a terminal, the desktop app on Mac and Windows, and the mobile app on iOS and Android. I use all three every day, for different reasons. They're the same model and the same conversation system, but the shape of each surface changes what kind of work fits.
CLI
The terminal is where the heavy work happens. Multi-file refactors, build-run-fix loops, skills, hooks, background agents — the CLI is the only surface that exposes everything. If you're writing code on your computer, this is where you should be.
I keep two or three CLI sessions running in split panes. One for the main task, one for a background agent, sometimes one for a quick lookup I don't want to interrupt the main thread with. The CLI is also the only surface that can run headless — cron jobs, CI hooks, anything that needs Claude without a human present.
Desktop app
The desktop app is the same thing with a nicer viewport. Markdown renders inline, images show up, the conversation is easier to scan. I reach for it when I'm reading more than writing — reviewing a long diff, looking at a generated report, scanning a research dump.
It's also the surface I default to when I'm not in a terminal already. If I'm in a browser and I want to ask Claude something about the codebase, opening the desktop app is faster than switching to a terminal, cd-ing into the right directory, and starting a session.
Mobile
This is the one that changed my workflow the most. The Claude Code mobile app connects to a session running on my Mac, which means I can keep shipping from my phone.
I use it in two shapes. First, kicking off work while I'm away from my desk — "fix that bug from the Slack thread," "run the daily digest," "deploy the latest to production." The agent runs on my Mac; I check the result from my phone ten minutes later. Second, reviewing what a background agent did while I was asleep or out. I wake up, open the app, read the diff, approve or redirect.
The phone is a bad place to write code. It's a great place to delegate code. That distinction is the whole point of an agent — the interface doesn't need to be an editor if the model is doing the editing.
When I reach for which
- Writing code, running builds, using skills → CLI. Always.
- Reading diffs, scanning reports, research → Desktop app. Better viewport.
- Kicking off work while away from desk → Mobile. Delegate and check later.
- Quick question about the codebase → Whatever's closest. Desktop app if I'm in a browser, CLI if I'm in a terminal.
- Background agents, cron, CI → CLI headless mode. No other option.
The surfaces aren't competing. They're the same agent with three different-shaped windows into it. The CLI is for doing. The desktop app is for seeing. The mobile app is for directing.
Frequently asked
Does the mobile app need the Mac running?
Yes. The mobile app connects to a Claude Code session on your computer. If your Mac is asleep or off, there's nothing to connect to. I leave mine running — it's just a terminal process.
Can you use the desktop app offline?
No. All three surfaces need an internet connection — they're talking to Claude's API. The difference is where the file access happens, which is always on your computer.
Is the web app (claude.ai/code) different from the desktop app?
Same idea, runs in a browser tab instead of a native window. I use whichever is already open. The desktop app feels slightly snappier; the web app doesn't need an install.