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.
See also
- Install Tern: the CLI,
tern hook install, 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.
