---
title: "Surface Picker: App vs CLI vs IDE Extension vs Web vs Cloud Tasks"
type: synthesis
tags: [decision-guide, codex-app, codex-cli, ide-extension, codex-web, cloud-tasks]
created: 2026-06-10
updated: 2026-06-10
confidence: high
sources: ["raw/llms_txt_doc-codex.md", "raw/llms_txt_doc-codex-app.md", "raw/llms_txt_doc-codex-cli.md", "raw/llms_txt_doc-codex-ide-extension.md", "raw/llms_txt_doc-codex-web.md", "raw/llms_txt_doc-workflows.md", "raw/llms_txt_doc-prompting.md"]
---

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

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** ([[entities/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** ([[entities/codex-cli]]) | Open-source Rust terminal agent | macOS, Windows (native PowerShell sandbox or WSL2), Linux | ChatGPT or API key | Scriptable `codex exec` ([[concepts/non-interactive-exec]]), full slash-command set, `-c` config overrides, subagents, transcript-friendly, launches cloud tasks from terminal |
| **IDE extension** ([[entities/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** ([[entities/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** ([[concepts/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 ([[concepts/non-interactive-exec]]), making it the surface for pipelines, pre-commit hooks, and the [[entities/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 [[syntheses/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 [[syntheses/workflow-recipes]]).
- **Repo triage without leaving GitHub** → `@codex` on issues/PRs via [[entities/github-integrations]].
- **On Windows with heavy shell usage** → CLI native PowerShell with the Windows sandbox, or WSL2 for Linux-native tooling; see [[syntheses/sandbox-approval-guide]].

## Pages Compared

- [[entities/codex-app]]
- [[entities/codex-cli]]
- [[entities/codex-ide-extension]]
- [[entities/codex-web]]
- [[concepts/cloud-tasks]]
- [[concepts/non-interactive-exec]]
- [[syntheses/auth-plan-picker]]
- [[syntheses/workflow-recipes]]
