{"slug": "move-ai-chats-across-harnesses-claude-code-codex-opencode-cursor-and-more", "title": "Move AI chats across harnesses: Claude Code, Codex, OpenCode, Cursor, and more", "summary": "Skillsynchq released txcript, an open-source library and CLI that converts AI coding-agent sessions between harnesses including Claude Code, Codex, OpenCode, and Cursor, carrying over messages, reasoning, and tool history where the target supports them. The tool ships as a Rust crate (requiring Rust 1.96 or newer), a JavaScript package with prebuilt WebAssembly for Node and Bun, and downloadable binaries for macOS, Linux, and Windows, and it also exposes a read-only MCP server via `txcript mcp` for listing, searching, and reading past sessions. txcript preserves the source session while writing a new native session and launching the target agent in the recorded working directory.", "body_md": "Continue your conversation in another coding agent.\n\n  English | [日本語](https://github.com/skillsynchq/txcript/blob/main/docs/translations/README.ja.md) | [简体中文](https://github.com/skillsynchq/txcript/blob/main/docs/translations/README.zh-CN.md) | [繁體中文](https://github.com/skillsynchq/txcript/blob/main/docs/translations/README.zh-TW.md) | [한국어](https://github.com/skillsynchq/txcript/blob/main/docs/translations/README.ko.md) | [Deutsch](https://github.com/skillsynchq/txcript/blob/main/docs/translations/README.de.md) | [Español](https://github.com/skillsynchq/txcript/blob/main/docs/translations/README.es.md) | [Français](https://github.com/skillsynchq/txcript/blob/main/docs/translations/README.fr.md) | [Italiano](https://github.com/skillsynchq/txcript/blob/main/docs/translations/README.it.md) | [Português (Brasil)](https://github.com/skillsynchq/txcript/blob/main/docs/translations/README.pt-BR.md) | [Русский](https://github.com/skillsynchq/txcript/blob/main/docs/translations/README.ru.md) | [मराठी](https://github.com/skillsynchq/txcript/blob/main/docs/translations/README.mr.md) | [தமிழ்](https://github.com/skillsynchq/txcript/blob/main/docs/translations/README.ta.md)\n\ntxcript is a library for converting agent sessions. Start a conversation in Claude Code and continue it in Codex, carrying over messages, reasoning, and tool history where the target supports them.\n\nBuild session search, viewers, and editors against one transcript model. txcript handles the agent-specific formats, with a Rust API, a JavaScript package, and a CLI.\n\n[Try the CLI](#try-the-cli) · [Use the library](#use-the-library) · [Supported agents](#supported-agents) · [Documentation](#documentation)\n\nDownload a binary for macOS, Linux, or Windows from [Releases](https://github.com/skillsynchq/txcript/releases), or install from source with Rust 1.96 or newer:\n\n```\ncargo install --git https://github.com/skillsynchq/txcript txcript-cli --locked\n```\n\nFind a Claude Code session and continue it in Codex:\n\n```\ntxcript list --from claude_code\ntxcript continue <session-id> --with codex\n```\n\nUse an ID from the list; an unambiguous prefix works too. txcript writes a new native session and launches Codex in the recorded working directory. The source session is kept. Have the target agent installed and signed in before continuing.\n\nOther ways to work with your sessions:\n\n```\ntxcript query \"relay bug\"                # search local session history\ntxcript view <session-id>                # read a conversation in the terminal\ntxcript crop <session-id>                # edit or trim history into a new copy\ntxcript export <session-id> --out run.json\n```\n\nMove `run.json` to another machine and continue it with `txcript continue ./run.json --with claude_code`. Bring the project files separately.\n\nRun `txcript mcp` to let an MCP client list, search, and read past sessions. Its tools are read-only. See the [CLI reference](https://github.com/skillsynchq/txcript/blob/main/docs/usage.md#cli) for filters, message ranges, and shell integration.\n\n```\ncargo add txcript\n```\n\nConvert a Claude Code transcript into Codex's native format:\n\n```\nuse txcript::harness::{claude_code::ClaudeCode, codex::Codex};\nuse txcript::{TextCodec, convert};\n\nfn main() -> Result<(), Box<dyn std::error::Error>> {\n    let input = std::fs::read_to_string(\"session.jsonl\")?;\n    let source = ClaudeCode::from_text(&input)?;\n    let target = convert::<ClaudeCode, Codex>(&source)?;\n    std::fs::write(\"rollout.jsonl\", Codex::to_text(&target)?)?;\n    Ok(())\n}\n```\n\nUse `Store` implementations to discover, load, and save sessions in an agent's own storage. Convert to `Transcript<Common>` to search, crop, or render conversations through the same API across agents. See the [Rust API](https://docs.rs/txcript) and [examples](https://github.com/skillsynchq/txcript/blob/main/docs/usage.md#rust-crate).\n\n```\nnpm install txcript\njs\nimport { convert } from \"txcript\";\nimport { readFileSync, writeFileSync } from \"node:fs\";\n\nconst input = readFileSync(\"session.jsonl\", \"utf8\");\nconst output = convert(input, \"claude_code\", \"codex\");\nwriteFileSync(\"rollout.jsonl\", output);\n```\n\nThe package includes prebuilt WebAssembly for Node and Bun. It converts and searches session text in memory; your application handles files and storage. See the [JavaScript reference](https://github.com/skillsynchq/txcript/blob/main/docs/usage.md#npm-package).\n\nEach name links to its format documentation. Use the ID with `--from` and `--with`.\n\n| Agent | ID | Read from | Continue into | \n|---|---|---|---|\n| [Claude Code](https://github.com/skillsynchq/txcript/blob/main/docs/formats/claude-code.md) | `claude_code` | Yes | Yes | \n| [Codex](https://github.com/skillsynchq/txcript/blob/main/docs/formats/codex.md) | `codex` | Yes | Yes | \n| [OpenCode](https://github.com/skillsynchq/txcript/blob/main/docs/formats/opencode.md) | `opencode` | Yes | Yes | \n| [Cursor CLI](https://github.com/skillsynchq/txcript/blob/main/docs/formats/cursor.md) | `cursor` | Yes | Yes | \n| [Cursor desktop](https://github.com/skillsynchq/txcript/blob/main/docs/formats/cursor-desktop.md) | `cursor_desktop` | Yes | Yes | \n| [pi](https://github.com/skillsynchq/txcript/blob/main/docs/formats/pi.md) | `pi` | Yes | Yes | \n| [Campfire](https://github.com/skillsynchq/txcript/blob/main/docs/formats/campfire.md) | `campfire` | Yes | Yes | \n| [Cowork](https://github.com/skillsynchq/txcript/blob/main/docs/formats/cowork.md) | `cowork` | Yes | Yes | \n| [Grok CLI](https://github.com/skillsynchq/txcript/blob/main/docs/formats/grok.md) | `grok` | Yes | Yes | \n| [Grok Bot](https://github.com/skillsynchq/txcript/blob/main/docs/formats/grok-bot.md) | `grok_bot` | Yes | Via local gateway | \n| [fx](https://github.com/skillsynchq/txcript/blob/main/docs/formats/fx.md) | `fx` | Yes | Yes | \n| [Antigravity](https://github.com/skillsynchq/txcript/blob/main/docs/formats/antigravity.md) | `antigravity` | Yes | Yes | \n| [Hermes Agent](https://github.com/skillsynchq/txcript/blob/main/docs/formats/hermes.md) | `hermes` | Yes | No | \n| [Amp](https://github.com/skillsynchq/txcript/blob/main/docs/formats/amp.md) | `amp` | Yes | No | \n| [Claude Chat](https://github.com/skillsynchq/txcript/blob/main/docs/formats/claude-chat.md) | `claude_chat` | Live account | No | \n| [ChatGPT](https://github.com/skillsynchq/txcript/blob/main/docs/formats/chatgpt.md) | `chatgpt` | Live account | No | \n\nLocal discovery skips the live accounts. Select `--from claude_chat` or `--from chatgpt` explicitly to read them. These sources use private web APIs and reuse an existing app login; requirements and limitations are in their linked docs.\n\nAn agent without a native adapter can emit [Simple](https://github.com/skillsynchq/txcript/blob/main/docs/formats/simple.md), txcript's interchange JSON. Save a document like this as `run.json`:\n\n```\n{\n  \"messages\": [\n    { \"role\": \"user\", \"content\": \"Find why the tests fail.\" },\n    { \"role\": \"assistant\", \"content\": \"The test clock is using local time.\" }\n  ]\n}\ntxcript continue ./run.json --with claude_code\n```\n\nSimple also represents reasoning, tool calls, results, images, and metadata. It is the format `txcript export` writes.\n\nThe common model represents messages, reasoning, tool calls and results, images, metadata, and token usage. What survives conversion depends on what the source records and the destination can represent. Agent-specific records and unsupported fields can be lost.\n\nConversion carries conversation history. The destination supplies its own system instructions and tools, and project files must be available separately. Native load/save and conversion have different preservation guarantees; see each [format's caveats](https://github.com/skillsynchq/txcript/blob/main/docs/formats/README.md).\n\n- [CLI reference](https://github.com/skillsynchq/txcript/blob/main/docs/usage.md#cli) : commands, search, cropping, MCP, and shell integration.\n- [Rust API](https://docs.rs/txcript) and[JavaScript reference](https://github.com/skillsynchq/txcript/blob/main/docs/usage.md#npm-package) .\n- [Transcript formats](https://github.com/skillsynchq/txcript/blob/main/docs/formats/README.md) : storage layouts, mappings, and limitations, with sources and reverse-engineering notes.\n- [Development](https://github.com/skillsynchq/txcript/blob/main/docs/usage.md#development) and[test guide](https://github.com/skillsynchq/txcript/blob/main/tests/README.md) .\n- [Contributing](https://github.com/skillsynchq/txcript/blob/main/CONTRIBUTING.md) ·[Report a security vulnerability](https://github.com/skillsynchq/txcript/blob/main/SECURITY.md) .\n- [Changelog](https://github.com/skillsynchq/txcript/blob/main/CHANGELOG.md) ·[Report an issue](https://github.com/skillsynchq/txcript/issues) .", "url": "https://wpnews.pro/news/move-ai-chats-across-harnesses-claude-code-codex-opencode-cursor-and-more", "canonical_source": "https://github.com/skillsynchq/txcript", "published_at": "2026-09-15 22:24:00+00:00", "updated_at": "2026-09-15 22:37:43.248314+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-tools", "ai-products"], "entities": ["txcript", "Skillsynchq", "Claude Code", "Codex", "OpenCode", "Cursor", "Rust", "WebAssembly"], "alternates": {"html": "https://wpnews.pro/news/move-ai-chats-across-harnesses-claude-code-codex-opencode-cursor-and-more", "markdown": "https://wpnews.pro/news/move-ai-chats-across-harnesses-claude-code-codex-opencode-cursor-and-more.md", "text": "https://wpnews.pro/news/move-ai-chats-across-harnesses-claude-code-codex-opencode-cursor-and-more.txt", "jsonld": "https://wpnews.pro/news/move-ai-chats-across-harnesses-claude-code-codex-opencode-cursor-and-more.jsonld"}}