Case study: Synopt
Monitor Claude Code Usage Across a Team: How We Built Synopt
How we built Synopt, which shows teams how they use Claude Code, Codex CLI and Cursor: a macOS agent, a Go backend and a dashboard that never sees your code.
Published
Synopt is our product for engineering leads who want to see how their team uses AI coding tools. A small macOS agent reads the usage data Claude Code, Codex CLI and Cursor already produce and sends metadata to a dashboard: tools, models, tokens, estimated cost and repositories. Prompts are off by default, and code and keystrokes are never captured.
Synopt answers three questions its site puts first: who has adopted what, what it costs, and whether a secret just went into a prompt. This case study covers what we built and the decisions behind it, using only what is public on synopt.dev.
What does Synopt show a team?
For each developer and tool, the dashboard shows:
- which tool and which model was used
- timestamps and token counts
- an estimated API-equivalent cost
- the repository and branch
- secret-detection verdicts: type, severity and which field
It captures Claude Code, Codex CLI and Cursor today. GitHub Copilot and ChatGPT are listed as planned.
How do you monitor AI coding tools without reading prompts?
This was the central design decision, because a tool that watches developers can easily become a tool developers refuse to install.
The agent reads telemetry the tools already produce on the Mac. It does not sit between the developer and the model provider, so it cannot slow down or break a request. Prompt text capture is off by default. Source code, diffs, keystrokes, screenshots and browser history are never captured.
Secrets are handled on the device. The agent scans for them locally, and only the verdict leaves the Mac. The matched text is never stored or sent. Each agent has its own token, stored hashed on the server, and traffic uses TLS.
The agent itself is open source under Apache-2.0, so a security team can read it before rolling it out.
How is Synopt built?
| Part | Technology |
|---|---|
| Agent | Go; macOS only; open source (Apache-2.0) |
| Backend | A single Go binary with the ingest API and processing pipeline |
| Database | PostgreSQL with the TimescaleDB extension |
| Dashboard | Next.js |
| Cloud | EU infrastructure in Germany |
| Self-hosted | Three containers under Docker Compose |
Go lets the backend ship as one binary, which keeps self-hosting simple. TimescaleDB handles the time-series shape of usage data inside Postgres, so there is no second database to run.
Can it run inside a company's own network?
Yes, and for some security teams that is the only acceptable option. The self-hosted version is three containers: the Go backend, PostgreSQL with TimescaleDB, and the dashboard. In the words of the self-hosting page: "No phone-home. The backend makes no outbound connection to us, at any point in its lifecycle." It runs fully air-gapped. Self-hosting is sold with a support agreement rather than self-serve.
What did we choose not to claim?
The security page says plainly that Synopt has no SOC 2, no ISO 27001 and no third-party penetration test yet. For a product that asks for trust, an honest security page does more than badges.
Where is it today?
In the site's words, Synopt "has been running continuously against real daily AI-tool usage since July 2026". The agent ships as a signed macOS installer, and there are guides for teams evaluating these tools.
Pricing today: a free 14 day trial for up to 25 engineers, no credit card. Per-seat cloud pricing is not published yet.
If you are building a product where privacy is part of the pitch, the same approach applies: decide early what you will never collect, and make that checkable. Our other product write-ups are Taperlark and openwhenitstime.
Frequently asked questions
How can I see how my team uses Claude Code, Codex CLI and Cursor?
Synopt installs a small agent on each developer's Mac that reads the usage data these tools already produce, and sends metadata to a dashboard: which tool and model, token counts, an estimated cost, and the repository and branch. Prompt capture is off by default; code and keystrokes are never captured.
Does Synopt read my developers' prompts or code?
Not by default. Prompt text capture is off by default, and the default fails closed. Source code, diffs, keystrokes, screenshots and browser history are never captured. Secret detection runs on the Mac, and only the verdict (type, severity, field) is sent, never the secret itself.
Can Synopt be self-hosted?
Yes. The self-hosted version is three containers under Docker Compose: a Go backend, PostgreSQL with TimescaleDB, and the Next.js dashboard. It makes no outbound connection and can run air-gapped. Self-hosting is sold with a support agreement.
Which platforms does the Synopt agent support?
The agent runs on macOS only. It captures Claude Code, Codex CLI and Cursor today; GitHub Copilot and ChatGPT are listed as planned. Windows and Linux endpoints are not supported.
How much does Synopt cost?
There is a free 14 day trial for up to 25 engineers with no credit card. Per-seat cloud pricing is not published yet, and self-hosted deployments are quoted with a support agreement.