traceknot
Get started
Local-first, nothing leaves your machine

Know what every agent session actually cost.

You run a coding agent, and afterward have no idea what it cost or which ticket it was even for. traceknot watches your sessions locally, ties each one back to the work item you were on, and gives you a dashboard of real cost and activity per task.

$ 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

How it works

Three steps. No change to how you already work.

01

Install

One command. traceknot hooks into the agent CLIs you already have installed.

02

Name what you're on

Each session opens with a quick prompt to pick the issue. You choose it, on purpose, in a couple seconds.

03

Open the dashboard

See cost and activity per session, per task, per agent, all served locally.

On purpose, not automatic

Every session starts with a question

traceknot could silently guess which ticket you're on. It doesn't. It asks you to 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.

Two seconds, not a form

Search, hit enter, done. Skip if it genuinely doesn't apply.

Becomes a habit

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

Not just what it cost, where it went

Open any session and see which step ran long, where the agent stalled or looped, and what each part actually cost.

Cost per task, not per month

Every session rolls up into a real figure, broken down by model, cache tier and tool calls.

Tied to your issue tracker

Attribute sessions to an issue in your tracker, using the CLI you already have signed in. Read-only, no setup.

Drill into any session

Step-by-step view of where a session actually spent its time and your money.

100% local

Everything lives in a local database on your machine. No account, no cloud sync, no analytics.

Inside a session

Every prompt, chat turn, tool call and subagent, broken down by model, tokens and cost. Click into any step for the full picture.

Session

claudesession_e3147585487dc2d58be13636
Expand allCollapse allSearch tools, agents, names9 rows
NameStatusSubagentsModelDurationInputCachedWriteOutputReasoningCost
main agent15m 24s6.7M6.6M101.6K37.4K$2.24
Prompt2.7M2.6M51.1K13.7K$0.31
Metaclaude-haiku-4-51.0s1.0K14<$0.01
Chatclaude-sonnet-53.4s38.5K26.1K12.5K180$0.18
ToolSearch3ms~13
Chatclaude-sonnet-55.9s42.1K38.5K3.6K445$0.22
DesignSync234ms~32
Investigate flaky test1claude-sonnet-512m$3.80
Bash28ms~66~45
DesignSync
Est. tokens~— in · ~32 out
Statusok
Duration234ms
StartedAug 19, 11:57 PM

Arguments

method list_files
arg 927fb9f-0856

node_8fcf54acd5

Sample data, for illustration