Supported AI tools
What works with each tool.
Claude Code
Restores into the tool
Terminal CLIVS Code extension
- Sync
- Automatic, when a session starts and ends
- Open your chats
- claude --resume or VS Code history
- Context file
CLAUDE.md
OpenAI Codex
Restores into the tool
Codex CLIVS Code extensionDesktop app
- Sync
- Uploads a minute after a chat goes quiet, downloads every 15 minutes
- Open your chats
- codex resume or the Codex sidebar
- Context file
AGENTS.md
Cursor
Opens in ChatRelay
Editor (Agent chat)Cursor CLI
- Sync
- Your chats reach every device
- Open your chats
- ChatRelay on desktop, web and phone
- Context file
AGENTS.md
Kiro
Opens in ChatRelay
Editor (agent chat)Kiro CLI
- Sync
- Your chats reach every device
- Open your chats
- ChatRelay on desktop, web and phone
- Context file
AGENTS.md
Antigravity
Opens in ChatRelay
Antigravity IDEAntigravity CLI
- Sync
- Your chats reach every device
- Open your chats
- ChatRelay on desktop, web and phone
- Context file
GEMINI.md
#Compare
| Feature | |||||
|---|---|---|---|---|---|
| View chats | |||||
| Search | |||||
| Summarize | |||||
| Sync between devices | |||||
| Web and phone viewer | |||||
| CLI chats | |||||
| Restore into the tool | – | – | – | ||
| Auto-sync | |||||
| Token counts | – | – | – |
Each tool keeps its history in its own undocumented format, and those formats change between versions. So ChatRelay checks the format it finds on your PC. If it sees a version it doesn't know, it still shows the conversations, but turns off writing for that tool and tells you why in Settings → AI tools. It never guesses.
Verified versions: Claude Code 2.1.x; Codex 0.144 to 0.160 (index database state_5.sqlite, schema migration 58); Antigravity 2.6; Cursor 3.28 and its CLI; Kiro 1.4 and Kiro CLI 3.1.
#Codex support in detail
What travels with each Codex conversation:
| Item | Where Codex keeps it | What ChatRelay does |
|---|---|---|
| The conversation ("rollout") | ~/.codex/sessions/YYYY/MM/DD/rollout-<time>-<id>.jsonl (some versions write .jsonl.zst, compressed) | Copied, every path rewritten |
| The thread's index row | ~/.codex/state_5.sqlite, table threads | Added or updated so the conversation appears in codex resume and the sidebar |
| The thread's name | ~/.codex/session_index.jsonl | Added |
| Codex memory for that thread | ~/.codex/memories_1.sqlite, table stage1_outputs | Added if this PC has none for that thread; paths rewritten |
| Goals of that thread | ~/.codex/goals_1.sqlite, tables thread_goals, thread_goal_continuation_deferrals | Added if this PC has none for that thread |
Details that matter:
- Codex must be closed while ChatRelay writes. ChatRelay checks for running
codexprocesses (CLI, VS Code extension, desktop app). It does not ask you to close anything during background sync; it just tries again later. - History mode is kept. Newer Codex versions store "paginated" history; Codex rebuilds its page database (
thread_history_*.sqlite) from the conversation file the first time you open it, so ChatRelay never writes that database. - Your own settings for a thread stay yours. On update, this PC's pinned state, custom name, archive state and account are kept. Folders and sections that only exist on the other PC are cleared.
- Account. An imported thread is assigned to the Codex account that owns most threads on this PC.
- Windows path prefix. Codex on Windows stores working folders as
\\?\D:\project. ChatRelay adds that prefix only to Windows paths on a PC whose Codex uses it, and never to macOS or Linux paths. - Compressed conversations (
.jsonl.zst) can be read and updated. On update the file is replaced by a plain.jsonl(the compressed original is backed up first). - Memory bookkeeping that belongs to the other PC (how often a memory was used, whether it was picked for consolidation) is not copied.
- Unknown versions. If Codex's index uses a database ChatRelay doesn't know (for example a future
state_6.sqlite), or adds a required field it can't fill, writing is turned off for Codex with a clear warning. Reading still works.