Открытый код · MIT

vibereceipt — Ваша работа с ИИ —по позициям.

vibereceipt читает логи сессий, которые Claude Code, Codex CLI и OpenCode и так хранят у вас на диске, и печатает кассовый чек: токены, сколько бы они стоили по ценам API и сколько раз агент сказал «You’re absolutely right». А потом сохраняет PNG, который можно сразу выложить.

npx github:glmn-ai/vibereceipt

Скоро в npm: npx vibereceipt.

  • Без аккаунта
  • Без сетевых запросов
  • Ноль зависимостей
Кассовый чек: сессии, промпты, вызовы инструментов, токены, стоимость по харнессам и моделям, сравнение с подпиской и забавные счётчики. С пометкой DEMO: пример данных.

Напечатано из примера данных --demo, а не из чьих-то настоящих логов.

Что в чеке

Всё, что сделали агенты, построчно

Посчитано по логам, оценено по опубликованному прайсу. Забавные счётчики появляются, только если они есть в ваших логах.

*** FUN COUNTERS ***

Та часть, которую скриншотят.

  • "YOU'RE ABSOLUTELY RIGHT"Считается в ответах агента.
  • "PERFECT!"То же для второй любимой фразы.
  • TIMES YOU INTERRUPTEDСколько раз вы остановили агента посреди хода.
  • RAGE TAXПромпты с бранным словом.
  • NIGHT-OWL PROMPTS 00-05Отправленные с полуночи до пяти утра.
  • BUSIEST DAYСамый загруженный день за период.
  • LONGEST STREAKСамая длинная серия дней подряд.
  • LONGEST SESSIONОдна сессия без перерыва больше часа.
  • PEAK HOURЧас дня, когда вы работаете больше всего.

0 BYTES UPLOADED

Что вы делали

Сессии, промпты, которые вы набрали, ответы агента, вызовы инструментов с тремя самыми частыми, изменённые файлы и запросы к моделям.

  • SESSIONS
  • PROMPTS YOU TYPED
  • TOOL CALLS
  • FILES EDITED

Токены

Входные, выходные, чтение и запись кеша, плюс итог.

  • INPUT
  • OUTPUT
  • CACHE READ
  • CACHE WRITE

По харнессам и моделям

Токены и стоимость для каждого агента, которым вы пользовались, и для трёх главных моделей.

  • BY HARNESS
  • BY MODEL (TOP 3)

Счёт

Подытог по ценам API с датой прайса. Добавьте --plan — и чек сравнит его с вашей подпиской.

  • SUBTOTAL
  • SUBSCRIPTION
  • YOU SAVED

Шапка и подвал

Дата, номер чека (хэш вашей статистики) и «кассир» — самая дорогая из ваших моделей. Внизу — штрихкод и обещание.

  • CASHIER
  • 0 BYTES UPLOADED
  • THANK YOU FOR VIBING
Приватность

Прочитано локально, напечатано локально

Читает файлы на вашем диске и пишет один PNG. Это весь список.

Нет сетевого кода

Ноль зависимостей во время работы. Не импортирует http, https, net, tls и dgram и никогда не вызывает fetch. Ни аккаунта, ни выгрузки.

Только чтение

Логи открываются только на чтение, база OpenCode — в режиме только для чтения. Единственный файл, который он пишет, — PNG.

Ничего личного в чеке

Текст промпта сразу превращается в отметку времени и флаг «ругался или нет». MCP и неизвестные инструменты сводятся в одну строку, их имена не видны. Названия проектов — только с --projects.

Проверьте сами

Склонируйте репозиторий и прогоните grep по сборке. Он ничего не выведет.

git clone https://github.com/glmn-ai/vibereceiptcd vibereceiptgrep -rnE "fetch\(|node:https?|node:net|node:tls|node:dgram|WebSocket" dist

Единственные адреса в dist/ — обычный текст: ссылка «поделиться», которую он печатает, и два источника прайса. CI повторяет эту проверку при каждом запуске.

Как считается стоимость

Точные деньги — или никакой цены

Парсеры и цены взяты из @neurosquad/core, движка nsq.

  1. 01

    Цены API, с датой

    Опубликованные цены API от Anthropic и OpenAI. В чеке напечатана дата прайса: price table 2026-10-12.

  2. 02

    Каждый запрос — один раз

    Claude Code пишет строку на каждый блок ответа, а продолженные сессии копируют старые сообщения. Строки сводятся по id сообщения.

  3. 03

    Своя цена у каждого типа токенов

    Некешированный вход, выход, чтение кеша, запись кеша на 5 минут и на час, длинный контекст и быстрый режим — у каждого своя цена.

  4. 04

    Целочисленная арифметика

    Целые токены, целые цены, стоимость в пикодолларах. Без плавающей точки, округление один раз — при выводе.

  5. 05

    «Без цены», а не $0

    Локальная модель или модель, которой нет в прайсе, остаётся без цены. Чек пишет, сколько запросов и токенов это касается, и помечает частично оценённые строки *.

Математика подписки

С --plan подписка списывается за каждый календарный месяц, в котором вы работали за период. Потом чек пишет YOU SAVED или YOU OVERPAID — как есть на самом деле.

SUBSCRIPTION

4 mo x $200 (Jul-Oct 2026)

YOU SAVED

/ YOU OVERPAID

Итог — это сколько стоил бы тот же трафик по ценам API. Подписка не тарифицируется по токенам, так что это не то, что вы заплатили.

Флаги

Выберите период, добавьте свой план

Без флагов — за всё время, в терминале и в PNG.

--since <when>Период: 30d, 7d, 4w, 6m, 1y или дата вроде 2026-09-01. По умолчанию — за всё время.
--month / --yearТекущий календарный месяц или год.
--plan <plan>Сравнить с подпиской: pro, max5, max20, chatgpt-plus, chatgpt-pro или любая цена в месяц, например 49.99.
--shortКомпактный чек для публикации, PNG ровно 4:5.
--out <path>Куда сохранить PNG. По умолчанию — ./vibereceipt-YYYY-MM-DD.png.
--no-pngТолько напечатать, PNG не сохранять.
--jsonСтатистика в JSON, деньги — точно, в пикодолларах. PNG не сохраняется без --out.
--projectsДобавить три главные папки проектов, только имена. По умолчанию выключено.
--demoЧек из встроенного примера данных, с пометкой DEMO сверху и снизу.
Какие агенты

Логи трёх агентов, ничего не настраивать

Читает то, что эти CLI и так хранят на диске. Логи субагентов тоже учитываются.

Claude Code

Читает

~/.claude/projects

Codex CLI

Читает

~/.codex/sessions

OpenCode

Читает

~/.local/share/opencode/opencode.db

Нужен Node 18.17 или новее. Для истории OpenCode в SQLite — Node 22.13+; на более старом Node OpenCode пропускается с пометкой.

Нужен другой агент? Парсеры взяты из @neurosquad/core, а он читает и другие. Откройте issue.

Напечатайте свой.

Одна команда. Ничего не покидает ваш компьютер.

npx github:glmn-ai/vibereceipt