traceknot
Local-first, nothing leaves your machine

Know what every work item actually cost.

Your agent can tell you what one session cost. It can't tell you what a ticket cost across the five sessions it actually took. traceknot won't let that slide: it stops each session before it runs, makes you name the work, then rolls every session against it into one real total — entirely on your machine.

$ curl -fsSL https://traceknot.com/install.sh | bash
See how it works
This weekDashboard

Spent this week

$128.40-12%

342 sessions

Tokens

2.4M+8%

1.6M in · 0.8M out

Coverage

92%+3%

share of sessions claimed

Unattributed

$9.20

3 sessions to triage

Top work items by cost

PROJ-482 Auth refactor · 3 sessions$14.20
ENG-118 Ingest retry logic$9.80
PROJ-479 Search reindex · 2 sessions$6.40

Top models by cost

claude-sonnet-5$71.40
gpt-5.1-codex$38.60
claude-haiku-4-5$18.30

Top agents by cost

Claude Code$62.10
Codex CLI$41.30
Copilot CLI$24.90

Cost over time

Aug 19Aug 25

Recent sessions

Claude CodePROJ-48214m$2.102m ago
Codex CLIPROJ-4796m$0.8419m ago
Copilot CLIUnclaimed22m$4.3041m ago
Claude CodeENG-1189m$1.551h ago

Sample data, for illustration

Works with

Claude CodeCodex CLICopilot CLIVSCode Copilot Chat
On purpose, not automatic

Every session starts with a question

traceknot could silently guess which ticket you're on. It doesn't — and it doesn't just log the spend quietly in the background either. It's a guardrail: your agent's first prompt is intercepted until you name the work, on purpose, so the record is something you actually stand behind, not a best guess stitched together after the fact.

Attach Context

Match this session to a work item, or skip

Skip

Target prompt

Fix the token refresh race condition in the auth retry path

Recentjiragithubgitlabcustom
Filter recent items by key or title
PROJ-482Auth refactor2m ago
ENG-118Ingest retry logic1h ago
PROJ-479Search reindexyesterday

Sample data, for illustration

It asks, it doesn't guess

No AI classifier quietly assigning your work. You pick the item, every session.

It actually pauses

A hook early in your agent's session holds it there until you claim a work item or skip — 240 seconds to decide.

Becomes a habit

Naming the work before the agent runs turns into muscle memory, not a chore.

This runs as a hook wired into your agent CLI at install time —see exactly how it's set up.

Local, and open about it

traceknot doesn't ask you to trust a vendor with your session data. It runs on your machine, and the code that runs it is public.

Everything stays local

Your session data lives in a database on your own machine, with a dashboard only your machine can reach. No account, no cloud sync, no analytics.

Read-only, by design

Issue-tracker lookups reuse the GitHub, GitLab, or Jira CLI you already have signed in — they read an issue's key and title, and never create, edit, or comment on anything.

Open source

Apache-2.0 licensed. Every hook, normalizer, and pricing table is on GitHub for anyone to read or audit.