Repository navigation
session-convert v0.1.0
First validated release of the Claude Code to OpenCode session converter.
Included
- Current Claude transcript layout:
~/.claude/projects/<hash>/<session>.jsonl. - Legacy Claude
sessions/layout compatibility. - Current OpenCode global SQLite schema:
session/message/part. - Legacy project-local OpenCode
sessions/messagesschema compatibility. - Correct OpenCode millisecond timestamps, while retaining legacy seconds read support.
- Claude session titles derived from the first user message.
- Idempotent OpenCode fixture generation.
Validation
npm run test:fixtures— passed twice consecutively.npm run build— passed.npm test— 38/38 tests passed.- Live conversion of the three latest TelegramAuto Claude sessions into the current global OpenCode database — all three visible in
opencode session list:de06b510-f980-4911-8266-120c4c24f5a6→ses_1e327b9960ea4a14ba680a631fb30191, 2682 messages.7f597a04-0379-4635-8afe-bd2d2fdec6ee→ses_3dcea322aa0f48f5b8b42f682e5cc8cb, 331 messages.6bf35890-f66f-44be-a2a2-9aafaba29e27→ses_b3ff2f2c4e88418792a3ade7a45afb80, 951 messages.
Exact tested environment
Platform: GNU/Linux x86_64.
Runtime and converter tools:
- Node.js
v22.22.3 - npm
10.9.8 - OpenCode
1.17.18 - Claude Code
2.1.202 (Claude Code)— the converter test input was existing Claude JSONL transcripts; Claude Code itself was not used to generate the fixtures. - SQLite CLI
3.37.2(2022-01-06 13:25:41, build872ba256cbf61d9290b571c0e6d82a20c224ca3ad82971edc46b29818d5dalt1)
Build and test tools:
- Vitest
4.1.10(linux-x64, Nodev22.22.3) - tsx
4.23.1 - TypeScript
5.9.3 - better-sqlite3
11.10.0
Verification and release tooling:
- Bash
5.1.16(1)-release(x86_64-pc-linux-gnu) - Git
2.34.1 - GitHub CLI
2.94.0(2026-06-10) - jq
1.6
Diagnostic-only binary used during the initial investigation (not required by the converter or release validation):
- casr
0.2.3(0e0609f, 2026-07-03,x86_64-unknown-linux-gnu)
Source
- Merged commit:
2592e1f2239173eb92dba0bf579d479e5b6ec003 - Tag:
v0.1.0