How AgentBoard works
A lightweight CLI collector that hooks into your AI coding tools and sends only token counts — automatically, after every session.
How it works
Hook registration
agentboard install-hooks writes a single line into each AI tool's config file.
Auto collection
When a session ends, the hook fires a background worker that parses the session transcript.
Token-only upload
Only token counts, model name, and timestamps are sent. Code and prompts never leave your machine.
Data flow
Supported AI tools
| Tool | Hook method | Token support |
|---|---|---|
| Claude Code | SessionEnd hook (~/.claude/settings.json) | Full |
| OpenCode | Auto-detected via session payload (no config file needed) | Full |
| Gemini CLI | SessionEnd hook (~/.gemini/settings.json) | Full |
| Codex CLI | notify hook (~/.codex/config.toml) | Full |
Installation
Prerequisites
Node.js ≥ 20 and Git are required.
Clone and build the collector
$ git clone https://github.com/hse09021/agentboard-agent-collector.git
$ cd agentboard-agent-collector
$ npm install
$ npm run build
$ npm link # register agentboard as a global command
Log in with your GitHub account
$ agentboard login
# Open the printed URL → GitHub OAuth → paste the token back
Register session-end hooks
$ agentboard install-hooks
That's it. From now on, every time you finish a Claude Code, OpenCode, Gemini CLI, or Codex session, token counts are collected automatically. Run agentboard inspect at any time to see exactly what will be uploaded.
CLI reference
agentboard loginGitHub OAuth login and device registration.agentboard logoutRemove the local auth token.agentboard install-hooksWrite session-end hooks into each supported AI tool's config.agentboard uninstall-hooksRemove all registered hooks.agentboard inspectPreview the exact payload that would be uploaded — verify no sensitive data leaves your machine.agentboard statusShow auth state, hook registration, and collected session count.agentboard doctorDiagnose config files, auth, and hook registration.Privacy guarantee
Only token counts, model names, and timestamps.
Never collected
- ✕Prompt text
- ✕Source code
- ✕File contents & paths
- ✕Repository names
- ✕Commit & PR content
- ✕Terminal commands
What we collect
- ✓Token counts (input, output, cached)
- ✓Session ID (randomly generated)
- ✓Timestamps
- ✓Model name
- ✓OS type
Every event passes through a Forbidden Data Guard before upload. The collector is open source — you can inspect exactly what gets sent.
Already set up? Head to your dashboard.
Go to Dashboard →