Claude Code and Codex,
in one window.
Carbon is a desktop app for both coding agents, running on the subscriptions you already pay for. Plan with one model, build with another, watch it work in a built-in browser, and review the diff without leaving the conversation.

One prompt, one turn — the agent wrote the page on the left, the built-in browser is rendering it on the right.
Both agents. Your own subscriptions.
Carbon drives the Claude Agent SDK and the Codex SDK, which drive the same CLIs you already signed into. Your Claude plan and your ChatGPT plan, in one picker. No API key, no metered billing, nothing new to pay for — and a chat you start here lands in the same session logs as a terminal one.
- Reuses your existing claude and codex logins.
- Switch provider mid-conversation — the outgoing model writes a brief the incoming one picks up.
- Reasoning effort and speed per model, changed live without losing the thread.


Plan with one model. Build with another.
Plan mode keeps the agent read-only until it hands you a written plan. Read it in the side panel, ask for changes, and when you approve, choose who implements it — the same model, a cheaper one, or a model from the other provider entirely.
Carbon tears down the review, switches backends and hands the plan across verbatim. The plan is the artifact; nothing gets lost in translation.
A browser and a diff, both in the window.
Carbon starts your dev server and renders the result next to the conversation — and it can hand a screenshot straight back to the agent, so “the spacing is off” becomes something it can actually see. When you're happy, the review pane carries a commit → push → gh pr create ladder that already knows which rung you're on.
- A real browser pane — it starts the dev server and reloads itself.
- A diff chip per turn, and an Undo for the edits that turn made.
- Commit, push and open the PR without touching a terminal.

Six themes, authored twice.
Carbon, Obsidian, Ember, Tide, Moss and Iris — each one drawn for light and dark separately rather than auto-inverted, so light mode is a design and not an afterthought. Frost the sidebar and the desktop blurs through behind it.



Everything else in the window.
The unglamorous parts that make a tool something you keep open all day.
Parallel git worktrees
Point a chat at a new worktree and it gets its own branch and directory. Several agents, no collisions.
Checkpoint and rewind
Jump the conversation back to any message, take a different path, and the files come with it.
Files, editor, terminal
A file tree, a real editor, and a real PTY terminal in the same window as the chat.
Usage and rate limits
Plan headroom in the sidebar, plus a spend breakdown by provider, model, and day.
MCP server status
See which of your configured MCP servers actually connected, and which quietly didn't.
History that survives
Every chat persists to SQLite and resumes exactly where it left off after a restart.
One line, then it's yours.
Carbon ships through its own Homebrew tap. The cask clears the quarantine flag on the way in, so there's no Gatekeeper detour — and it's the route that upgrades in place.
brew install --cask achour/carbon/carbonUpgradebrew update && brew upgrade --cask carbonThe brew update is load-bearing: Homebrew only re-pulls a tap once a day, so a bare upgrade can read a stale cask and tell you you're already current. Carbon notices when it was installed this way and shows you the upgrade command in-app when a release lands.
Prefer to build it? It's four commands in theREADME — and an app you compiled yourself never meets Gatekeeper at all.
One contract, three layers.
Both providers live in the Electron main process and normalize into a single event stream, so the UI never knows which agent it's talking to. Chats persist to SQLite with incremental, windowed writes — which is why a 36 MB conversation still opens instantly.
Built to be read
No telemetry, no accounts, nothing phoning home. The repo documents its own invariants — persistence, session flow, worktree design — for the humans and the agents working in it.
macOS only, for now
The build config and the update check already handle Windows and Linux artifacts. Nobody has tested them — so if that's your machine, the repo is open.
Fork it. Do whatever you want with it.
Carbon is fully open source. Read it, change it, ship your own build, use it at work, put it in a product you charge for. Keep the licence notice and that's the only string attached — no CLA, no open-core tier, no telemetry, nothing held back.