Codex App Mastery
You have a monorepo with a frontend, a backend API, and a shared library. You need to refactor an interface in the shared lib, update the API consumers, and fix the resulting frontend type errors — all without the three tasks stepping on each other’s files. Doing this sequentially means waiting; doing it in one thread means confusion. The Codex App was built for exactly this kind of parallel orchestration.
What You’ll Walk Away With
Section titled “What You’ll Walk Away With”- A workflow for managing multiple projects and parallel threads in a single Codex App window
- Techniques for leveraging IDE sync, voice dictation, and inline diff review to cut review time in half
- A strategy for combining Local, Worktree, and Cloud modes in the same session
- Production-ready patterns for skills integration and MCP server configuration in the App
Multi-Project Orchestration
Section titled “Multi-Project Orchestration”The Codex App sidebar is your control center. Each project maps to a directory on disk, and you can switch between them instantly. The key insight is that each project maintains its own sandbox, worktree state, and thread history.
-
Add your projects. Click the ”+” in the sidebar and point to each codebase directory. For a monorepo, split distinct packages into separate projects so the sandbox only includes relevant files.
-
Launch parallel threads. Within a single project, open multiple threads — one in Local mode for quick edits, one in Worktree mode for an experimental feature, one in Cloud mode for a heavy refactor that should not block your machine.
-
Monitor the inbox. Automation results and completed cloud tasks surface in the Triage section. Filter to “unread” to focus on what needs your attention.
IDE Sync: Bridging App and Editor
Section titled “IDE Sync: Bridging App and Editor”When the Codex IDE Extension is installed in VS Code or Cursor and both the App and IDE are pointed at the same project, they sync automatically. This gives you two superpowers:
Auto context — The App tracks which files you have open in your editor. When you ask “What’s this file about?” in the App, it knows you mean the file you are looking at in VS Code.
Bidirectional thread visibility — Threads started in the App appear in the IDE Extension sidebar and vice versa. You can start a heavy task in the App, switch to the IDE to continue coding, and watch the thread progress without context-switching.
Choosing the Right Mode
Section titled “Choosing the Right Mode”Every new thread in the Codex App asks you to pick a mode. Here is how to decide:
| Mode | Use When | Trade-off |
|---|---|---|
| Local | Quick edits, debugging, exploring code | Changes happen directly in your working directory — risk of conflicts if multiple threads touch the same files |
| Worktree | Feature work, experiments, parallel tasks | Git worktree isolation means no conflicts, but you need to sync or merge changes back |
| Cloud | Heavy refactors, tasks you want to delegate, mobile triage | Runs remotely, needs a configured environment, cannot access local-only tools |
Built-in Git Workflow
Section titled “Built-in Git Workflow”The App includes a complete Git workflow: diff review, inline commenting, staging, committing, pushing, and PR creation. The diff pane shows a standard unified diff of your changes. You can:
- Add inline comments that Codex will address in a follow-up turn
- Stage or revert specific chunks or entire files
- Commit, push, and open a PR without leaving the App
For worktree threads, use “Create branch here” to turn a detached HEAD into a named branch, then push directly to your remote.
Skills in the App
Section titled “Skills in the App”The App supports the same agent skills as the CLI and IDE Extension. Click “Skills” in the sidebar to browse available skills across your projects. To trigger a skill explicitly in a thread, prefix it with $:
$recent-code-bugfixCombine skills with automations for recurring tasks. For example, a $dependency-audit skill paired with a weekly automation keeps your dependencies reviewed without manual effort.
Advanced Keyboard Shortcuts
Section titled “Advanced Keyboard Shortcuts”| Shortcut | Action |
|---|---|
Cmd + J | Toggle the integrated terminal |
Cmd + K | Open the command palette |
Ctrl + M (hold) | Voice dictation |
Ctrl + L | Clear the terminal |
The integrated terminal is scoped to the current project or worktree. Use it to run tests, check git status, or execute any command without leaving the App.
Permission Profiles (CLI v0.128+)
Section titled “Permission Profiles (CLI v0.128+)”The April 30, 2026 release introduced permission profiles — named sandbox + filesystem policies you switch between per-task without rewriting config.toml. They sit on top of the two-layer security model (sandbox + approvals), so a single named profile captures a whole posture.
Built-in profiles
Section titled “Built-in profiles”Built-ins carry a leading colon. Custom profiles you define drop it.
| Profile | What it allows | Typical use |
|---|---|---|
:read-only | Read filesystem; no edits, no shell writes | Code review, security audit |
:workspace | Read + write inside the active workspace roots | Default for most coding tasks |
:danger-full-access | Removes local sandbox restrictions — no approvals | Throwaway environments, CI runners |
Switching profiles
Section titled “Switching profiles”# Inside the TUI — switch posture mid-session/permissions
# Load a config profile that pins a permission profile (per-invocation)codex --profile reviewDefine custom profiles under [permissions.<name>] in config.toml, then set a default with the top-level default_permissions key. Prefer extending a built-in so baseline protections carry forward — a custom profile can extend :read-only or :workspace, but never :danger-full-access.
# config.toml — a review posture that extends :read-only[permissions.review]extends = ":read-only"
# Make it the default for this projectdefault_permissions = "review"Plugin Marketplace
Section titled “Plugin Marketplace”Recent CLI releases added a plugin system: a codex plugin command tree with a nested marketplace subcommand for managing the sources you install from. Marketplaces are added first, then you install plugins from a configured marketplace snapshot.
# Register a marketplace source# Accepts owner/repo, owner/repo@ref, an HTTPS/SSH git URL, or a local dircodex plugin marketplace add my-org/my-plugincodex plugin marketplace add my-org/my-plugin@v2 # pin a ref inline...codex plugin marketplace add my-org/my-plugin --ref v2 # ...or with the equivalent flagcodex plugin marketplace add ./local-plugin/ --sparse plugins/
# List configured marketplaces and refresh their snapshotscodex plugin marketplace listcodex plugin marketplace upgrade
# Install a plugin from a configured marketplacecodex plugin add openai-docscodex plugin list
# Remove an installed plugin, or a marketplace sourcecodex plugin remove openai-docscodex plugin marketplace remove my-org/my-pluginInside the TUI, /plugins opens the management panel with tabbed browsing, inline toggles, and one-click install/uninstall.
AWS Bedrock Authentication
Section titled “AWS Bedrock Authentication”Codex CLI ships a built-in amazon-bedrock model provider (SigV4 signing, AWS credential chain). Point Codex at it with the top-level model_provider key, then configure the AWS profile and region under the provider’s [model_providers.amazon-bedrock.aws] table.
model_provider = "amazon-bedrock"
[model_providers.amazon-bedrock.aws]profile = "codex-bedrock" # a named profile in ~/.aws/credentialsregion = "eu-central-1" # or your Bedrock regionTwo auth paths
Section titled “Two auth paths”- Bedrock API key — export
AWS_BEARER_TOKEN_BEDROCKwith your Bedrock API key. If it is set, Codex uses it first. - AWS SDK credential chain — if no bearer token is present, Codex falls back to the standard SDK chain, which honors the named
profileabove (and env vars, instance roles, SSO, etc.).
Select a Bedrock-served model with /model gpt-5.5 (or whichever Bedrock model id your account exposes — ids look like openai.gpt-5.5 or openai.gpt-oss-120b). Combine with permission profiles to keep the blast radius small — a :read-only profile plus the Bedrock provider gives you a fully isolated review agent.
When This Breaks
Section titled “When This Breaks”- Worktree branch conflicts: Git only allows a branch to be checked out in one worktree at a time. If you create a branch on a worktree and try to check it out locally, Git will error. Use “Sync with local” instead of manually checking out the branch.
- Disk space from worktrees: Each worktree copies your entire repo. Archive threads you no longer need so Codex can clean up worktrees automatically (older than 4 days or when you exceed 10 worktrees).
- IDE sync not working: Both the App and IDE Extension must point at the same project root. Check that neither is pointing to a parent or child directory of the other.
- Notifications not firing: Verify notification settings in the App preferences. On macOS, also check System Settings > Notifications for the Codex App.
What’s Next
Section titled “What’s Next”- Worktrees deep dive — Master the sync, branch, and merge workflows
- Automations — Set up recurring background tasks that report to your inbox
- Cloud Environments — Configure remote execution for heavy workloads