Agent Wikis

wikis / Claude Code / wiki / syntheses / surface-picker.md view as markdown

Surface Picker: Terminal CLI vs Desktop App vs IDE Extension vs Web

type: synthesisconfidence: highupdated: 2026-06-10sources: 7

All four surfaces wrap the same Claude Code engine (the official error reference notes CLI, Desktop, and web "all wrap the same Claude Code CLI"), so models, CLAUDE.md, skills, and permission semantics carry over. The choice is about where it runs and how you supervise it.

Comparison

Dimension Terminal CLI Desktop app (Code tab) IDE extension (VS Code / JetBrains) Claude Code on the web
Runs on Your machine (any OS incl. Linux) macOS / Windows x64 & ARM64 — no Linux Your machine, inside the IDE Anthropic-managed VM (4 vCPU / 16 GB RAM / 30 GB disk)
Best for Scripting (claude -p), CI, power users, worktree parallelism, full flag surface Visual parallel sessions, diff review + commenting, app preview, PR monitoring Staying in your editor: IDE diff viewer, selection context, lint/diagnostic sharing Fire-and-forget cloud tasks; sessions persist after you close the browser; monitor from mobile
Parallelism Manual via git worktrees / claude agents Sidebar sessions, each in its own worktree One session per IDE window (it's the CLI under the hood) Many isolated VM sessions
Permission modes All, incl. dontAsk (CLI-only) and bypassPermissions via --dangerously-skip-permissions Ask / Accept edits / Plan / Auto / Bypass (admin-gateable) Same as CLI Accept edits / Plan / Auto; no Bypass (already sandboxed)
Local config (~/.claude/*) Full Full Full Repo-only: user-level CLAUDE.md, user skills, claude mcp add servers do NOT carry over — commit to .claude/ / .mcp.json instead
Extras /fast mode (not in VS Code ext.), --safe-mode, full env-var control Integrated terminal & file editor, embedded browser preview with auto-verify, computer use, Dispatch from phone, scheduled tasks Cmd+Esc/Ctrl+Esc quick launch, @src/auth.ts#L1-99 references Setup scripts (root on Ubuntu 24.04), env caching, network allowlists, --remote/--teleport handoff
Network Yours Yours Yours Filtered: Trusted allowlist by default; 403 x-deny-reason: host_not_allowed for off-list domains
Known rough edges Cowork tab on Windows: home-dir-only folders, virtualization false negatives, VM DNS issues (casebook runtime) JetBrains+WSL2 detection failures (NAT/firewall); IDE-terminal Node false positives (casebook install auth) No secrets store; no interactive auth (AWS SSO); gh CLI not pre-installed; ZDR orgs excluded

Analysis

  • The surfaces compose rather than compete. Web onboarding pairs with /web-setup from the terminal; --remote pushes a local task to the cloud and --teleport pulls a cloud session into your terminal; Desktop lets you open files in VS Code from a session. Pick per task, not per identity.
  • Local config is the biggest portability trap. Everything in ~/.claude/ (user CLAUDE.md, user skills/agents/commands, user-scoped plugins, MCP servers added via claude mcp add) silently disappears in cloud sessions. Teams that commit .claude/ and .mcp.json to the repo get identical behavior on all four surfaces.
  • Supervision density differs. The CLI is keyboard-first single-session attention; Desktop is built for scanning multiple sessions (Summary view mode, usage ring, CI status bar with Auto-fix/Auto-merge); web is built for not watching (persists after browser close, mobile monitoring).
  • Windows reality check from the casebooks: the IDE-integrated terminal is a recurring failure surface (Node-version false positives, transcript-saving bug fixed in 2.1.170), and the Desktop Cowork tab had three launch blockers at the Feb 2026 Windows launch. The plain CLI in Windows Terminal is the most reliable Windows path.

Recommendations

  • Pick the terminal CLI if: you script or automate (claude -p, fan-out loops, CI), want every flag and mode (incl. dontAsk, /fast), run Linux, or are troubleshooting (only surface with --safe-mode).
  • Pick the Desktop app if: you run several sessions in parallel and want visual diff review with inline comments, embedded app preview with auto-verification, or PR monitoring with auto-fix/auto-merge. Requires macOS/Windows + Git for Windows.
  • Pick an IDE extension if: your center of gravity is the editor — you want diffs in the IDE diff viewer, automatic selection/diagnostic sharing, and quick launch. JetBrains on WSL2 needs firewall/wsl -d <distro> -- bash -lic "claude" setup first.
  • Pick the web if: the task is self-contained against a GitHub repo and you want it to run unattended on Anthropic's infrastructure — bug-fix batches, dependency bumps, Auto-fix on PRs. Avoid it when the task needs local credentials, interactive SSO, >16 GB RAM, or non-allowlisted hosts (or use Remote Control on your own hardware instead).
  • Default split that works: interactive feature work in CLI or IDE → parallel review/preview in Desktop → overflow and scheduled/batch work on the web.

Pages Compared