ryu0118/ctxmv
✨ You no longer need to suffer through rate limits: when one coding agent hits its limit, migrate the session to another and keep going.
Features
- 🔀 Migrate sessions between any pair of agents (resume-compatible)
- 📋 List sessions across all agents in a unified table
- 💬 Show conversation messages with role-colored output
Supports
- Claude Code
- Codex
- Cursor (CLI agent via
cursor-agent, not the GUI app)
Install
curl -fsSL https://raw.githubusercontent.com/Ryu0118/ctxmv/main/install.sh | bashTo update, run the same command. It skips the download if already up-to-date.
# Install a specific version
curl -fsSL https://raw.githubusercontent.com/Ryu0118/ctxmv/main/install.sh | VERSION=0.1.0 bash
# Force reinstall
curl -fsSL https://raw.githubusercontent.com/Ryu0118/ctxmv/main/install.sh | FORCE=1 bashOther methods
Nest (mtj0928/nest)
nest install Ryu0118/ctxmvMise (jdx/mise)
mise use -g ubi:Ryu0118/ctxmvBuild from source
Requires Swift 6.0+ and macOS 15+.
git clone https://github.com/Ryu0118/ctxmv.git
cd ctxmv
swift run ctxmv <subcommand>Usage
# Claude Code → Codex
ctxmv <session-id> --to codex
# Codex → Claude Code
ctxmv <session-id> --to claude-code
# Any → Cursor
ctxmv <session-id> --to cursorAfter migration, the tool prints the resume command:
✅ Session written to: /path/to/session
To resume:
cd /your/project
codex resume <new-session-id>Note: Cursor may not render migrated past messages in TUI immediately after resume. However, conversation context is preserved and past messages are still available to the agent.
List sessions
# List all sessions across all agents
ctxmv list
# Filter by agent
ctxmv list --source claude-code
ctxmv list --source codex
ctxmv list --source cursor
# Filter by project path
ctxmv list --project /path/to/project
# Limit results
ctxmv list --limit 50Show session messages
# Show messages for a session (full or prefix ID)
ctxmv show <session-id>
# Restrict search to a specific agent
ctxmv show <session-id> --source claude-code
# Show raw content without compacting XML-like blocks
ctxmv show <session-id> --raw
# Show only the last N messages
ctxmv show <session-id> --limit 20
# Show all messages, bypassing large-session protection
ctxmv show <session-id> --allLicense
MIT
Package Metadata
Repository: ryu0118/ctxmv
Default branch: main
README: README.md