Trace agent reasoning, evaluate outcomes, and ship reliable AI on your own infrastructure.
No cloud. No accounts. Your traces stay on your machine.
Website · Quickstart · Features · How it works? · Development
Sessions → timeline → insights → overview → ⌘K search. Demo data; nothing here left anyone's laptop.
curl -fsSL https://cot.run/install | shOne command:
- starts the collector in Docker, bound to localhost
- installs the local bridge
- wires up the agents you pick: Claude Code, Cursor, Codex, or OpenCode
Cot runs in the background and collects traces while you build. Open the dashboard at http://127.0.0.1:31337.
Tip
Already running the collector? Install just the bridge and hooks with
curl -fsSL http://127.0.0.1:31337/install.sh | sh.
The default port is 31337. If it is busy, the installer picks the next free port and saves the URL in ~/.cot/config.json.
OpenCode 1.18.29+ and OpenCode 2 use one local plugin file. The bridge installer
places it at ~/.config/opencode/plugins/cot.js. To add it manually after
installing the cot bridge, download
http://127.0.0.1:31337/opencode-plugin.js (using your chosen port), save it
at that path, and restart
OpenCode. OpenCode sessions recorded before plugin installation are not imported.
| Command | What it does |
|---|---|
cot up |
Start or resume the collector |
cot down |
Stop the collector, keeping your hooks and local data |
cot purge |
Remove the collector, unwire cot hooks, and delete ~/.cot after asking |
flowchart LR
A["Claude Code<br/>Cursor<br/>Codex<br/>OpenCode"] -- hook/plugin event --> B["~/.cot/bin/cot<br/><sub>local bridge</sub>"]
B -- "POST /v1/ingest" --> C["Collector<br/><sub>FastAPI · 127.0.0.1:31337</sub>"]
C --> D[("~/.cot/cot.db<br/><sub>SQLite</sub>")]
D --> E["Dashboard<br/><sub>React</sub>"]
style C fill:#FF4500,stroke:#FF4500,color:#fff
Agent hooks call the bridge, the bridge posts each event to the collector, and the collector normalizes its category, phase, and token counts into SQLite. If the collector is down, events queue in ~/.cot/spool.jsonl and replay on the next contact.
The collector API, dashboard, bridge scripts, and Docker image live in this repository.
backend/app/ FastAPI collector
bridge/ Installer and cot bridge CLI
src/ React and TypeScript dashboard
docker compose upOpen http://127.0.0.1:31337, the same port used by the installer.
Frontend hot reload on the host
docker compose run --rm -d --name cot-api -p 127.0.0.1:31337:31337 api
npm install
COT_API_TARGET=http://127.0.0.1:31337 npm run devVite serves on http://localhost:4000 and proxies API calls to the collector on port 31337. Stop the API container with docker rm -f cot-api when done.
- Website: cot.run
- GitHub: github.com/cot-intelligence/cot
- Container:
ghcr.io/cot-intelligence/cot:latest
Cot is licensed under AGPL-3.0.