Article· Updated June 2026
Claude Code: CLI vs desktop vs mobile

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.
When would you use Claude Code on the web instead of the terminal?
The web surface (claude.ai/code, currently a research preview on Pro, Max, Team, and Enterprise) isn't the same as opening claude.ai in a browser to chat. It runs tasks on Anthropic's own cloud infrastructure, so the work happens server-side and the session keeps going even after you close the tab — you monitor it from the Claude mobile app. The docs frame it as the surface for kicking off long-running tasks, working on repos you don't have checked out locally, and running several tasks in parallel. I reach for it for the same reason I reach for mobile: it's a delegation surface, not an editing one. The bridge between them is claude --teleport — start a task on the web, then pull it down into your terminal to take over. Same session, different window, no copy-paste.
How many sessions can you actually run at once?
Boris Cherny, who created Claude Code, typically runs five to ten sessions with a few hundred agents across them. At night he'll spin up a few thousand for deeper work. He hit 150 PRs in a single day as an experiment. I'm nowhere near that scale — I usually have two or three going — but the point is the ceiling is much higher than "one terminal tab." The bottleneck is your ability to direct the agents, not the system's ability to run them.
Is Fable 5 available in Claude Code?
Yes — since June 2026, on Claude Code (version 2.1.170 and up) and Cowork. It's the same model on every surface; the surface doesn't change which models you can run. Boris Cherny called it "the best model I have used for coding, by a wide margin" — fewer prompts and steers, more efficient token use, better tool use, more intelligent self-verification. In practice that changes the surface calculus more than the model menu: a model that needs fewer steers makes the mobile app better for delegating, because the gap between "kick it off" and "check the result" needs less babysitting in between.
What is agent view?
Agent view (claude agents) is a built-in TUI for managing multiple Claude Code sessions — think tmux, but purpose-built for agents. It shows which sessions need your input, which are still working, and which are done. You can resume any session from the list. If you're running more than two or three agents at once, it's the cleanest way to keep track without cycling between terminal tabs.
Claude Code in the terminal vs. the IDE extension in VS Code or Cursor — which should I default to?
The IDE extension isn't a fourth product — it's the same Claude Code, surfaced inside the editor. It installs in VS Code, Cursor, and the other VS Code forks (the docs give you a one-click cursor:extension/anthropic.claude-code link), and it shares the same conversation history as the CLI: you can start a session in the panel and run claude --resume in the integrated terminal to keep going. What the panel buys you is editor context for free — it reads your current selection, lets you @-mention a file with a line range, and renders Claude's edits as a side-by-side diff you approve inline. That makes it the better surface when the work is anchored to specific lines you're already looking at. The catch is that the extension exposes only a subset of commands and skills, and a few things — the ! bash shortcut, tab completion — are CLI-only. So my rule is the same as the one above: the terminal CLI is the surface for doing the heavy work, because it's the only one that exposes everything. The IDE panel is for the in-editor moments — "explain these three lines," "refactor this function" — where having the selection and the diff in front of you beats switching to a terminal. When I want a CLI feature inside Cursor, I just open the integrated terminal and run claude there (or /ide to wire an external terminal to the editor's diff viewer). It's the same agent either way; the panel is a convenience layer, not a replacement.