Telemetry for AI‑assisted development.

PromptConduit is an open-source CLI that records how you actually use Claude Code, Cursor, and Gemini CLI — every prompt, tool call, token, and dollar. Events land in a local JSONL file first. You can read every byte before anything leaves your machine.

brew install promptconduit/tap/promptconduit
~/.promptconduit/events.jsonl — one Stop event, whitespace added
{
  "schema": 2,                                      
  "tool": "claude-code",
  "hook_event": "Stop",
  "captured_at": "2026-07-03T21:16:54Z",
  "enrichments": {
    "vcs":  { "repo": "acme/platform", "branch": "feat/billing",
             "dirty": true },                     
    "turn": { "duration_ms": 187954 },
    "diff": { "files_changed": 3, "insertions": 148,
             "deletions": 27 },                  
    "cost": { "totals": { "usd": 1.0716,
               "tokens": { "output": 11628,
                          "cache_read": 777374 } },
             "signals": { "cache_hit_rate": 0.91 } }  
  }
}
  1. One JSON line per hook event, written to disk before any network call. No account required for any of it.
  2. Branch and repo names — never your diff contents.
  3. What the turn changed, as counts.
  4. What the turn cost, priced locally from your own transcript.

What one captured event looks like

how_it_works

Three commands, then forget it's there.

1. Install hooks

promptconduit install claude-code wires the CLI into your assistant's hook system. Cursor and Gemini CLI work the same way. Nothing about how the tool behaves changes.

2. Work as usual

Every session appends structured events to ~/.promptconduit/events.jsonl — enriched with git context, timing, tool outcomes, and exact cost. Secrets are scrubbed on the way in.

3. Ask it questions

promptconduit cost for spend by session and model. The editor extension shows live cost and coaching insights, fully offline.


enrichments

Names and numbers, on the record.

Each event carries enrichment slugs computed locally at capture time. They record that things happened and what they cost — not what you or the model said.

env
host, OS, architecture, working directory
trace
W3C trace and span IDs linking every event in a session
vcs
repo, branch, commit, dirty counts, linked pull request
prompt
length, word count, interrupt detection — counts, not contents
cost
per-request tokens and USD, cache-hit rate, model tier
tools
tool call names, durations, failures, MCP server, skill
diff
files changed, insertions, deletions per turn
subagent
agent type, parallelism, duration, spend
turn
wall clock from prompt submit to Stop
permission
what was requested, what was denied

local_only

Local first is not a mode. It's the default.

The CLI works with no account and no API key — that's the whole free tier, forever, MIT licensed. Sending anything anywhere requires you to opt in, and local_only: true makes opting in impossible. When you do connect a team, you can diff exactly what leaves the machine, because it's the same file you've been reading all along.

How data handling works, precisely →


teams

Your team already solved most of its problems. Once. Somewhere.

Connect a team account and everyone's telemetry rolls up: which workflows keep winning, what the tokens actually buy, where sessions go sideways. The best patterns come back out as artifacts your tools use directly.

~/.claude/skills/deploy-preview/SKILL.md — generated from 14 sessions across 3 teammates
---
name: deploy-preview
description: Build, deploy to preview, and
  smoke-test a PR branch before review
---

Deploy the current branch to a preview
environment and verify it:

1. Run the build and fail fast on errors
2. Deploy with `wrangler pages deploy` ...
  • Shared skills & patterns. Generated from real sessions, deduplicated across the team, installable by every member.
  • Cost by member, model, and repo. The dashboard the person paying for tokens keeps asking for.
  • Coaching trends. Interrupt rates, cache hits, plan-mode adoption — across the team, not just yourself.
  • A weekly digest that answers "was this worth it" without a meeting.

Team pricing — $15/seat

get started
$ brew install promptconduit/tap/promptconduit
$ promptconduit install claude-code
 hooks installed — capturing to ~/.promptconduit/events.jsonl