Skip to content
Back to skills

Melech Cost

ASecurity

Show what coding-agent sessions cost for every worktree of the current repo — Cursor, Claude Code, and Codex — as handoff-style cards with dollars and tokens. Use when the user asks how much a repo, worktree, task, or session cost, wants a spend breakdown, or invokes `/melech-cost`.

  • 32 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 29, 2026
ai-agentspythongobashsqlgitapi

Works with

  • claude code
  • cursor
  • cli
  • api

Security analysis

A100/100

Scanned October 4, 2026

npx -y skills add AdirD/agent-shell-hamelech --skill melech-cost --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Melech Cost?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Melech Cost
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/adird-melech-cost/badge)](https://www.skillsdirectory.com/skills/adird-melech-cost)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: melech-cost
description: Show what coding-agent sessions cost for every worktree of the current repo — Cursor, Claude Code, and Codex — as handoff-style cards with dollars and tokens. Use when the user asks how much a repo, worktree, task, or session cost, wants a spend breakdown, or invokes `/melech-cost`.
disable-model-invocation: true
---

# Melech Cost

Answer "what did this repo cost me, and which task burned it?" from local
agent history. One script does all the work; the agent only runs it and
relays the result.

```text
/melech-cost                      # every worktree of this repo, top 8 cards
/melech-cost last 10              # 10 most recent sessions across all worktrees
/melech-cost <worktree>           # one worktree, its top 10 sessions
/melech-cost since 2026-09-01     # only sessions active since a date
```

## Run

Set `COST_SCRIPT` to `scripts/cost.py` beside this file (Python 3.9+):

```bash
python3 "$COST_SCRIPT" --cwd "$PWD"                        # default view
python3 "$COST_SCRIPT" --cwd "$PWD" --latest 10            # latest 10 sessions across all worktrees
python3 "$COST_SCRIPT" --cwd "$PWD" --worktree feature-a   # focus one worktree
python3 "$COST_SCRIPT" --cwd "$PWD" --since 2026-09-01     # date filter
python3 "$COST_SCRIPT" --cwd "$PWD" --cards 20             # more cards
```

Relay stdout as-is. It is already Markdown: a repo header, one card per
worktree, and a footnote. Do not recompute, round differently, re-sort, or add
numbers the script did not print. End with the `Full report:` path so the user
can open every worktree. Do not read the full report unless asked.

Card shape:

```text
### `feature-a` · ~$321
26d ago · 22 sessions + 36 subagents · cursor, claude · mostly `gpt-5.6-sol` (79%)
~394.1M tokens read (98% cached) · ~717k written

| Age | Cost | Read / Write Tokens | Model | Agent | Session | Topic |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| 1.4d ago | **~$187** | ~250.0M / ~400k | `gpt-5.6-sol` | cursor (+20) | `c747b3dc` | Users locked out after the SSO change… |
| 2d ago | **~$51** | ~80.0M / ~150k | `claude-opus-5-5` | claude | `bf32eff9` | Fix mode keeps editing the wrong file… |
```

`(removed)` marks a worktree that no longer exists on disk but still has
history. Subagent spend rolls into the session that spawned it.

## How it works

**Scope: this repo only, every worktree.** `git worktree list` gives the main
checkout and every live worktree, wherever it lives (Superset, Cursor, Codex,
Claude Code, or a plain sibling folder). A folder that holds this repo's
worktrees and no other repo's checkout also counts, so history from removed
worktrees in that folder is included. The main checkout's parent folder
(for example `~/code`) never counts, so sibling repos stay out.

**Sources and accuracy:**

| Agent | Where | Tokens |
|---|---|---|
| Claude Code | `~/.claude/projects/**/*.jsonl` | Exact: logged per message (input, cache write, cache read, output) |
| Codex | `~/.codex/sessions/**`, `archived_sessions/**` | Exact: last `token_count` total per session |
| Cursor CLI | `~/.cursor/chats/*/<id>/store.db` | Estimated: replays the stored ordered conversation |
| Cursor IDE | `state.vscdb` + `~/.cursor/projects/*/agent-transcripts` | Estimated: replay calibrated against Cursor's own context counter |

**Pricing.** Tokens × list price per model from
[`references/prices.json`](references/prices.json) (dated, per 1M tokens,
sourced from Cursor's, Anthropic's, and OpenAI's pricing pages). The first
matching rule wins. Unknown models, such as Auto, use a fallback rate, and the
footnote says how much that affected. Results are **API list-price value**. On
a subscription, part of it is covered by included usage.

**Cursor replay.** Cursor stores no billing counters locally, so each session
is replayed call by call:

- Every model call re-reads the prior prompt at the cached rate.
- New context (your message and tool results since the last call) is billed at
  the cache-write or input rate.
- The model's reply is billed at the output rate.
- When the context passes the model's limit, a summary resets it.

The IDE store drops file-read and search results. The replay therefore scales
each session to match Cursor's own "context tokens used" breakdown; sessions
without that breakdown use the median of this run's sessions, or 2.4× if there
are too few samples. Treat Cursor numbers as about ±30–40%. Hidden reasoning
tokens and cache misses after idle gaps aren't visible, so they push the true
number up.

## What it costs to run

The script is plain local Python: no model tokens and no network. It takes
about 10–40 seconds depending on history size. The only spend is the agent turn
around it: about three model calls that add ~3k new tokens (this skill, the
command, and the printed cards) plus ~1k output tokens, on top of re-reading
whatever the chat already holds.

| Where you run it | Opus 5.5 / GPT-5.6 Sol | Composer 2.5 |
|---|---|---|
| Inside an existing chat (~50k context) | ~$0.05–0.10 | ~$0.03 |
| As the first message of a fresh chat | ~$0.25 (writing the agent's own ~40k system prompt to cache) | ~$0.05 |

More `--cards` means more output tokens: roughly +$0.01 per 3 extra cards on
frontier models.

## Boundaries

- Read-only. Cursor CLI stores are copied to a temp dir to read past SQLite
  locks, then deleted. The only file written is the full report in the system
  temp dir (or `--report PATH`).
- History is private. Never upload, publish, or paste it anywhere else without
  explicit instruction.
- Prices go stale. When a provider changes pricing, update `prices.json` and
  its `as_of` date instead of hand-adjusting printed numbers.
- Agents without a supported local store (for example SQLite-only or
  encrypted histories) are not counted. Say so if the user expects them.

Files in this skill

  • SKILL.md5.3 KB
  • references/prices.json4 KB
  • scripts/cost.py32.8 KB
  • tests/test_cost.py7.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.