Harnesses
Tern does two things with a coding agent: the hook catches decisions live, and tours read the prompts you ran on the branch. Support is per harness, and the two don’t always land together.
| Harness | Hook | Sessions |
|---|---|---|
| Claude Code | tern hook install | Yes |
| Cursor | CLI | Yes |
| Codex | CLI | Yes |
| GitHub Copilot CLI | CLI | Yes |
| opencode | CLI | Yes |
| Grok CLI | CLI | Yes |
Hook. tern hook install registers the end-of-turn hook for Claude Code. Everyone else registers the same command (tern hook --stop-hook) by hand; the CLI commands on The hook are that path. The hook’s output isn’t Claude Code-specific.
Sessions. Tern reads local session logs from all six, from their standard locations on your machine. That’s how a tour attaches pieces to prompts you ran while you were on the branch. Mining happens when you install the hook; later sessions are picked up as they appear.
Markdown plans
Drop a plan file into the repo and Tern picks it up regardless of agent, alongside session logs.
No agent, or an agent that isn’t listed
A tour still generates from the diff alone: pieces and rationale, no provenance. If you want Tern to read another harness’s sessions, tell us.
Which sessions Tern reads
Tern only reads sessions that are associated with the repos you’ve added to Tern. To have Tern analyze all your sessions, set TERN_AGENT_REPO_SCOPE_ENABLED=false.
See also
- Install Tern: the CLI, the hook, auth.
- The hook: the CLI commands for other agents, and what a finding looks like.
- The tour: how to open one, and what it reads.
