Local sessions, set free

Your conversation
should travel with you.

Move real coding-agent sessions between Claude Code, Codex, Pi, OpenCode, and Copilot—without flattening the useful parts.

View on GitHub
Claude
Codex
Pi
OpenCode
Copilot
~/projectmigration complete

smigrate transfer c3f7… --from claude --to codex

sourceClaude Code · 42 messages · 7 tools

mapping100%

targetCodex · native rollout ready

Resume with codex resume c3f7…

56k+real sessions audited
158automated tests
5native targets
0source files modified

REAL CLI · REAL NATIVE OUTPUT

From one harness
to the next.

This recording runs the shipped CLI against a synthetic Claude session, writes a native Codex rollout, and validates the result.
LIVE TRAJECTORY
Compare the native sessionsBefore + after screenshots
Claude Code native session before migration
Before · Claude Code JSONL
Codex native session after migration
After · Codex rollout

HOW IT WORKS

Native in.
Native out.

No transcript-shaped text dumps. Every migration passes through a validated event timeline and a version-aware target writer.
SOURCEPORTABLETARGET
user.messageMESSAGEresponse_item
tool_useTOOL_CALLfunction_call
tool_resultTOOL_RESULTfunction_output
compact_summaryCOMPACTIONcompacted
schema checked · linkage valid · ready to resume

COMPATIBILITY

Pick the next agent.

Claude, Codex, and Pi can be read and written. OpenCode and Copilot are target-only today.
Source ↓ / Target →ClaudeCodexPiOpenCodeCopilot
Claude Code
Codex
Pi
01

Keep the useful history

Messages, tools, results, images, order, and supported summaries stay connected.

02

Find every session

Index global, project-local, active, archived, and nested stores—then search by title or ID.

03

Know what changed

Every unsupported or transformed detail is counted in a content-free manifest.

INSTALL

One command.
Then keep moving.

or, without uv Python 3.11+ · Linux · MIT licensed