Supported agents
| Agent | Status | Granularity |
|---|---|---|
| Claude Code | ✅ v1 | Per-prompt (UserPromptSubmit + Stop) |
| Codex | ✅ v1 | Per-prompt (UserPromptSubmit + Stop) |
| OpenCode | ✅ v1 | Per-prompt (user message.updated + session.idle) |
| Pi | ⚗️ experimental | Per agent run (before_agent_start + agent_end) |
Adding a new agent
- Create
src/agents/<name>/mod.rsand implement theAgenttrait (includingis_installed, sosuivi initonly targets machines that have the agent) - Add hook template files under
src/agents/<name>/hooks/ - Register it in
all_agents()insrc/agents/mod.rs
The agent must provide a session_id in its hook payload — this is required for correct per-session tracking.
See Contributing for the full workflow.