Support transcripts from other coding agents (Codex, Cursor, Gemini CLI, opencode)
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 45/100
Research direction
Start in src/transcript.rs and read the existing Claude Code normalization and discovery logic. Choose one agent and inspect its session format before adding a parser, default discovery, and a hand-written fixture under tests/fixtures/. Done means that agent produces ToolCall and AssistantText values with ordering, while the existing downstream checks continue to work.
Written by the indexing model from the issue text.
Description
backcheck reads Claude Code transcripts today. Nothing about the idea is Claude-specific —
every coding agent writes a session log containing what it said and what it ran, which is all
the analysis needs.
Widening this is the single highest-leverage change to the project: the verification engine,
the runner parsers, and the tamper detection are all agent-agnostic already.
The shape of the work
Only src/transcript.rs is Claude-specific. It normalises a
session file into three things the rest of the code consumes:
ToolCall { seq, name, input, result }— what ran, and what it printedAssistantText { seq, text, is_last }— what the agent said- ordering, so a claim can be compared against evidence that preceded it
Everything downstream (claims, evidence, verify, tamper, report) already works purely
against those types. Adding an agent means writing a parser that produces them, plus discovery
of where that agent stores its sessions.
Agents worth supporting
- OpenAI Codex CLI —
~/.codex/sessions/ - Cursor — agent session storage
- Gemini CLI —
~/.gemini/ - opencode
- Aider —
.aider.chat.history.md(a different shape: prose plus diffs) - GitHub Copilot CLI / coding agent
- Amp, Cline, Roo
Suggested approach
- Introduce a
Sourcetrait (or an enum) withparse(path) -> Transcriptand a
discover()for the agent's default session location. - Move the current Claude Code logic behind it, unchanged.
- Auto-detect by path and file shape, with
--agent <name>to force it. - Add a small fixture per agent under
tests/fixtures/— hand-written, never a real
transcript, since those contain real code and sometimes secrets.
Starting with one agent end-to-end is much more useful than a framework for all of them.
Comment here with which you're taking so two people don't write the same parser.
Worth knowing
Claude Code does not record exit codes, which is why outcomes are recovered from printed
output. If another agent does record them, that is strictly better evidence — the design
should let a source say "I know the exit code" rather than forcing everything through text
parsing.
- Dominant language
- Rust
- Stars
- 0
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from VectorInstitute/backcheck
-
accuracy false-negative false-positive help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
good first issue help wanted runner
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
accuracy enhancement help wanted
Difficulty 5/5 Over a week Newbie friendliness 32/100
VectorInstitute/backcheck#11 ·
-
enhancement good first issue help wanted
Difficulty 4/5 3-5 days Newbie friendliness 55/100
VectorInstitute/backcheck#10 ·
-
enhancement good first issue help wanted
Difficulty 3/5 1-2 days Newbie friendliness 68/100
All issues in VectorInstitute/backcheck
Similar issues
-
`sysknife history --help` says --since takes ISO-8601, and the parser refuses offsets and bare datesOpenbug easy good first issue help wanted
Difficulty 1/5 1-3 hours Newbie friendliness 94/100
lacs-project/sysknife#519 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 1/5 Under an hour Newbie friendliness 72/100
-
area:breg bug criticality:p3 triage:needs-implementation
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
registrystack/registry-stack#1699 ·
Maintainers usually reply within 1 day
-
documentation
Difficulty 1/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
lbjlaq/Antigravity-Manager#3539 · 2 comments ·
Maintainers usually reply within 1 day