Claude Code ships as both a CLI tool and a graphical desktop application, and the two aren’t feature-identical. The Desktop App adds a layer of visual tooling that has no CLI equivalent: interactive diff review with inline commenting, live app preview in a Browser pane, GitHub PR monitoring with auto-fix and auto-merge, scheduled recurring tasks, and computer use for GUI automation. This guide documents every Desktop-exclusive feature, gives you the CLI flag equivalents where they exist, and shows three multi-pane workflow patterns that only make sense in the desktop environment.
If you’re choosing between the two, or migrating a CLI workflow to Desktop, this is the reference page.
Desktop vs CLI: The Complete Feature Matrix
The same Claude Code engine runs under both surfaces. What changes is the UI layer — and that layer adds capabilities the CLI simply cannot replicate via flags.
| Feature | Desktop | CLI | Notes |
|---|---|---|---|
| Interactive diff view | Yes | No | +12 -1 indicator, line-by-line review |
| Inline diff commenting | Yes | No | Click a line, add feedback, Cmd+Enter submits |
| Review code button | Yes | No | Claude evaluates its own diffs |
| Browser pane (app preview) | Yes | No | Dev server in-app, screenshots, DOM inspection |
| External site browsing | Yes | No | Open docs, issue trackers alongside code |
| Computer use | Yes | No | Screen control, GUI automation |
| PR monitoring | Yes | No | CI status bar per session |
| Auto-fix failing CI | Yes | No | Claude reads failures and iterates |
| Auto-merge on CI pass | Yes | No | Squash merge via GitHub CLI |
| Scheduled tasks (Routines) | Yes | No | Recurring cron-style jobs in-app |
| Parallel sessions sidebar | Yes | No | Each session = isolated Git worktree |
| Side chat | Yes | No | Ask a question without derailing main thread |
| Integrated terminal | Yes | No | Shares Claude’s working directory |
| File pane editor | Yes | No | Spot edits, copy absolute path |
| Pane drag-and-drop layout | Yes | No | Chat / diff / browser / terminal / file |
| SSH sessions | Yes | No | Desktop installs CLI on remote automatically |
| Remote (cloud) sessions | Yes | Partial | Cloud sessions via web surface too |
| Dispatch from mobile | Yes | No | Cowork tab, 30-min approval window |
| Session auto-archive | Yes | No | Archives on PR merge or close |
| Desktop notifications | Yes | No | CI finish, permission prompts |
--print / -p headless | No | Yes | Non-interactive automation, JSON output |
--dangerously-skip-permissions | No | Yes | bypassPermissions mode without UI |
dontAsk permission mode | No | Yes | Pre-approved tools only |
| stdin piping | No | Yes | echo "fix this" | claude |
| Shell scripting / cron | No | Yes | Use CLI for batch automation |
--model flag per invocation | No | Yes | Desktop uses dropdown |
Both surfaces share the same CLAUDE.md files, MCP servers, hooks, skills, and settings.json. You can run CLI and Desktop simultaneously on the same project.
Desktop-Exclusive Features in Detail
Diff View and Inline Code Review
When Claude edits files, a diff stats indicator (+12 -1) appears in the session toolbar. Click it to open the diff viewer: file list on the left, line-level changes on the right.
Inline commenting is the part no CLI flag replicates. Click any line to open a comment box. Add feedback. After commenting on multiple lines, submit all at once with Cmd+Enter (macOS) or Ctrl+Enter (Windows). Claude reads every comment and produces a revised diff.
Review code takes this further. In the diff view toolbar, click Review code to have Claude evaluate its own changes before you commit. The review targets high-signal issues only: compile errors, definite logic errors, security vulnerabilities, and obvious bugs. It does not flag style or formatting — things a linter already handles.
This two-layer review pattern (your inline comments + Claude’s self-review) is the closest the tool comes to an automated code review gate that runs before the PR even opens.
Browser Pane: Live App Preview
The Browser pane is a tabbed browser embedded in the Desktop layout. It serves two purposes:
App preview: Claude starts your dev server and opens it in the pane. From there it takes screenshots, inspects the DOM, clicks elements, fills forms, and iterates on issues it finds — all without you opening a separate browser window. Configure the dev command in .claude/launch.json if your project uses something non-standard:
{
"servers": [
{
"name": "dev",
"command": "npm run dev",
"port": 3000
}
]
}
Auto-verify runs after every file edit by default: Claude checks what changed in the live app and fixes regressions before they reach your review. Disable it in Settings → Claude Code if you prefer manual triggers.
External browsing: Open documentation, GitHub issues, or any external site next to your running app with Cmd+Shift+B. Claude can read and act on external pages (with per-site approval and safety classifier checks). The Browser pane uses a clean profile separate from your personal browser — use it for work, use the Claude in Chrome extension when you need your own logged-in sessions.
PR Monitoring, Auto-Fix, and Auto-Merge
After you open a pull request, a CI status bar appears in the session. Claude Code uses the GitHub CLI (gh) to poll check results. Two toggles control what happens:
Auto-fix: Claude reads failing CI output and iterates — no manual copy-paste of error logs. It runs until checks pass or it determines a fix is impossible and asks for input.
Auto-merge: Once all checks pass, Claude merges the PR (squash merge). GitHub repository settings must have auto-merge enabled for this to work.
Pre-requisite: gh must be installed and authenticated. Desktop prompts you to install it the first time you try to open a PR.
The PR workflow in Desktop looks like this:
1. Code changes → diff view review → inline comment → revised diff
2. Push branch → open PR (Claude handles with gh pr create)
3. CI status bar appears in session
4. Auto-fix enabled → Claude iterates on failures
5. Auto-merge enabled → PR merges when green
6. Session auto-archives (optional, Settings → Claude Code)
Steps 3–6 run without you watching. Claude sends a desktop notification when CI finishes.
Scheduled Tasks (Routines)
This is the most underexplored Desktop-exclusive feature. Scheduled tasks let you define recurring work that Claude runs automatically — daily, weekly, or on any cron expression — without keeping a terminal session open.
Common use cases:
- Daily code review: every morning at 8:00, Claude reviews recent commits and leaves a report
- Weekly dependency audit: every Monday, check for outdated packages and open a PR with updates
- Briefing pull: pull metrics from connected tools (GitHub, Linear, Slack) and summarize overnight activity
Set up a scheduled task from the sidebar or via the desktop-scheduled-tasks reference. Tasks run in cloud infrastructure, so they continue even if your machine is off. No cron jobs, no LaunchAgents, no server required.
This is categorically different from CLI-based cron: scheduled tasks have access to the full Desktop environment, including connectors, MCP servers, and the skills library.
Parallel Sessions with Git Worktree Isolation
The sidebar lists all your sessions. Each session in a Git repository gets its own isolated Git worktree, so changes in one session don’t conflict with another until committed. Open a new session with Cmd+N.
Practical pattern: run three parallel sessions simultaneously:
- Session 1: main feature branch
- Session 2: hotfix on production branch
- Session 3: dependency upgrade on separate branch
Each session tracks its own CI status bar if it has an open PR. Auto-archive cleans them up when PRs merge.
Side chat (Cmd+;) opens a lightweight question thread that shares the main session’s context. Ask “what does this function return for nil input?” without interrupting the main task. Claude answers in the side panel and you return to the main thread.
Computer Use
Computer use lets Claude open your applications, control your screen, and interact with anything that has no CLI or API surface. Enable it in Settings → General, then grant macOS Accessibility and Screen Recording permissions (or Windows equivalent).
Browsers get view-only access. Terminals and IDEs get click-only access (no typing). Everything else gets full control. This hierarchy steers Claude toward precise tools (shell, Chrome extension) before falling back to pixel-level interaction.
Use computer use for: native app testing, mobile simulators, hardware control panels, proprietary desktop tools without an API, and cross-app GUI workflows.
Computer use is a research preview on Pro and Max plans. Not available on Team or Enterprise.
SSH Sessions and Remote Cloud Sessions
SSH sessions: Desktop connects to any remote machine you manage (cloud VMs, dev containers, your own servers) and installs the Claude Code CLI on the remote side automatically the first time. All features that run on the remote file system work normally; the Browser pane and computer use require the session to have a display.
Remote (cloud) sessions: Run on Anthropic-hosted infrastructure. Sessions continue even if you close the Desktop app. Multiple repositories can be added. Bypass permissions mode is not available (the environment is already sandboxed). Useful for long-running refactors you don’t want to babysit.
Three Multi-Pane Workflow Patterns
Pattern 1: PR Review Loop
This workflow handles the entire code-change-to-merged-PR cycle without leaving Desktop.
Pane layout: [Chat | Diff | Terminal | Browser]
1. Start session, select project folder
2. Describe the change in Chat
3. Review diff in Diff pane, add inline comments (Cmd+Enter)
4. Claude revises → new diff appears
5. Click "Review code" → Claude self-review
6. Address any flagged issues
7. Terminal: run tests manually if needed
8. Push PR → CI status bar appears
9. Enable Auto-fix + Auto-merge
10. Close laptop. Desktop notification when it's done.
Pattern 2: Feature Development with Live Preview
Pane layout: [Chat | Browser | Diff]
1. Select project, permission mode: Accept edits
2. Ask Claude to implement feature
3. Browser pane auto-opens dev server
4. Claude: takes screenshot → identifies issue → edits → screenshot
5. You: watch changes appear live in Browser pane
6. Diff pane: review final state before committing
This pattern is fastest for UI work. Claude iterates on what it sees in the browser rather than on what it thinks the output should be.
Pattern 3: Parallel Workstreams with Auto-Archive
Session 1: feature/auth-refactor
Session 2: fix/login-regression
Session 3: chore/update-dependencies
All three run simultaneously. Each has its own CI bar.
Auto-archive: on (Settings → Claude Code)
Morning start → open Desktop → three sessions running
Evening end → two PRs merged, auto-archived
One session awaits review comments
With auto-archive, finished sessions disappear from the sidebar automatically. The list stays clean without manual housekeeping.
Keyboard Shortcuts Reference
| Shortcut | Action |
|---|---|
Cmd+N | New session |
Cmd+W | Close session |
Ctrl+Tab | Next session |
Ctrl+Shift+Tab | Previous session |
Cmd+Shift+D | Toggle diff pane |
Cmd+Shift+B | Toggle Browser pane |
| `Ctrl+“ | Toggle terminal pane |
Cmd+; | Open side chat |
Cmd+Shift+M | Permission mode menu |
Cmd+Shift+I | Model menu |
Cmd+Shift+E | Effort menu |
Ctrl+O | Cycle view modes (Normal / Verbose / Summary) |
Esc | Stop Claude’s response |
Use Verbose view (Ctrl+O) to see every tool call and file read. Use Summary view to scan results across multiple sessions quickly.
What Stays in the CLI
The CLI handles scenarios Desktop cannot:
- Headless automation:
claude -p "run the audit" --output-format json | jq '.result'in CI pipelines - Shell piping:
git diff HEAD~1 | claude -p "summarize changes" - Non-interactive scripting: cron jobs, Makefiles, pre-commit hooks invoking Claude
dontAskmode: pre-approve a fixed set of tools with zero prompts — useful in sandboxed containers--dangerously-skip-permissions: fully non-interactive for isolated environments
For team workflows, a common split: engineers use Desktop for active development sessions; CI uses the CLI for scheduled review jobs and automated checks. Both read the same CLAUDE.md and hooks configuration.
Connecting External Tools
Desktop supports connectors for GitHub, Slack, Linear, Jira, and other services. Connect them from the + button in the prompt box → Connectors. Once connected, Claude can read GitHub issues into context, post Slack updates when a PR merges, or pull Linear tickets as task context — without you copy-pasting.
Plugins extend this further: browse and install plugins from the + button → Plugins. Plugins bundle skills, agents, MCP servers, and connectors into a single installable package.
Related Reading
- Claude Code Hooks: Automate Pre/Post Tool Actions and Session Events (2026)
- Claude Code Skills vs Slash Commands: Complete 2026 Guide
- Claude Code Print Mode and stream-json Automation Guide
- Claude Code GitHub Actions: Complete CI/CD Integration Guide
FAQ
Q: Does Desktop App share CLAUDE.md with the CLI?
Yes. Both read the same .claude/ directory and ~/.claude/ user-level config. Any hook, skill, setting, or MCP server configured for the CLI works identically in Desktop.
Q: Can I use Claude Code Desktop without installing the CLI?
Yes. The Desktop app includes the Claude Code engine — you don’t need Node.js or the CLI separately. Install the CLI only if you want to run claude from your terminal alongside Desktop.
Q: Does auto-merge require repository settings changes?
Yes. GitHub’s auto-merge feature must be enabled in your repository settings (Settings → General → Allow auto-merge). Claude Code enables auto-merge on the PR via gh pr merge --auto; GitHub enforces branch protection rules before executing it.
Q: Is scheduled tasks available on all plans?
Scheduled tasks run in cloud infrastructure and require a Pro, Max, Team, or Enterprise plan. The feature is accessed from the Desktop sidebar.
Q: Can I use computer use in Remote (cloud) sessions?
No. Computer use requires the Desktop app to be running locally. Cloud sessions don’t have a display surface for screen control.
Q: What’s the difference between auto-fix and just asking Claude to fix CI in chat?
Auto-fix runs autonomously in the background without you being present. It monitors the CI status bar, reads failure output when checks fail, and iterates until checks pass or it hits a dead end. Chat-based fixing requires you to manually paste error output and wait.
Q: Does the Browser pane support OAuth sign-in flows?
Yes. The Browser pane handles popup sign-in flows including Google OAuth. Credentials are stored in the pane’s clean browser profile (separate from your personal browser). Claude in Chrome extension uses your existing browser sessions instead.
Secure Your Desktop Workflow
If your sessions involve API keys, MCP server credentials, or environment secrets, avoid hardcoding them in .claude/ files that might be committed. 1Password CLI’s op run injects secrets into Claude Code’s environment at session start — no .env files, no shell history exposure, and an audit log for every secret the session touches. Works with both Desktop and CLI.