Agent session portability is moving a coding agent's saved conversation, with its prompts, replies, reasoning and tool calls, into a different agent so the work carries on there. It reached the Hacker News front page on 17 September 2026, when Skillsync launched on Hacker News with txcript, an open Rust engine that converts sessions between 11 agents including Claude Code, OpenAI Codex and Cursor. The founders say nothing is lost; txcript's own docs and code list what is.
What is agent session portability? #
Agent session portability is the ability to take the session file one coding agent writes to disk and continue it in another agent. A converter reads the source agent's file, maps each message, reasoning block and tool call to a common model, and writes a new native session for the target agent, which then resumes it like one of its own.
Every agent keeps its own format in its own folder. As of October 2026:
| Agent | Where sessions live | Resume command |
|---|---|---|
| Claude Code | ~/.claude/projects/<project>/<session-id>.jsonl |
claude --resume <id> |
| Codex CLI | ~/.codex/sessions/YYYY/MM/DD/rollout-<timestamp>-<uuid>.jsonl |
codex resume <id> |
| Gemini CLI | ~/.gemini/tmp/<project_hash>/chats/ |
gemini --resume |
| Google Antigravity CLI | ~/.gemini/antigravity-cli/conversations/<uuid>.db (SQLite) |
agy --conversation=<id> |
Anthropic's session docs warn that "the entry format is internal to Claude Code and changes between versions", and the Antigravity format is not documented at all: txcript reverse-engineered it. A converter is chasing several moving targets at once.
How txcript moves a Claude Code session into Codex #
txcript converts a session in two commands: list the sessions one agent has on disk, then continue one of them in another agent. It writes a new native session for the target, leaves the source untouched and launches the target agent in the recorded working directory. Install it from GitHub releases or build it with Cargo.
From the txcript README:
cargo install --git https://github.com/skillsynchq/txcript txcript-cli --locked
txcript list --from claude_code
txcript continue <session-id> --with codex
After writing the file, txcript runs the target's own resume command, here codex resume <id>. The usage docs add --no-resume to write without launching, a #5-12 suffix on the ID to carry only some messages and txcript crop to trim the history into a new copy. The README adds txcript export <id> --out run.json to move a session to another machine: "Bring the project files separately."
Inside, every conversion goes from the source format to one common model with six block types (text, thinking, tool use, tool result, image, artifact) and out to the target format. Claude Code's Bash call becomes Codex's exec_command, Edit and Write become apply_patch, and MCP calls keep their names. Converting a session back into the same agent is lossless. Converting it into a different agent is not.
What a moved session loses #
A moved session loses whatever the target agent cannot represent and everything that never lived in the transcript. The txcript README says so: "Agent-specific records and unsupported fields can be lost." On Hacker News a Skillsync co-founder wrote "Everything is retained including tool calls, reasoning", and the YC page says "nothing lost". txcript's code on main as of 14 October says:
| Part of the session | Claude Code to Codex in txcript |
|---|---|
| User and assistant text | Carried |
| Tool calls and results | Carried, renamed to Codex tools; Bash timeout and background flags dropped |
| Thinking | Text carried as a Codex reasoning summary; Claude's signature dropped; redacted thinking dropped |
| Subagent transcripts | Not carried: the subagents/ folder is skipped |
| Checkpoints (file snapshots) | Not carried: they live in ~/.claude/file-history/ , outside the transcript |
| Compaction markers, hook notices, modes | Dropped |
| MCP state, hooks, permissions, login, skills, project files | Never part of the transcript, never moved |
Three bugs matter if you try it today. The latest release, v0.14.4 from 13 September, writes Codex tool calls named Bash and Edit, which Codex does not have, so "the resumed session breaks" (issue #59). The issue closed on 23 September with a fix on main, but no release carries it yet. Two more are open. A session that ended in the middle of a tool call is reported to fail on resume in Claude Code with an HTTP 400 (#68), though the reporter had not tried it live. Tool results made of several blocks, such as MCP output with a screenshot, arrive as one JSON string with the image inline as base64 (#89).
A second converter, session-migrate (MIT), decides differently: it drops all private or signed thinking on purpose and states that "Auth, hooks, policies, MCP, and runtime config" stay with the source client. Jangwook Kim tested it on one Claude Code session of 90 records into seven agents: 54 to 57 records were dropped every time, mostly metadata, tool-reference records and private thinking, while "the useful conversation and tool context traveled surprisingly well". That is one session, so read it as an example rather than a rate.
Where portability sits next to ACP and memory tools #
Session portability, the Agent Client Protocol and agent memory each fix a different kind of lock-in. ACP lets one editor drive many agents, but each agent keeps its own history. Memory tools carry summaries across many sessions. A converter carries one whole conversation into a different agent. They combine; none replaces another.
ACP, announced by Zed in August 2025, is JSON-RPC between an editor and an agent, the way LSP is between an editor and a language server. agent-shell, the Emacs client by Álvaro Ramírez, added Antigravity and Qoder CLI in version 0.78 on 22 September and lists 23 ACP agents. The spec's session/load replays a session, but only one the same agent created, looked up by that agent's own ID. I found nothing in the spec or its design proposals that imports another agent's history, though the spec never says so outright. agent-shell's resume asks which agent you want, then resumes that agent's session. Switching agents there means a new conversation.
claude-mem works through hooks: it records tool use, writes summaries into SQLite and a vector store, and feeds the relevant ones into later sessions. The memory vs documentation post covers that slot. The two meet in Skillsync itself: its homepage now leads with "instant recall" across past sessions in the $20 Pro app, while conversion stays in the free, open-source txcript.
| What moves | What stays | Example | |
|---|---|---|---|
| Live protocol | Your editor, across agents | Each agent's history | ACP in agent-shell, Zed |
| Session conversion | One conversation, into another agent | Settings, hooks, MCP, subagents | txcript, session-migrate |
| Memory | Summaries, across many sessions | The raw transcript | claude-mem |
How many developers run more than one coding agent #
No survey asks directly how many developers run two coding agents at the same time, but the closest numbers say it is common. In the Stack Overflow 2026 survey, 65.5% of 12,255 respondents had used Claude Code in the past year and 58.7% GitHub Copilot, so at least 24% used both.
That 24% is my arithmetic (65.5 + 58.7 − 100), and "in the past year" includes people who switched rather than ran both. The same survey found 79.7% use two or more AI tools of any kind in a typical week (n = 11,919). In the JetBrains 2026 survey, 39% use Claude Code at work and 31% name it their main tool, so about 8% use it beside something they rely on more.
On Stackness, as of 18 October 2026, 14 real public profiles list at least one coding agent after removing six labelled bot accounts, and 6 of them list two or more. One of the six is mine. The most common pair is Claude Code with Cursor, on four profiles. That is a small sample, counted the way the September switching post counted it (data sources). Then as now, people add agents beside each other more often than they replace one, which is the case a converter is built for.
Shipped, claimed, and who can skip it #
txcript has shipped: Apache-2.0, 181 GitHub stars, release v0.14.4, read and write for 11 agents, read-only for Amp, Hermes and live claude.ai and ChatGPT accounts. "Nothing lost" is a claim the code contradicts. Gemini CLI and Qoder are not supported, and Antigravity support covers the agy CLI, not the IDE.
You need a converter if you hit a usage limit mid-task and want to finish in another agent, which is Skillsync's own example, if you hand sessions between people, or if you plan in claude.ai and want the chat inside a coding agent. The other agents for that job are on the AI coding tools hub.
You can skip it if you use one agent, if your decisions already live in pull requests and notes (one HN commenter's answer was a work journal in markdown), or if what you want is one editor for several agents, which ACP already gives you.
Where to start with agent session portability #
Before moving a session, check five things: the target is supported for writing, your txcript build has the Codex fix, the session did not end mid-tool, nothing depends on subagents or MCP screenshots, and the target has the same hooks, MCP servers, instruction files and project checkout. Then convert with --no-resume first and read the result.
- Build txcript from main, not v0.14.4, if the target is Codex.
- Run
txcript continue <id> --with <agent> --no-resume, open the new session file, and check that the last tool call has a result. - Re-create on the target what never moves: hooks, permission mode, MCP servers,
AGENTS.mdorCLAUDE.md, and skills. TheAGENTS.md vs CLAUDE.md vs skills post shows which file each agent reads. - Use the
#rangesuffix ortxcript cropon long sessions. A co-founder noted on HN that the receiving agent "sometimes decides to compact it". - Treat the converted file like a log export: it holds every file, command output and paste that went through the tools. Claude Code deletes transcripts after 30 days by default, so convert before cleanup if you want one kept.
New posts by email #
About one email a week with what we published. No account needed.
Which of these do you use? #
Nobody on Stackness runs Skillsync yet. Tick what you use and be the first.