T3 Code Setup: Claude Code, Codex, and API Gateways
Install T3 Code with an existing Claude Code or Codex CLI, verify a repository file read, and hand work between agents. Configure a separate Claude instance for OpenRouter or BetterToken without replacing your usual configuration. Covers v0.1.9, the MCP feature introduced in v0.1.8, gateway billing checks, Claude's reported five-hour usage issue, and privacy boundaries.
Contents

Use T3 Code when you want Claude Code and Codex in one interface, with fewer manual handoffs. Install one provider CLI first, then authenticate it or configure a separate API-backed instance. Verify a repository file read before letting an agent change code.
As of 2026-11-12, v0.1.9 is the latest stable release. It was released on November 11. The Use T3 Code in another app (MCP) feature arrived in v0.1.8, released on November 9. Start with the stable release rather than a maintainer preview.
When is T3 Code worth using?
Choose T3 Code for repeated cross-agent handoffs, separate project tasks, or remote supervision. Keep your existing CLI when you use one agent in one terminal and rarely need those features.
T3 Code is a control surface, not a new model. The underlying agent harness supplies tools and executes them. T3 coordinates those harnesses through desktop, web, and mobile interfaces.
The official project supports Claude Code, Codex, Cursor, Grok Build, OpenCode, Antigravity, and fx, among others. It is free and MIT-licensed. You still pay the underlying provider. T3 does not resell tokens or give you a new subscription allowance.
For a Claude Desktop or Codex app user, the useful question is whether one interface for several agents removes repeated work. Our Codex CLI, desktop, and IDE comparison helps when choosing an interface is the only problem.
Install one provider, then T3 Code
Install and authenticate the agent on the machine where T3 will run it. A CLI installed only on your laptop will not configure a separate server.
The handoff exercise needs both providers. For a single-provider trial, use the provider you installed and stop before the handoff.
The following terminal examples use Bash on Linux or Apple Silicon macOS. Start with a repository that contains README.md and no sensitive test data.
For Claude Code, use Anthropic’s native installation instructions:
curl -fsSL https://claude.ai/install.sh | bash
claude --version
For a subscription-backed instance, run claude auth login and complete browser sign-in. For API-only access, skip subscription login and complete the isolated gateway setup below before starting a thread.
For Codex, the official CLI guide provides this standalone installer:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex login
Get T3 from t3.codes or the linked GitHub repository. Check the spelling: the official domain is t3.codes, not t33.codes.
For the local web interface, run:
curl -fsSL https://t3.codes/install.sh | sh
t3
The t3 command starts the server and opens the local web app. Follow any installer instruction to add its directory to PATH.
With Node.js and npm already available, npx t3@latest offers a one-off entry point. For the macOS desktop app, use brew install --cask t3-code in your terminal.
Windows users can follow their provider’s Windows installation instructions, then install T3 in PowerShell:
irm https://t3.codes/install.ps1 | iex
t3
Open Settings → Providers and select the environment that owns the repository. Enable the provider there. To reuse an existing Codex CLI login, add a Codex instance and choose Configure manually.
If a provider is missing, check its installation and login on that environment’s machine. Set Binary path to its executable when T3 cannot find it on PATH. The installation guide covers these environment-specific settings.
Verify a file read, then hand the thread to Codex
Use a read-only task to check the selected provider, repository, and tool execution before testing code changes.
Add the repository as a project and open New thread. For the handoff example, select Claude and explicitly choose Supervised permissions in the composer. This mode requests approval for commands and file changes; review requests before accepting them.
Send:
Read README.md from this repository.
Quote its first heading and identify the documented test command.
If no test command is documented, say so.
Do not modify files or run tests.
Check the recorded tool activity, not just the final answer. Confirm that the agent read the correct file and returned its actual heading. A plausible description without a file read does not pass this check.
When the turn finishes, open the model picker and select your Codex instance and an available model. The picker shortcut is Cmd+Shift+M on macOS or Ctrl+Shift+M on Windows and Linux.
Then send:
Review the previous answer against the repository files.
Check whether the proposed test command needs extra setup.
Do not modify files or run tests.
The expected result is a Codex follow-up in the same T3 thread, with its own file-checking activity. This is a verification exercise, not a claim that either model will find a defect.
T3’s handoff documentation distinguishes transferred conversation context from a complete native session. Handoffs do not copy the outgoing provider’s reasoning, tool-call state, or attachments. Repeat important constraints and reattach required material.
For conventions that must survive many handoffs, keep them in project instructions. Our coding-agent memory guide covers that longer-lived layer.
Connect an API gateway through an isolated Claude instance
Use the Claude instance’s environment variables for an Anthropic-compatible gateway. Do not paste credentials into Launch arguments or replace your normal subscription instance.
Create a separate configuration directory
Keep the default Claude configuration unchanged. In Bash, create a directory for the OpenRouter instance:
mkdir -p "$HOME/.claude_openrouter"
If that directory already contains a cached Anthropic login, open a Claude session using it:
CLAUDE_CONFIG_DIR="$HOME/.claude_openrouter" claude
Run /logout inside that session, then exit before adding the router token. Skip this logout step for a fresh directory without a cached login. T3’s documentation warns that saved login credentials can conflict with the router token.
In Settings → Providers, add a Claude instance named Claude OpenRouter. Set Binary path to claude and CLAUDE_CONFIG_DIR path to ~/.claude_openrouter.
Enter these values in that instance’s Environment variables, following the official T3 OpenRouter recipe:
| Variable | Value |
|---|---|
ANTHROPIC_BASE_URL | https://openrouter.ai/api |
ANTHROPIC_AUTH_TOKEN | Your own OpenRouter API key; mark it Sensitive |
ANTHROPIC_API_KEY | An explicitly empty value |
Keep the ANTHROPIC_API_KEY entry with an empty value. Do not paste quotation marks as its value. Enter the real token only in the sensitive credential field, never in a chat prompt or a repository file.
Create a new thread for this instance. Existing Claude threads can switch only between Claude instances that share the same configuration directory.
Select the exact model and verify a billed request
Select the gateway’s full model ID in T3, rather than assuming a Claude alias will choose it.
As of 2026-11-12, an OpenRouter example is anthropic/claude-sonnet-5.5. In the Claude instance’s settings, use Add custom model if it is absent. Then select that model in the chat picker.
ANTHROPIC_DEFAULT_*_MODEL variables map Claude Code aliases such as sonnet. They do not override the explicit model selected in T3. Custom models can also expose fewer effort, thinking, or context controls than built-in entries.
Start the new thread with the gateway instance and repeat the README.md test. Check OpenRouter’s activity dashboard for the matching request and model. Review the usage and charge there. A good answer without a matching gateway record does not verify the billing route.
OpenRouter independently documents the same endpoint and credential variables in its Claude Code integration guide. These requests use OpenRouter credits, not an additional T3 token allowance.
As of 2026-11-12, OpenRouter limits its Claude Code compatibility guarantee to Anthropic’s first-party provider. Follow that guide’s recommendation to prioritize Anthropic 1P for this trial.
For BetterToken, its Claude Code documentation specifies https://bettertoken.ai as the Anthropic base URL, without /v1. Use your own BetterToken key in the sensitive ANTHROPIC_AUTH_TOKEN field. Keep ANTHROPIC_API_KEY empty and use a separate directory such as ~/.claude_bettertoken.
As of 2026-11-12, its catalog lists claude-sonnet-5-5. Select that exact ID and repeat the file-read and billing checks before larger work. This is separate API usage; consult current prices.
For a local router, use another isolated Claude instance and ensure the router is reachable from the T3 host. The Claude Code Router setup guide covers that extra routing process. These Anthropic variables configure the Claude provider; they are not a Codex configuration recipe.
Use T3 Code from another assistant through MCP
Use MCP when an outside assistant needs access to T3 projects and threads. Ordinary switching between Claude and Codex inside T3 does not require this setup. Start with an outside assistant whose own model authentication already works.
The outside-agent guide documents reading projects, listing available providers, and starting or messaging threads through T3’s MCP server.
Open Cmd/Ctrl+K and choose Use T3 Code in another app (MCP). The same action is available in Settings → Sharing & access. Choose the client and follow its instructions.
In Settings → Environments, open the saved environment’s menu and choose Copy MCP URL. Keep the T3 server running. Run this block in Bash, paste the copied URL when read waits, and press Enter:
read -r T3_MCP_URL
claude mcp add --transport http t3 "$T3_MCP_URL"
claude mcp login t3
For a Codex client, use this alternative:
read -r T3_MCP_URL
codex mcp add t3 --url "$T3_MCP_URL"
codex mcp login t3
Choose Read only during setup or sign-in approval for the first connection. It permits discovery without changes.
Ask the outside assistant to list T3’s projects and available providers. Compare its result with the T3 interface. That checks a real tool operation rather than merely saving a connector URL.
For sign-in failures, check that your client can reach the copied environment address before changing any model API credentials.
Only grant execution access when you intend to let that assistant start or steer work. Review the access scope before approval. The model API token and the MCP sign-in are separate credentials; changing one does not repair the other.
Check limits, privacy, and the failing layer
Keep subscription limits, API charges, and client configuration separate when diagnosing a problem.
As of 2026-11-12, the T3 FAQ still reports faster depletion of Claude’s five-hour allowance through Anthropic’s Agent SDK than through direct Claude Code use. The maintainers attribute this to an Anthropic-side bug. They say the reported acceleration does not affect weekly limits; that does not mean weekly limits disappear.
For an account with a five-hour allowance, compare a small representative task before moving a full workday into T3. If that window is your main constraint, keep direct Claude Code available.
The FAQ also says T3 does not support local models. A locally running router that forwards requests to a hosted model is not local model inference.
For inference, the FAQ says code and prompts travel from your machine to your provider, not T3’s servers. An API gateway becomes part of that provider route. This is not a zero-telemetry claim: T3 reports usage metadata such as provider, model, and token totals. Its telemetry documentation says product events exclude prompts and file contents. Review the separate diagnostics sections before using sensitive repositories.
For a missing provider, fix installation, login, or Binary path on the selected host. For gateway authentication failures, check the sensitive token, empty ANTHROPIC_API_KEY, and cached-login condition. For an unavailable model, check the exact gateway ID and the instance selected in the thread.
After each change, start a fresh test thread and repeat the file-read check. Keep the change only when the tool activity and the intended provider’s usage record agree.