What AI coding actually costs — per developer, repo, and PR.

PromptConduit is an open-source CLI that tracks token usage, cost, prompts, and tool calls for Claude Code, Cursor, Gemini CLI, Codex, Copilot, and Grok Build. Events land in a local JSONL file first. You can read every byte before anything leaves your machine. Teams sync to see spend across every tool, no enterprise contract needed.

curl -fsSL https://promptconduit.dev/install | bash
~/.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

captures_from

how_it_works

Three commands, then forget it's there.

1. Install hooks

promptconduit init signs you in (or stays local-only), detects Claude Code, Cursor, Gemini CLI, Codex, Copilot, and Grok Build, and wires the CLI into each assistant's hook system. 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.


in_your_editor

Or watch it live, in your editor.

The free editor extension renders the same local events in the editor — a per-prompt cost ledger, a live Session Graph of your agents, a raw event stream, and an offline coaching report. Fully offline, for Claude Code and Cursor. promptconduit graph is the same Session Graph in any browser.

AI Cost Breakdown — per-prompt ledger, one coaching tip, branch and PR scopes
The AI Cost Breakdown panel in Cursor: per-prompt cost, a Do better coaching tip, and Session / PR scope chips.
Session Graph — a live tree of prompts, tools, and subagents
The Session Graph panel: a live tree of turns, tool chips, subagents, and per-prompt cost.
Stream — a live feed of the active session
The Stream panel in Cursor: a live event feed following the session you have selected.
Agent Coaching — how you drove the agent, offline
The Agent Coaching panel in Cursor: interruptions, plan-mode use, tool success, and subagents.

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

The bill comes per tool. The questions come per repo.

Your team runs Claude Code, Cursor, and whatever shipped last month, each billed on its own. Vendor dashboards stop at their own tool, and their telemetry exports are usually an enterprise-plan feature. Connect a team and every member's sessions roll up into one view of what AI coding costs and where it goes.

Team cost — demo team, sample data
The team cost page: 30-day spend, sessions, and members, prompt-cache savings, and a savings report estimating what lighter models would save against the Team plan price.
  • Spend by member, model, repo, branch, and PR. The breakdown whoever pays for the tokens keeps asking for.
  • Claude Code with nothing to install. Point Claude Code's built-in telemetry at PromptConduit. Six settings
  • Every tool in one view. Claude Code, Cursor, Codex, Gemini CLI, Copilot, and Grok Build, captured by the same CLI.
  • Per client, for agencies. The repo view is spend per client: re-bill it or price the next fixed bid. How agencies use it
  • Budgets with alerts. A monthly budget for the team, a repo, or a member, with an alert at 80% and 100% by email and in Slack.
  • On the pull request. GitHub PR comments show the AI spend behind each change.
Budgets — month to date, on pace for
Four monthly budgets with progress bars: the whole team at 63%, one repo at 92%, one member at 68%, and one repo over budget at 125%.
Spend by branch and pull request
Two tables: AI spend per branch and per pull request, each labeled with its repository.

Free up to 3 — Team from $99/month


field_notes

Guides to what the numbers mean.

From the blog

Coaching guides

get started
$ curl -fsSL https://promptconduit.dev/install | bash
$ promptconduit init
✓ hooks installed — capturing to ~/.promptconduit/events.jsonl