cost-track — скилл для Claude Code: что делает и как установить
Считает расход токенов по сессии Claude Code, переводит их в доллары и сохраняет запись в неймспейсе cost-tracking. Нужен, когда хочется видеть цену работы, а не догадываться о ней.
npx skills add ruvnet/ruflo --skill cost-track -a claude-codeЧто делает cost-track
Скилл читает jsonl-файл активной сессии (~/.claude/projects/<encoded-cwd>/<session>.jsonl), суммирует usage из сообщений ассистента по каждой модели и считает стоимость по ценам из REFERENCE.md. Токены записи в кеш идут по ставке cache_write, чтения — по cache_read. Результат — запись с ключом session-<sessionId> в неймспейсе cost-tracking в AgentDB.
Запуск один: node plugins/ruflo-cost-tracker/scripts/track.mjs из корня проекта. Скрипт сам находит свежий jsonl по текущему каталогу, печатает markdown-сводку с разбивкой по моделям и тирам, потом пишет запись через memory_store. Нужны Node.js и доступ к MCP-инструменту памяти. Без записи в AgentDB останется только текст сводки: для этого есть TRACK_DRY_RUN=1.
Файл сессии — единственный источник цифр, и лежит он в каталоге Claude Code. На Cursor, Codex или Copilot такого файла может не оказаться, и тогда считать будет нечего, даже если скилл установлен. Это же и повод проверить запись после первого прогона: cost-report и cost-optimize берут данные только из cost-tracking.
Какие задачи решает
- узнать, во сколько обошлась прошедшая сессия
- разложить расход по моделям и тирам
- сохранить историю трат по разным проектам
- посмотреть, сколько ушло на запись в кеш и чтение из него
- отдать готовые цифры в
cost-report
Примеры запросов агенту
- Прогони cost-track по текущей сессии и покажи сводку по моделям
- Сколько мы потратили на opus в этом проекте — запусти cost-track
- Прогони
node plugins/ruflo-cost-tracker/scripts/track.mjsсTRACK_DRY_RUN=1, запись в память пока не нужна
Как установить cost-track
1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill cost-track -a claude-code2Вручную: положить файлы
~/.claude/skills/cost-track/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/cost-track/
1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill cost-track -a codex2Вручную: положить файлы
.agents/skills/cost-track/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill cost-track -a cursor2Вручную: положить файлы
.cursor/skills/cost-track/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install ruvnet/ruflo cost-track2Вручную: положить файлы
.github/skills/cost-track/SKILL.md1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill cost-track -a gemini-cli2Командой платформы
gemini skills install https://github.com/ruvnet/ruflo --path plugins/ruflo-cost-tracker/skills/cost-trackВручную: положить файлы
.devin/skills/cost-track/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill cost-track -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о cost-track
Как установить cost-track в Claude Code?
Одной командой: npx skills add ruvnet/ruflo --skill cost-track -a claude-code. Файл скилла окажется по пути ~/.claude/skills/cost-track/SKILL.md.
Что делает cost-track?
Разбирает jsonl сессии Claude Code, складывает токены по каждой модели и считает стоимость в долларах. Запись уходит в неймспейс cost-tracking, откуда её читают отчёты.
Что нужно, чтобы скилл заработал?
Node.js для запуска скрипта и рабочий MCP-инструмент memory_store: без него цифры останутся только в консольной сводке. Конкретную сессию можно задать через TRACK_SESSION, другой неймспейс — через TRACK_NAMESPACE.
Исходный текст
SKILL.md · MIT
---
name: cost-track
description: Auto-capture per-session token usage from the Claude Code session jsonl and persist to the cost-tracking namespace
argument-hint: ""
allowed-tools: Bash mcp__plugin_ruflo-core_ruflo__memory_store
---
# Cost Track
Reads the active Claude Code session jsonl (`~/.claude/projects/<encoded-cwd>/<session>.jsonl`), tallies assistant-message `usage` per model, computes USD cost using REFERENCE.md pricing, and writes a structured record to the `cost-tracking` AgentDB namespace. This is the **producer** that gives `cost-report` and `cost-optimize` real data to consume.
## When to use
- After a meaningful chunk of work, to capture spend for the report.
- At session-end to persist the final tally.
- Periodically during long sessions (cron-friendly — see `/loop 30m`).
## Steps
1. **Run the tracker** from the project root:
```bash
node plugins/ruflo-cost-tracker/scripts/track.mjs
```
The script auto-discovers the session jsonl from the current working directory. To pin a specific session: `TRACK_SESSION=/path/to/session.jsonl`. To dry-run (no memory write): `TRACK_DRY_RUN=1`.
2. **Inspect the markdown summary** — total cost, per-model and per-tier breakdowns, and the persisted memory key.
3. **Verify persistence** — `mcp__plugin_ruflo-core_ruflo__memory_search({ query: "session-", namespace: "cost-tracking" })` should list the new record. `cost-report` step 1 reads from this namespace.
## Record shape (in `cost-tracking` namespace)
Key: `session-<sessionId>`. Value (JSON):
```json
{
"sessionId": "1dba3b8c-...",
"cwd": "/Users/cohen/Projects/ruflo",
"startedAt": "2026-05-04T...",
"endedAt": "2026-05-05T...",
"messageCount": 234,
"byModel": {
"claude-opus-4-7": {
"tier": "opus",
"input_tokens": 12345,
"output_tokens": 6789,
"cache_creation_input_tokens": 800000,
"cache_read_input_tokens": 2000000,
"messages": 50,
"cost_usd": 1.23
}
},
"byTier": { "haiku": 0.0, "sonnet": 0.45, "opus": 1.23, "unknown": 0 },
"total_cost_usd": 1.68,
"capturedAt": "2026-05-05T..."
}
```
## Pricing source of truth
The script's `PRICING` constant mirrors REFERENCE.md "Model pricing (USD per 1M tokens)". Update both together when prices change. Cache-write tokens are billed at `cache_write` rate; cache-read tokens at `cache_read` (per Anthropic billing docs).
## Env overrides
| Env | Default | Purpose |
|---|---|---|
| `TRACK_CWD` | `process.cwd()` | Override which project's sessions to scan |
| `TRACK_SESSION` | most-recent jsonl | Pin a specific session file |
| `TRACK_OUT` | unset | Also write the JSON summary to this path |
| `TRACK_DRY_RUN=1` | unset | Skip the `memory store` call |
| `TRACK_QUIET=1` | unset | Suppress markdown output |
| `TRACK_NAMESPACE` | `cost-tracking` | Override target namespace |
## Cross-references
- `cost-report` (consumer) — reads records produced by this skill
- REFERENCE.md "Cost attribution formula" — the math the script implements
- `cost-budget-check` (consumer; landing in P2) — reads totals to evaluate alerts
© ruvnet · MIT · ruvnet/ruflo