Skip to content

Repository files navigation

cot. Self-hosted observability for Claude Code, Cursor, and Codex

Trace agent reasoning, evaluate outcomes, and ship reliable AI on your own infrastructure.
No cloud. No accounts. Your traces stay on your machine.


Release CI License Container

Website · Quickstart · Features · How it works? · Development


The cot dashboard showing sessions, a trace timeline, insights, overview metrics, and command search Sessions → timeline → insights → overview → K search. Demo data; nothing here left anyone's laptop.

Quickstart

curl -fsSL https://cot.run/install | sh

One command:

  1. starts the collector in Docker, bound to localhost
  2. installs the local bridge
  3. wires up hooks for the agents you pick: Claude Code, Cursor, or Codex

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.

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

How it works

flowchart LR
    A["Claude Code<br/>Cursor<br/>Codex"] -- hook fires --> 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
Loading

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.

Repository

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

Development

docker compose up

Open 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 dev

Vite 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.

Links

License

Cot is licensed under AGPL-3.0.


Built for engineers who want to know what their agents actually did.

About

Self-hosted observability for autonomous systems.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages