Run claude, codex, antigravity and more in parallel, each in its own git worktree

· termic

10 min read Original article ↗

Every new CLI feature, the day the vendor ships it.

Termic spawns the real CLIs in PTYs. claude, codex, antigravity, copilot, grok, opencode, pi, Meta's muse and devin ship built in; when any of them updates, you get the update, no wrapper to catch up. Add your own in 30 seconds: aider, ollama run, anything that runs in a PTY. Free and open source, AGPL-3.0.

Runs locally: no account, no backend.

Termic interface: sidebar with five projects and a task under each, claude having just finished a reading-time task in the main pane, codex, Antigravity and a terminal open as sibling tabs, file tree on the right

Free · Open source · AGPL-3.0

Termic is free. CLIs run on your existing plan.

Termic spawns the CLI binaries you already have (claude, codex, agy) and inherits their auth. Since Anthropic's June 15, 2026 Agent SDK credit change, the SDK path (plus claude -p, the GitHub Actions integration, and third-party apps that authenticate through the SDK) bills a separate credit. The interactive claude CLI, which is what Termic spawns, stays on the regular Pro / Max subscription usage limits.

01

Free, open source, AGPL-3.0

Termic itself costs nothing and never will. The source is on GitHub, and the AGPL means any fork or derivative stays open too.

02

The interactive CLI path

Termic spawns interactive claude directly, the same path you'd use in a terminal, so usage comes out of your normal plan limits instead of the SDK credit meter. Termic adds no per-token markup and runs no agent loop of its own.

03

The best harness is their own harness

Anthropic, Google and OpenAI ship features in their CLIs first, because that's where their teams put the work. SDK wrappers catch up later. Termic runs the CLI, so the day a model upgrades or a slash command lands, you're using it.

usage · new

Context and plan usage, for every agent

The task footer carries each agent's own numbers: how much of the context window this conversation is using, the rolling session and weekly plan windows with the time they reset, and what the same work would have cost at API rates. Termic does not estimate any of it. It reports what the agent reports.

The numbers are keyed to the account, not the task. Two tasks on the same login read one number; two tasks on different logins never see each other's. When one account runs low, add a second and switch that task over without restarting anything else.

Agents and accounts →

The Termic task footer with the claude usage chip open: context at 7 percent (68k of 1M tokens), session at 17 percent of a rolling five hours, weekly at 57 percent of a rolling seven days, and what the work would have cost at API rates.
New task menu with a Main checkout / Worktree toggle above the full agent list: claude, codex, Antigravity, copilot, grok, pi, opencode, muse and devin, plus Terminal, Custom command and Start a race

tasks

Main checkout, or a fresh worktree

Main checkout attaches an agent to your actual checkout. Use it for one-off questions, README edits, the kind of small thing that doesn't deserve a branch. It's the default.

Worktree creates a separate copy on disk, branched off your default (the branch name is filled in for you, editable inline). Run a dev server on a unique port, ship a feature, archive when done.

Even on a single project and a single branch, Termic gives you tabbed agents, a built-in editor and diff view against HEAD, a Run/Setup panel that streams your dev server, and one-click claude --resume / codex resume --last per task.

Tasks & worktrees, in depth →

daily driver

Accounts, profiles, multi-repo, broadcast

The billing math gets you to install Termic. This is the stuff you touch every day.

/Two logins per agentnew

Work and personal on the same agent. Each task picks which login it runs as, and for claude and codex Termic can move a task to the second account when the first hits its limit: the agent restarts, the conversation carries on. It never reads or stores the credential. It makes an empty directory, points the agent's own config at it, and you run that agent's own login.

/Work and personal, side by sidenew

A profile is a whole separate Termic: its own window, projects, tasks and settings. Switch from the chip in the title bar and the other profile opens in its own window. Neither can see the other's work, so a client repo never turns up in a screen share of your side project. You have none until you make one.

/Multi-repo task

Add api/, web/ and infra/ to one task and the agent works across all of them at once. Drop a shared CLAUDE.md describing every repo and its structure, and you develop end to end without re-explaining the layout each session.

/Search that is just git

Cmd+P is a Sublime-style fuzzy finder over git ls-files; Cmd+Shift+F is project-wide search over git grep. Both respect your .gitignore, so node_modules stays out, and both stay instant on big repos with no separate indexer to install.

/Terminal tabs, your launch command

Not every tab needs an agent. Open a plain terminal, or one that boots straight into a command you set. Keep k9s --context= per cluster in the sidebar and every environment is one click away.

/Broadcast to many agents

Send one message to several agents in a task at once. Ask the same question across claude, codex and agy, then compare how each answers before you commit to an approach.

/Know which agent needs you

A blue dot lands on a tab the moment its agent finishes a turn; an orange bell when one is blocked on your input. Both come from PTY signals rather than an idle timer, and an optional desktop notification drops you on the exact task and tab.

/Queue follow-ups

Line up the next few messages for an agent and each sends automatically when it finishes the previous turn. Repeat a step N times, or queue a whole plan and walk away.

/Reusable prompt library

Save the prompts you fire all day (review, write tests, commit) and run them from one menu into a running agent or a fresh one. Ships a diff-aware starter set that finds the branch's changes on its own.

Every feature, documented →

Leaving an inline comment on a diff in Termic: a composer open on a changed line, a pending comment already saved further down, and a pending comment count in the footer

review

Review your agent's work like a pull request

The agent hands you a diff; you hand it back precise feedback. Select the lines that are wrong, leave an inline comment right where the problem is, and keep reading. Your notes stack up as drafts pinned to the diff, and nothing is sent until you say so.

