Orchestrating Claude Code and Codex Together: A Power User Guide A new power-user guide explains how to run Anthropic's Claude Code and OpenAI's Codex side by side using existing subscriptions, with sign-in via browser flows instead of API keys, shared project instructions via AGENTS.md and CLAUDE.md, and per-agent permission settings. The guide recommends a cross-review handoff pattern where one agent writes and the other reviews, and warns that an ANTHROPIC_API_KEY in the environment can accidentally bill API usage instead of a subscription. Orchestrating Claude Code and Codex Together: A Power User Guide Run Claude Code and Codex side by side on the plans you already pay for: signing in without API keys, one set of project instructions both agents read, permission settings per agent, and the handoff patterns that make two agents better than one. The most common request we see from people setting up a coding-agent workflow is for one place to run the agents they already pay for, rather than for a new model or a new feature. In their words: the Codex desktop app and the Claude Code desktop app, merged together, on their actual memberships rather than a metered API key. The two agents do work well together, and the setup is not complicated once you know which pieces need to be duplicated and which can be shared. This guide covers signing both in on subscription access, giving them one set of project instructions, setting their permissions deliberately, and the handoff patterns that make running both worth the extra setup. Quick answer Sign in, do not paste keys. claude opens a browser sign-in against your Anthropic account. codex login does the same for your ChatGPT account. Watch for a stray API key. An ANTHROPIC API KEY sitting in your environment changes which account gets billed. Claude Code asks before using it; read the prompt. Share one instructions file. Codex reads AGENTS.md . Claude Code reads CLAUDE.md . Point one at the other with a single @AGENTS.md line instead of maintaining both. Set permissions per agent, in a file. Codex uses approval policy and sandbox mode in ~/.codex/config.toml . Claude Code uses permission modes and settings.json . The best two-agent pattern is cross-review. One agent writes, the other reviews the diff with no memory of having written it. Route by your own results. Model versions move faster than any comparison you read, including this one. Step 1: sign both agents in on the plans you already have Claude Code Install, then run it in a project and follow the browser prompts: curl -fsSL https://claude.ai/install.sh | bash macOS, Linux, WSL claude --version claude Claude Code requires a Pro, Max, Team, Enterprise, or Console account. The free Claude.ai plan does not include Claude Code access. One thing to check before you sign in. If ANTHROPIC API KEY is set in your environment, Claude Code prompts you once to approve that key rather than opening the browser flow. If you meant to use your subscription, decline, and make sure the variable is not exported by your shell profile or a .env file the terminal sourced. This is the most common way people end up billing agent work to an API account they forgot they had configured. Confirm your setup with: claude doctor Codex has the same diagnostic as codex doctor , which checks installation, config, auth, and runtime health without starting a session. Run both once after setup and you will catch a broken install before an agent does. Codex Install, then sign in: curl -fsSL https://chatgpt.com/codex/install.sh | sh codex login opens the browser flow for your ChatGPT account codex login status shows the active authentication method Codex caches credentials at ~/.codex/auth.json or in your operating system’s credential store. If it is the file, treat it like a password: it holds access tokens, so keep it out of commits, tickets, and screen shares. codex logout clears it. If you deliberately want API-key billing for a particular machine, Codex makes that an explicit act rather than something it picks up from your environment: printenv OPENAI API KEY | codex login --with-api-key . Anything short of running that command leaves you on the account you signed in with. OpenAI determines which ChatGPT plans include Codex usage and what the allowances are, and those change. Check OpenAI’s own page on using Codex with your ChatGPT plan https://help.openai.com/en/articles/11369540-using-codex-with-your-chatgpt-plan rather than trusting a number in any article, including this one. Step 2: give both agents the same project instructions This is where two-agent setups quietly go wrong. You write a careful instructions file, one agent follows it, and the other does not, and it takes a week to notice that only half your sessions know the test command. Codex reads AGENTS.md . Generate a starting one from inside a session with /init . Claude Code reads CLAUDE.md , and it does not read AGENTS.md . Rather than maintaining two files that drift apart, make AGENTS.md the source and import it: @AGENTS.md Claude Code Use plan mode for changes under src/billing/ . The import loads at session start, and anything you write below it is appended, which is where Claude-specific instructions belong. A symlink works too when you have nothing agent-specific to add: ln -s AGENTS.md CLAUDE.md On Windows, use the @AGENTS.md import rather than the symlink, since symlink creation needs Administrator privileges or Developer Mode. What belongs in the shared file: build and test commands, the directory layout, conventions that differ from the language’s defaults, and the mistakes you have already had to correct twice. What does not: anything the agent can read off the codebase in ten seconds. Both agents pay context for every line, and adherence drops as the file grows. Step 3: set each agent’s permissions deliberately Two agents with different defaults produce work you trust unevenly, usually without realising why. Codex takes an approval policy and a sandbox mode, in ~/.codex/config.toml for your defaults and .codex/config.toml inside a repository for project-specific overrides: model = "gpt-5.6" approval policy = "on-request" sandbox mode = "workspace-write" approval policy accepts "untrusted" , "on-request" , and "never" . sandbox mode accepts "read-only" , "workspace-write" , and "danger-full-access" . The same values are available as flags for a single run, which is how you make one session stricter than your default without editing config: codex --sandbox read-only --ask-for-approval untrusted Named profiles are separate files layered on top of the base user config. codex --profile