CLI vs Web vs IDE vs Desktop App
Codex is not a single tool — it is four surfaces built on the same models. Each surface optimizes for a different workflow. Picking the right one (or the right combination) makes a real difference.
The Four Surfaces at a Glance
| Surface | How You Access It | Core Strength |
|---|---|---|
| CLI | codex in your terminal | Automation, scripting, SSH |
| Web | chatgpt.com/codex | Async task delegation |
| IDE Extension | VS Code / JetBrains sidebar | Context-rich inline editing |
| Desktop App | Standalone .dmg / .exe | Parallel multi-agent management |
CLI
The open-source, Rust-built terminal agent. Install via npm i -g @openai/codex, launch a full-screen TUI, and talk to it like a colleague sitting in your terminal.
Strengths
- Three approval modes — suggest (read-only), auto-edit (default), full-auto (unrestricted)
codex exec— non-interactive mode for CI/CD pipelines, scripting, and automationcodex cloud— delegate long-running tasks to the cloud without leaving the terminal- Subagents — spawn parallel agents for complex, multi-step tasks
- MCP support — connect third-party tools via Model Context Protocol
- Image inputs — attach screenshots with
-ifor visual context /review— code review on diffs, uncommitted changes, or specific commits
When to Use CLI
- You live in the terminal and switching to a GUI breaks your flow
- You need Codex inside a script, GitHub Action, or Jenkins pipeline
- You are debugging on a remote server over SSH
- You want one-off tasks with minimal setup
Limitations
- macOS and Linux only (Windows experimental via WSL)
- Text-based — no visual diffs or inline highlighting
- Subagent workflows can burn through tokens quickly
# Quick bug fix
codex "fix the off-by-one error in src/parser.ts"
# Non-interactive pipeline usage
codex exec "update CHANGELOG for v2.4.0" --approval-mode full-auto
# Attach a screenshot for context
codex -i screenshot.png "match this design in the landing page"
Web (chatgpt.com/codex)
The cloud-based surface. Each task spins up an isolated sandbox pre-loaded with your GitHub repo. You delegate, walk away, and come back to a proposed PR.
Strengths
- Fire-and-forget — tasks run autonomously for 1-30 minutes
- Isolated sandboxes — each task gets its own container, no risk to your local state
- GitHub integration — connect repos and receive PR proposals directly
- No local setup required — works from any browser, any OS
When to Use Web
- You want to delegate a task and not babysit it
- You do not have a local dev environment for the project
- You need bug triage across a large codebase
- Non-technical team members need to request code changes
Limitations
- No internet during execution — the sandbox cannot fetch packages or call external APIs
- Limited to what is in your connected GitHub repository
- Less interactive — you delegate and wait, no back-and-forth mid-task
- No local filesystem access
The web surface is best thought of as an async worker. Hand it a well-scoped task, let it run, review the result. It is not a pair-programming tool.
IDE Extension
Available for VS Code (and forks like Cursor, Windsurf) and JetBrains IDEs (IntelliJ, PyCharm, WebStorm, Rider) starting with 2025.3.
Strengths
- Contextual awareness — leverages open files, text selections, and
@filereferences - Three modes — Chat (read-only), Agent (edits with approval), Agent Full Access
- Cloud delegation — offload longer tasks to Codex Cloud without leaving the editor, then preview and apply diffs locally
- Model and reasoning control — switch models and adjust reasoning effort (low/medium/high)
- Minimal workflow disruption — the agent sits in your sidebar, ready when you need it
When to Use IDE Extension
- You are actively coding and want AI assistance inline
- You want to reference open files and selections without copy-pasting
- You need quick refactors, renames, or code generation in context
- You prefer staying in one window for everything
Limitations
- macOS and Linux (Windows experimental via WSL)
- JetBrains integration is newer — fewer features than VS Code for now
- Not suitable for headless or remote server work (use CLI for that)
- Batch workflows are better handled by CLI
# In the IDE sidebar:
@file:src/api/routes.ts refactor this to use the new auth middleware
Desktop App
Standalone application launched February 2026. macOS (Apple Silicon) and Windows. Linux on waitlist.
Strengths
- Parallel task management — run multiple agents simultaneously across separate threads
- Built-in Git integration — review diffs, comment inline, stage/revert chunks, commit
- Worktree isolation — parallel tasks run in separate Git worktrees so they do not destabilize each other
- Integrated terminal — each thread gets its own terminal for testing and dev servers
- Skills and automations — create reusable agent abilities, pair skills with background tasks
- MCP server connections — same as CLI
When to Use Desktop App
- You are managing multiple parallel coding tasks and need a visual command center
- You want visual diff review with inline commenting
- You are working across multiple branches simultaneously (worktree support)
- You want dedicated agent workspace separate from your IDE
Limitations
- Apple Silicon required on macOS (no Intel support)
- Linux not yet available
- Uses more system resources than CLI
- Relatively new — less battle-tested
Decision Matrix
| Scenario | Best Surface |
|---|---|
| Terminal-first workflow, scripting | CLI |
| CI/CD pipeline automation | CLI (codex exec) |
| Remote server debugging over SSH | CLI |
| Async task delegation, PR proposals | Web |
| No local dev environment | Web |
| Active coding with file context | IDE Extension |
| Quick inline edits and refactors | IDE Extension |
| Multiple parallel agents | Desktop App |
| Visual diff review and Git operations | Desktop App |
| Multi-branch feature development | Desktop App (worktrees) |
Combining Surfaces
Most teams in 2026 are not picking one surface — they are using two or three together. Common combinations:
Solo developer: CLI for automation + IDE extension for daily coding.
Team lead: Desktop app for parallel task orchestration + Web for delegating bug triage to the team.
DevOps engineer: CLI for pipelines and scripting + IDE extension when touching application code.
Full-stack team: IDE extension as the default + Web for async tasks + Desktop app for release-day parallel work.
All four surfaces share configuration and context. Your
config.toml,agents.md, and model preferences carry across CLI, IDE, and Desktop App. The Web surface uses your connected GitHub repos instead.
Pricing Differences
All surfaces are included in your ChatGPT plan — there is no per-surface pricing. The difference is in rate limits:
| Plan | Monthly Cost | Codex Access |
|---|---|---|
| Free | $0 | Very limited exploration |
| Go | $8 | Lightweight tasks |
| Plus | $20 | Full access: Web, CLI, IDE, Desktop |
| Pro | $200 | 6x Plus limits, priority, Spark model |
| Business | Pay-as-you-go | Token-based, Codex-only seats available |
API key access uses token-based pricing but does not include cloud features.
As of April 2026, Business and Enterprise teams can add Codex-only seats — pay-as-you-go with no fixed seat fee and no rate limits.
What is Coming
OpenAI has announced plans to merge ChatGPT, Codex, and the Atlas browser into a unified desktop “superapp.” This is expected in stages before end of 2026. Until then, the four-surface model is the reality — and learning when to use each one is the skill that separates efficient Codex users from the rest.
Related
- Models — which model to pick for each surface
- Config — shared configuration across CLI, IDE, and Desktop App
- Installation — get Codex running locally