Claude Code vs Codex CLI for everyday project work on a Mac
Both of these are terminal agents that read your files, edit them, and run your commands. Benchmarks comparing them go stale within weeks, and the reviews that go viral tend to describe one person's codebase rather than yours. What stays stable long enough to decide on is the shape of each tool: how it installs, what it costs to start, what it is allowed to do without asking, and how it behaves when several tasks run at once. This is a read on those.
The same idea, built by different houses
Claude Code is Anthropic's coding agent. It starts as a terminal command and is also available through a desktop application with a Code tab, extensions for VS Code and JetBrains editors, cloud sessions in a browser, and a remote control mode that keeps a session running locally while a phone or browser watches it.
Codex CLI is OpenAI's local coding agent. It starts as a terminal command and sits alongside an IDE extension for VS Code, Cursor, and Windsurf, a desktop application launched with codex app, and a cloud agent reached from the web.
The overlap is nearly total in feature lists: file editing, command execution, MCP support, skills or plugins, subagents, session resume, image input, code review passes, and a non-interactive mode for scripts. Anyone hoping for a clean capability winner will be disappointed. The differences that persist are elsewhere.
Installing, and what happens at update time
| Claude Code | Codex CLI | |
|---|---|---|
| Primary install | curl -fsSL https://claude.ai/install.sh | bash |
curl -fsSL https://chatgpt.com/codex/install.sh | sh |
| Homebrew | brew install --cask claude-code |
brew install --cask codex |
| npm | npm install -g @anthropic-ai/claude-code |
npm install -g @openai/codex |
| Updates | Automatic in the background for the native install | Re-run the installer, or brew upgrade --cask codex |
| Release channels | latest and stable, selectable in settings |
GitHub releases per version |
| macOS requirement | macOS 13.0 or later | Current macOS on Apple Silicon or Intel |
One detail in that table changes the daily experience more than it looks. The native Claude Code install updates itself in the background and applies the new version on next launch, with a stable channel that trails the latest by roughly a week and skips releases with major regressions. Homebrew and npm installs of either tool are manual. For a tool that ships as often as these two do, choosing the automatic route means fewer sessions spent on a version from three weeks ago.
Both npm packages install native binaries rather than running on Node at runtime, so a Node version change does not break either command.
What it costs to start
| Plan level | Claude Code | Codex |
|---|---|---|
| Free | Not included on the free claude.ai plan | Available on the Free plan for quick tasks |
| Entry paid | Pro at 20 USD per month, or 17 USD per month billed annually | Go at 8 USD per month |
| Standard | Pro | Plus at 20 USD per month |
| Heavy | Max from 100 USD per month, 5x or 20x Pro usage | Pro from 100 USD per month, 5x or 20x Plus usage |
| Key-based | Console account or Bedrock, Agent Platform, Foundry | API key, usage-based, no cloud features |
Figures are the ones each vendor publishes, before tax, and both revise them. Two structural points survive the revisions. Codex has a route in at zero and a cheaper first paid step. Claude Code requires a paid plan but is bundled into a subscription many people already hold for other reasons, which changes the real marginal cost.
At the heavy end the two look remarkably similar: a 100 USD tier with a five-times and twenty-times usage option. That symmetry is a reminder that the market, not the engineering, is setting these numbers.
One dated item worth noting on the OpenAI side: GPT-5.5 retires from ChatGPT and Codex on all plans on October 14, 2026, so any configuration pinned to it needs updating before that date.
Safety defaults, which is where they really differ
If one section of this comparison earns its place, it is this one. Both tools let a model run commands on a machine that holds real work, and their defaults are not identical.
Codex CLI documents an operating-system-enforced sandbox with network access off by default and writes limited to the active workspace. The standard preset, --sandbox workspace-write --ask-for-approval on-request, lets it read, edit, and run commands inside the working directory without prompting, and makes it ask before writing outside that directory or using the network. Certain paths stay protected inside a writable root, including .git and .codex. A read-only mode is one /permissions command away for planning sessions. Full access exists and is labelled as dangerous. Web search serves results from a maintained cache by default, which limits exposure to instructions hidden in live pages, and switches to live results under full access.
Claude Code frames the same territory as permission modes chosen per session: Manual asks before each edit or command, Accept edits applies file changes for later review, Plan produces an approach without touching files, and Auto runs a background classifier that blocks risky actions instead of prompting. Bypassing permissions altogether has to be enabled deliberately, and on Team and Enterprise plans an organization policy governs whether it is available at all. Persistent rules live in a settings file, and hooks can run checks of your own before or after the agent acts.
The difference in emphasis is real. Codex leads with a technical boundary that constrains what is possible. Claude Code leads with a decision about when to be asked, plus hooks for enforcing your own rules. Both approaches work, and the sensible practice with either is the same: commit before a long task, keep the writable scope to the project, and read what the agent proposes rather than approving reflexively.
Where the project's instructions live
Neither model remembers a project between sessions, so both read a file from the repository.
Claude Code reads CLAUDE.md, with CLAUDE.local.md for personal additions, and the same file applies across the CLI, the desktop application, and the editor extensions. Codex reads AGENTS.md, and /init will generate a first draft of it.
A repository can hold both, and on teams where people use different agents it usually should. The cost is keeping two files in agreement. The benefit is that switching tools, or onboarding someone who prefers the other one, does not start from zero. Treat these files as project documentation: review them, keep them short, and delete advice that turned out to be wrong.
Configuration lives in different places. Codex keeps personal defaults in ~/.codex/config.toml with per-project overrides in .codex/config.toml, loaded only for trusted projects. Claude Code keeps settings in ~/.claude/settings.json and project-level equivalents, shared between the CLI and the desktop application.
Parallel work and scripted runs
Two capabilities decide whether an agent becomes part of a workflow or stays a chat window with file access.
Parallel sessions. Claude Code runs concurrent sessions as sidebar tabs in the desktop application, with an option to isolate each in its own Git worktree, and --worktree does the same from the terminal. Agent teams, where one session assigns work to teammates from a shared list, are documented for the CLI. Codex splits larger investigations with subagents that report findings back into the main session.
Non-interactive runs. Codex uses codex exec for pipelines and scheduled jobs. Claude Code uses claude -p and an Agent SDK, and its desktop application adds scheduled tasks with a screen for managing them. Both pair naturally with an API key rather than a personal subscription when they run unattended, and both vendors say so.
If the goal is a nightly job, either works. If the goal is watching four tasks at once and answering whichever one stops first, the arrangement of the interface matters more than the model, and that is worth trying rather than reading about.
Surfaces beyond the terminal
Neither product stays in the terminal, and the extra surfaces are part of what is being bought.
Claude Code's desktop application runs the same engine behind a graphical interface, with a sidebar of parallel sessions, draggable panes for chat, diffs, terminal, files, and a browser, a diff view where comments can be left on individual lines, a preview pane for a running development server, pull request monitoring that can fix failing checks, and scheduled tasks. It shares CLAUDE.md, MCP servers, hooks, skills, and settings with the CLI, and /desktop moves a live terminal session into it. What it does not do is scripted, non-interactive work, which stays with the CLI.
Codex reaches sideways instead of upward. The IDE extension puts the agent inside VS Code, Cursor, and Windsurf, which suits people who want the agent where they already read code. codex app opens a desktop experience, and the cloud agent on the web takes work that should continue after the laptop closes. The account and the AGENTS.md conventions follow across all of them.
The choice here is less about features than about where attention already sits. Someone who reads diffs in an editor all day gains little from a second window; someone who runs four tasks at once gains a lot from a sidebar that shows which one is waiting.
The thing both of them assume
Every feature above rests on one premise: the terminal is already open at the right folder, and everything the task needs is inside it.
That premise does not describe most Mac work. A job spans a repository, a folder of reference PDFs, an export in Downloads, and media on an external drive. The agent sees the directory it started in. Everything else arrives by hand: switch to Finder, locate the path, copy it, switch back, type cd. A few seconds each time, and a broken thread of attention each time, repeated for as long as the day lasts.
Part of the fix is free: one folder per piece of work, its conventions written into CLAUDE.md or AGENTS.md, and a habit of starting the agent there. The rest is structural. When a file manager keeps a terminal in the same window, selecting a folder is what opens the shell in it, so the agent starts in the right place and the files it rewrites stay visible beside the transcript. The comparison with other file managers describes how that differs from running Finder and a terminal as two applications.
The other gap is time, not space. An agent works for minutes and then stops to ask something, and the answer waits for someone to come back. Reading the running terminal from an iPhone or iPad turns that stalled stretch into a one-line reply.
What to change first
Install both, if the subscriptions are already in hand. They do not conflict, they read different instruction files, and a week of real work will settle the question better than any benchmark. If only one is an option, let the deciding factor be the entry price and the safety defaults rather than a leaderboard, because those are the parts that will still be true next quarter.
Then fix the layer underneath, since it applies to whichever agent wins: one folder per project, instructions written down, and a window where the folder and the shell sit together. Everything Atriens does on the Mac itself is free, so that last piece is a measurement rather than a purchase.
Frequently asked questions
Can Claude Code and Codex CLI be installed on the same Mac?
Yes. They are separate binaries with separate configuration directories and separate instruction files, so nothing collides. A repository can carry both CLAUDE.md and AGENTS.md, and many people keep both files in agreement so that either agent can pick up the work.
Which one is cheaper?
Codex has the lower entry point: OpenAI lists it on the Free plan for quick tasks and at 8 USD per month on Go, with Plus at 20 USD. Claude Code needs a paid Claude plan, listed at 20 USD per month for Pro or 17 USD per month billed annually. At the heavy end both vendors list a tier from 100 USD per month with five-times and twenty-times usage options. All figures exclude tax and change regularly.
Which one is safer to let run commands?
Codex CLI documents an operating-system-enforced sandbox with network access off by default and writes limited to the workspace. Claude Code offers permission modes per session, from asking before every action to a classifier that blocks risky actions in the background, plus hooks for your own checks. Either is reasonable if commits are made before long tasks and the writable scope stays inside the project.
Do both work without a subscription, using an API key?
Yes, and that is the usual choice for automation. Codex supports an API key that bills by usage but drops cloud-connected features such as automatic code review. Claude Code supports a Console account and third-party providers including Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry, though some features such as remote control are unavailable on those routes.
Is one of them better at large codebases?
Published comparisons disagree, and they tend to measure one repository with one set of conventions. What reliably improves results on a large codebase is the same for both: a short, accurate instruction file, a scope limited to the directories that matter, and a review step that a human actually performs. Testing both on your own repository for a week produces a more useful answer than any benchmark.