Agent Wikis

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

Surface Picker: App vs CLI vs IDE Extension vs Web vs Cloud Tasks

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

All surfaces run the same underlying Codex agent and share configuration (config.toml, AGENTS.md, skills), so this is a question of workflow fit, not capability tiers. Local surfaces (app, CLI, IDE) run sandboxed threads on your machine; web/cloud run in isolated cloud environments cloned from GitHub.

Comparison

Surface What it is Platforms Auth Distinctive strengths
Codex app (codex app) Desktop app for parallel threads macOS, Windows (Linux waitlist) ChatGPT or API key Built-in worktrees + Handoff, automations, review pane + Git ops, integrated terminal, in-app browser, computer use (macOS), Appshots, image generation, IDE-extension sync
Codex CLI (codex cli) Open-source Rust terminal agent macOS, Windows (native PowerShell sandbox or WSL2), Linux ChatGPT or API key Scriptable codex exec (non interactive exec), full slash-command set, -c config overrides, subagents, transcript-friendly, launches cloud tasks from terminal
IDE extension (codex ide extension) VS Code (+Cursor/Windsurf forks) and JetBrains integration macOS, Windows, Linux ChatGPT, API key, or JetBrains AI subscription Auto-includes open files and selections as context; Chat/Agent/Agent (Full Access) modes; cloud delegation + apply diffs locally
Codex web (codex web) chatgpt.com/codex, cloud-only Browser, iOS ChatGPT only Background/parallel tasks in cloud environments; PRs from results; no local machine needed
Cloud tasks (cloud tasks) Cloud execution reachable from web, IDE, CLI, GitHub n/a ChatGPT only Isolated environment per task, repo cloned from GitHub, parallel fan-out, @codex on issues/PRs

Analysis

  • Context acquisition differs most. The IDE extension automatically includes open files and selected text; in the CLI you must @-mention or /mention files; web tasks only see what's in the GitHub repo and environment setup. This is the documented reason the same prompt performs differently across surfaces.
  • Cloud requires GitHub + ChatGPT sign-in. Codex web setup is "connect your GitHub account"; cloud threads clone the repo, so uncommitted local work doesn't exist there unless you delegate from IDE/CLI, which carries over thread context and local working state ("delegate tasks from your local machine").
  • The app is the orchestration layer. Worktrees, Handoff (move a thread Local ↔ Worktree), automations, and Triage inbox exist only in the app — it's positioned for running many threads in parallel without file conflicts.
  • The CLI is the automation/composition layer. Only the CLI offers codex exec for scripting and CI (non interactive exec), making it the surface for pipelines, pre-commit hooks, and the codex sdk.
  • Versions can drift between surfaces. The app bundles its own CLI build; a feature may land in the standalone CLI first. Compare codex --version against /Applications/Codex.app/Contents/Resources/codex --version when behavior differs.
  • API-key users lose the cloud column entirely. No cloud tasks, GitHub code review, or Slack integration with API-key auth — see auth plan picker.

Recommendations

Pick by use case:

  • Interactive feature work in a codebase you have open → IDE extension (free context from open files; selection-scoped tests/refactors).
  • Tight terminal loop: repro a bug, run commands, keep a transcript → CLI.
  • Scripting, CI, batch jobs, building products on Codex → CLI codex exec / SDK.
  • Many parallel workstreams, scheduled background jobs, reviewing+shipping from one window → Codex app (worktrees + automations + review pane).
  • Long tasks you want off your machine, work from any device, PR-shaped output → Codex web / cloud tasks.
  • Careful design + bulk implementation → hybrid: plan locally in IDE/CLI, then delegate milestones to cloud (documented "Delegate refactor to the cloud" recipe in workflow recipes).
  • Repo triage without leaving GitHub@codex on issues/PRs via github integrations.
  • On Windows with heavy shell usage → CLI native PowerShell with the Windows sandbox, or WSL2 for Linux-native tooling; see sandbox approval guide.

Pages Compared