When you're done, one Send batches every comment into a single message, each with its file, line range and a quote of the code, and drops it straight into the agent. You never retype "the thing on line 224" or lose your place.

Inline comments, in depth →

spotlight

Run your whole stack, without touching your branch

Spotlight mirrors one task into your main checkout, so your usual dev server, watchers and tests run against the agent's changes, live. A background watcher re-syncs within seconds, and Run executes at the main checkout in its own tab.

Termic never writes a commit onto your branch. It checks the task out at the main checkout as a detached HEAD, so your branch ref never moves. Conductor's checkpoint commits can strand a leftover commit on your branch if cleanup doesn't run after a crash; Spotlight leaves zero commits behind.

How Spotlight works →

A Termic task with Spotlight running: the bottom-right panel streams timestamped Synced entries with a Stop control while edits sync to the main checkout.

sandbox

Cage the agent, not the workflow

Optional per-task macOS Seatbelt + an in-process HTTPS CONNECT proxy. Pinned at task creation, enforced from the moment the CLI spawns. There's no daemon to install and no per-prompt approval.

/Network allowlist

Every outbound request goes through an in-process Rust CONNECT proxy with a regex hostname allowlist. Per-CLI vendor APIs (anthropic / google / openai), GitHub, npm, PyPI, crates.io and CA OCSP are baked in; add your own per project. The proxy lives inside the Tauri binary.

/Filesystem allowlist

Default-deny via macOS Seatbelt. Only the task, the CLI's own caches and the toolchains it needs are reachable; everything else is blocked, read and write. So ~/.ssh, ~/.aws, ~/.gnupg, ~/.netrc, ~/.kube, Keychains, browser profiles, Mail, Messages and your personal folders are unreachable, even if the agent runs --dangerously-skip-permissions.

/YOLO without the YOLO

Inside the cage, the agent's permission prompts are auto-skipped, since Seatbelt enforces the limits instead. Outside it, the toolbar lightning icon turns red.

The Termic sandbox dialog: five modes (off, monitoring, enforcing filesystem only, enforcing filesystem and network, Docker container) with enforcing filesystem and network selected, a YOLO auto-on note, extra allowed paths on the left and the always-covered built-in defaults on the right.

under the hood

Native desktop, web rendering

Tauri shell, web frontend. Editor and terminal are off-the-shelf libraries we picked after benching alternatives in WKWebView.

Tauri 2

Rust backend, WKWebView frontend. ~10MB bundle (vs Electron's ~120).

React 19 + Vite 8

UI. Vite HMR for dev, single bundle for prod.

CodeMirror 6

Editor. ~150KB; Monaco was slower in WKWebView when we tested.

xterm.js + WebGL

Terminal. WebGL renderer was the only one without visible row gaps in TUI apps.

portable-pty (wezterm)

PTYs on macOS / Linux / Windows. Same crate Wezterm itself uses.

Zustand 5

State. Plain hooks, no reducers or thunks.

questions

The actually-asked questions

Does this work with my Claude Pro / Max subscription?

Yes. Termic spawns the interactive claude CLI, the same binary you'd run in iTerm, with the same auth and the same subscription quota. Anthropic's June 15, 2026 Agent SDK credit change moved the Agent SDK and claude -p onto a separate credit; the interactive Claude Code CLI stays on the regular subscription usage limits.

How is this different from Conductor.build?

Termic is AGPL-3.0, ships macOS, Linux and Windows builds, supports Antigravity, Grok, Copilot, opencode and custom PTY agents, has main checkout and multi-repo task modes, and can put each task behind a macOS Seatbelt sandbox plus network allowlist. Full comparison or best Conductor alternative guide.

Does Termic see my prompts or read my code?

No. Termic is a local app with no backend. Prompts go xterm → PTY → CLI → wherever the CLI sends them; Termic doesn't read or forward them anywhere. There's a local debug log in your temp dir (tail -f it if you want to see what's happening), and that's all. You don't have to take my word for it: the whole thing is open source (AGPL-3.0), so you can read exactly what it does, build it yourself, and audit every release against the source.

Can agents touch my secrets or hit random APIs?

Not if you enable the sandbox on the task. The filesystem is default-deny via macOS Seatbelt: only the task, the CLI's own caches and the toolchains it needs are reachable, so ~/.ssh, ~/.aws, ~/.gnupg, ~/.netrc, Keychains, Mail / Messages / browser profiles and your personal folders are all out of reach, read and write. Network is gated by an in-process CONNECT proxy with a per-CLI hostname allowlist (anthropic / google / openai + github + package registries baked in; add more per project). The sandbox is pinned at task creation. It can't be toggled on a live task, so an agent can't escape what it was spawned under.

Is it actually open source?

AGPL-3.0 on GitHub. Fork it, build it, change it, ship a derivative. The only string is that derivatives stay AGPL too, which stops the next "open core" tool from quietly going proprietary.

Linux and Windows?

Linux x86_64 ships as a signed AppImage per release. Download it from the Releases page, chmod +x, run. The in-app updater works the same as on macOS (the AppImage is signed with the same ed25519 key, and the updater replaces it in place). Windows 11 x64 ships as an experimental installer (Termic_<version>_x64-setup.exe) on the same page, per user and with the same updater; it is not code-signed yet, so SmartScreen asks once (More info, then Run anyway). The Seatbelt cage is macOS-only, but Docker mode is not, so a container cage works on Linux and Windows; a native Linux equivalent (bubblewrap / landlock) is next on the list.

Use the plan you already pay for.

Free, AGPL-3.0. macOS, Linux and Windows.