Skip to content

Repository files navigation

Claude-Code_Usage-Token

Версия

Сколько на самом деле осталось от лимитов Claude Code — в цифрах, а не в светофоре.

🇬🇧 English version · Неофициальный инструмент, к Anthropic отношения не имеет.

На что витрина не отвечает и почему. Набор вопросов один на все проекты (.rules/showcase.json), и пробел в нём называется, а не опускается: из десяти вопросов живым числом отвечает один, остальные девять названы с причиной. Значка CI нет — состояние прогонов отдаёт сама площадка, а второй источник того же расходится с первым молча. Значка выпуска нет — выпуски перечисляет сама площадка, вкладка Releases. Значка PyPI нет — до 1.0 там ничего не публикуется, и это решение владельца, а не пробел. Значка покрытия нет — покрытие здесь не измеряется, а число, проставленное руками, застыло бы на первом же изменении.

Значка нет — не значит, что числа нет. Числа об устройстве проекта — сколько тестов и модулей, на каких Python и платформах идут проверки, сколько их создаётся на изменении, чем держится каждое правило каталога — проект публикует о себе сам, машиночитаемо: .github/badges/facts.json на ветке badges, собирает scripts/facts.py. Это ответ соседней витрине, а не картинка читателю, и вопросы у них разные. Раздел, который нельзя посчитать точно, в файл не попадает вовсе: отсутствие ключа означает «не измеряли», а ноль на его месте читался бы как измеренный ответ.

Пробел назван потому, что отсутствующий значок и застывший значок с витрины неотличимы. Держит это гейт scripts/preflight.py: вопрос без ответа и значок, разошедшийся с деревом, — отказ, а не замечание. Он же не даёт разделу фактов исчезнуть молча: источник в дереве есть, а число из него не вышло — отказ.

Проблема

Claude Code показывает состояние лимитов тремя ступенями:

allowed  →  allowed_warning  →  rejected

Планировать по такому нельзя. «Warning» означает и половину запаса, и последние проценты — а узнать, сколько именно осталось, неоткуда: ни числа, ни доли в доступных интерфейсах нет.

Практическое следствие знакомо каждому, кто гоняет агентские окна: браться за большую задачу или подождать сброса — решается наугад.

Идея

Остаток не запрашивается, а измеряется.

Рядом со светофором лежит фактический расход каждой сессии — прочитанный кэш, выданные токены, условная стоимость. Инструмент снимает эти замеры, копит их и считает потребление за окно: пятичасовое и семидневное.

Дальше он калибрует сам себя: запоминает, какому суммарному расходу соответствовало переключение allowed → warning, потом warning → rejected. Через две-три недели набирается собственная шкала — и остаток начинает считаться в процентах, без всякого доступа к внутренним лимитам.

Как устроено хранилище

Без сервера и без базы данных. Замеры дописываются строками JSONL в git — в приватный репозиторий рядом.

Причина архитектурная: замер может сделать только окно (данные живут в реестре сессий), а облачное окно эфемерно — его файловая система исчезает вместе с контейнером. Значит хранилище обязано быть внешним, и git подходит лучше сервера: он распределённый, версионированный и доступен из любого окна. Append-only строки сливаются без конфликтов, даже когда пишут несколько окон разом.

Сервер добавил бы к этому только точку отказа.

Документы

docs/spec.md что измеряется, как из этого получается остаток, чего проект не обещает
docs/storage-setup.md подготовка приватного хранилища перед первым замером
docs/roles.md роли: когда каждая включается и что имеет право остановить
docs/labels.md номенклатура меток
CONTRIBUTING.md инварианты, гейты, метки, язык
SECURITY.md что собирается, куда уходит, куда сообщать об утечке
HISTORY.md из-за чего проект появился и какие решения приняты
.rules/bindings.json ответ проекта по каждому правилу общего каталога

Правила проекта — из общего каталога. Свод, по которому здесь работают, ведётся в Engineering-Incidents-Playbook, и каждая запись там несёт свой инцидент и границы применимости. Сколько их — говорит сам каталог, а не эта строка: число, переписанное сюда, застывает молча (так «162» пережило четырнадцать новых правил). Ответ этого проекта — по каждому правилу, а не по тем, до которых дошли руки — лежит в .rules/bindings.json: принято и чем держится · отклонено и почему · нет предмета · ещё не смотрели. Правила, родившиеся здесь, предлагаются каталогу обратно — .rules/proposals.json.

Статус

Ранняя разработка. Собрана первая команда — sample: снимает замер и дописывает его в приватное хранилище. Отчёта и калибровки пока нет, и они отказывают вслух, а не возвращают пустоту.

На настоящем материале прогнана половина. Транскриптный сбор проверен на живом транскрипте 2026-09-03 — 3833 строки, 650 ответов, — и первый же прогон нашёл дефект: вывод молчал о 572 отброшенных повторах, то есть о 47% строк с расходом. Реестровая половина и запись в хранилище не прогонялись ни разу: ни одного замера не записано, а самый дорогой класс дефектов здесь — запись в чужой приватный репозиторий с коммитом и пушем.

Порядок работ — эпики #1 (замер → отчёт → калибровка) и #3 (инфраструктура до запуска).

Остаток в процентах инструмент начнёт показывать не раньше, чем наберёт калибровочные точки, и до тех пор будет честно говорить «шкала не откалибрована». Это заложенное поведение, а не недоделка.

Снять замер может только окно: реестр сессий живёт в MCP, и процесс Python до него не дотягивается по построению. Поэтому окно выгружает ответ реестра в файл, а инструмент его разбирает — подробности в docs/spec.md, подготовка хранилища в docs/storage-setup.md.

Лицензия

MIT — см. LICENSE.

About

Сколько на самом деле осталось от лимитов Claude Code — в цифрах, а не в светофоре

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages