synctx is a Bun + Ink terminal UI for browsing recent local AI coding sessions and reopening them in another agent.
It scans each tool's native session store, shows a unified "recent sessions" list, and lets you:
- resume a session in its original agent
- import the conversation into another supported agent
- copy the session ID for manual resume/debugging
The current implementation is focused on local session interoperability between:
- Claude Code
- Codex
- OpenCode
npm (requires Bun runtime)
bun install -g @synctx/synctx
synctxDownload from GitHub Releases:
# Apple Silicon
curl -fsSL -o synctx https://github.com/TooonyChen/synctx/releases/latest/download/synctx-macos-arm64
# Intel Mac
curl -fsSL -o synctx https://github.com/TooonyChen/synctx/releases/latest/download/synctx-macos-x64
chmod +x synctx
sudo mv synctx /usr/local/bin/bun install
bun run build
bun run dist/cli.js- macOS (currently the only supported platform)
- one or more supported agent CLIs installed and available on
PATHclaudecodexopencode
- On the first run,
synctxcreates~/.synctx/synctx.dband detects installed agent binaries. - It reads sessions directly from each agent's native storage format.
- The dashboard merges those sessions into a single list sorted by last activity.
- Selecting a session opens an action menu where you can resume it directly or write it into another agent's native format and launch that agent.
Keyboard flow:
- list view:
↑/↓to navigate,enterto select,qorescto quit - action view:
↑/↓to navigate,enterto run,qorescto go back
| Agent | Read existing sessions | Import/write target | Resume command | Notes |
|---|---|---|---|---|
| Claude Code | Yes | Yes | claude --resume <session-id> |
Imports are written as project-scoped JSONL files under ~/.claude/projects/... |
| Codex | Yes | Yes | codex resume <session-id> |
Imports register in both ~/.codex/session_index.jsonl and ~/.codex/state_5.sqlite so they are discoverable and render correctly |
| OpenCode | Yes | Yes | opencode -s <session-id> |
Imports are written into OpenCode's SQLite schema so they can be resumed natively |
| Aider | No | No | N/A | Binary detection only for now |
The current readers use these native stores:
- Claude Code:
~/.claude/projects/<encoded-project-path>/<session-id>.jsonl - Codex:
~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl - OpenCode:
~/.local/share/opencode/opencode.db(SQLite)
- copy to clipboard
- choose only parts of the context to share, not all
- MCP server to r/w context (well... do we really neet that?)
- more coding agents supports