What dies on switch
The useful half of a session never travels: why a path was rejected, which command proved the bug, what “done” actually means. The next model starts from zero and you pay for discovery twice.
openaiswitch
Open source · the bridge between AI coding CLIs
Decisions, failed attempts, and next moves pile up inside one tool —
then die when you open another. openaiswitch turns a saved
session into a structured handoff the next CLI can pick up cold.
Command: ais.
The useful half of a session never travels: why a path was rejected, which command proved the bug, what “done” actually means. The next model starts from zero and you pay for discovery twice.
Not a paste of the whole transcript. A bridge: objective, decisions that must survive, evidence already earned, blockers, and the next move — ready for a different CLI.
Session stuck in one CLI
ais resume
Same tool: native resume · Other tool: detailed handoff
Works on macOS and Linux. ais is a single Go binary — it does not install or replace
provider CLIs. Put $(go env GOPATH)/bin on your PATH, then run
ais doctor to see what is available on your machine.
Sell the path, not the fantasy: pick a session, stay or switch, land with a handoff that still means something.
Find conversations that belong to the current project across Claude Code, Codex, OpenCode, Antigravity, and Grok.
Stay in the same CLI and reopen the provider’s real session. No handoff file. No summarization quota spent.
Changing tools builds a detailed handoff: objective, decisions, evidence, blockers, next move — not a raw transcript dump.
API keys, tokens, passwords, cookies, JWTs, credentials, and .env values are replaced before the handoff is written or copied.
Provider session stores stay untouched. ais never rewrites Claude, Codex, OpenCode, agy, or Grok history.
Choose the source model and only the reasoning levels that model actually supports — or pass flags for scripts.
Drag the scrubber or scroll the page — the rail moves with you. Five AI coding CLIs, one handoff format.
Scroll the page or drag the scrubber to move the rail.
Reopens the provider’s official session command. No handoff file is created.
Redacts secrets, asks the source model to write a structured handoff, then launches the destination CLI.
Same cross-tool flow without launching another tool. Useful when you want the bridge on disk first.
A handoff is a bridge, not a transcript.
You keep the craft: what was decided, what was proven, what remains. You drop the noise: recursive summaries, secrets, and dead ends that only matter to the model that already lived them.
handoff.mdbridge for the next CLIsession.mdredacted conversationfull.mdfull compaction contextcompact.mdcompact between passesdecisions.mddurable decisionsstate.jsonlast source / targetFive AI coding CLIs. One handoff format. Session stores are read-only.
| Tool | Native resume | Session source |
|---|---|---|
| Claude Code | claude --resume <id> |
~/.claude/projects/ |
| Codex CLI | codex resume <id> |
~/.codex/sessions/ |
| OpenCode | opencode --session <id> |
OpenCode SQLite database |
| Antigravity | agy --conversation <id> |
~/.gemini/antigravity-cli/ |
| Grok CLI | grok --resume <id> |
~/.grok/sessions |
Before building a handoff, ais redacts likely API keys, OAuth and access tokens,
passwords, cookies, JWTs, credentials, and values loaded from .env files.
.ai/openaiswitch/, and clipboard text.ais.ais resumeContinue a saved session or create a detailed handoff. Optional focus text for the next agent.
ais statusShow project root, last continuation, handoff status, and detected tools.
ais doctorCheck provider binaries, session stores, Git, SQLite, and clipboard support.
ais update · versionUpdate or inspect the ais binary only — never your provider CLIs.
If you only ever use one tool, you may not need ais.
If you hop — Claude for depth, Codex for speed, Grok for a second opinion —
the cost is not the model. The cost is re-teaching the work.
That is the problem this binary is for.
No waitlist. No hosted model tax. MIT license. Your providers stay yours.