subscription
Skill3 starsChanged 13 days agoApache-2.0View on GitHub
Use on \"how much is left\", \"how is the subscription\", \"will we hit the limit\", morning ritual, before heavy work: Claude limit windows. RU: «сколько осталось», «как подписка», «на чём мы», «не упрёмся ли».
- Reads credentials
In this repository34 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- cardsSkill
- communicationSkill
- copyblockSkill
- delaSkill
- escalate-to-ownerSkill
- import-reviewSkill
- inboxSkill
- inbox-triageSkill
- iniciativaSkill
- memory-auditSkill
- mila-exportSkill
- MILAGPT-chatSkill
- mila-in-chatSkill
- mila-sessionSkill
- mila-speechSkill
- mila-tasksSkill
- mila-updateSkill
- obratnaya-svyazSkill
- oglyadkaSkill
- onboardingSkill
- owner-dmSkill
- packsSkill
- pd-vaultSkill
- plain-wordsSkill
- raspisanieSkill
- safe-linkSkill
- self-checkSkill
- subscription-limitsSkill
- tasks-disciplineSkill
- tasksSkill
- topicsSkill
- utochnenie-zadachSkill
- verifySkill
The file
Files
When to use (full): Claude subscription status: limit windows (5 hours, week, per model), burn rate, forecast of hitting the cap, local spend in dollars. Use when the owner asks "how much is left", "how is the subscription", "what are we on", "will we hit the limit", in the morning ritual and before heavy work. RU: Состояние подписок Claude — окна лимитов (5 часов, неделя, помодельные), темп расхода, прогноз упора и местный расход в долларах. Применять, когда хозяин спрашивает «сколько осталось», «как подписка», «на чём мы», «не упрёмся ли», а также в утреннем ритуале и перед тяжёлой работой.
subscription — сколько осталось от подписки
Что даёт
· Хозяин видит остаток раньше, чем упрётся в стену посреди работы. · Ответ числом и с временем сброса, а не «вроде хватает». · Одна и та же картина у всех агентов — считается одинаково.
Когда
Спросили про лимиты, остаток, расход или «почему всё встало». Утренний ритуал. Перед большой работой, если неделя уже за 80%.
Не по своей инициативе в течение дня: эндпоинт режет частые запросы, и лишний опрос делает хуже всем.
Как
python3 ~/.claude/skills/subscription/subscription.py # отчёт
python3 ~/.claude/skills/subscription/subscription.py --telegram # готовый блок в чат
python3 ~/.claude/skills/subscription/subscription.py --card # PNG-дэшборд (путь) или пусто
python3 ~/.claude/skills/subscription/subscription.py --json # машине
python3 ~/.claude/skills/subscription/subscription.py --local # без сети, только расход
python3 ~/.claude/skills/subscription/subscription.py --force # спросить сервер вне очередиВ Telegram отправлять --telegram. Отчёт держится на выравнивании, а обычный
текст в Telegram не моноширинный — колонки разъедутся. Ключ заворачивает вывод в
блок кода: format: "markdownv2", внутри блока экранировать ничего не нужно.
--force — только по прямой просьбе. Без причины не дёргать.
Команды в чате (ядро Mila, 10.09.2026)
Хозяин пишет боту команду — агент отвечает сразу, без вопросов:
| Команда | Что делает | |
/usage (или слово «подписки», «usage») | своя подписка: текстовый блок --telegram; /usage card — картинка по просьбе | |
/usage all | все свои входы из accounts.json и агенты на них — текстовый блок + строка совета, где тяжёлое отложить до сброса; /usage all card — картинкой | |
/usage watch on / off | включить/выключить часовой сторож (`subscription_watch.py --on | --off`) |
/usage json | сырой --json файлом (для администратора и разборов) |
Порядок хода: python3 ~/.claude/skills/subscription/subscription.py --telegram → блок markdownv2
одним сообщением; card в команде → --card → reply(files=[png]), пусто → тот же текст. Одна строка вывода под картинкой обязательна: «неделя 46 %, сильная
модель 7 % — до среды тяжёлое на Sonnet», без пересказа цифр с картинки.
Картинка (rich media)
subscription_card.py рисует card.html в фирменных цветах и печатает PNG через Chrome.
В контейнере Chrome нет — тогда берётся общий PNG: в accounts.json
поле "card": {"path": "~/state/subscription-card.png", "max_age_min": 75};
его раз в час кладёт машина с Chrome вместе с отчётом. Устарел или нет — текстовый блок, без
извинений. Статус агента на картинке: 🟢 работает · 🟡 данным N ч · 🔴 стоит (5-часовой
бак < 3 %).
Сторож (раз в час)
subscription_watch.py по cron/launchd: история снимков, темп по своей истории (не
раньше чем через 2 ч точек), сигнал хозяину один раз на повод, повтор через 3 ч:
неделя/сильная модель ≤ 20 % или «кончится раньше сброса»; 5-часовой бак ≤ 30 %.
Доставка: Компаньон — --tg-token-env TELEGRAM_BOT_TOKEN --chat <id хозяина>;
Мила-администратор — --outbox ~/.claude/channels/telegram/outbox --chat <id>. Картинка
прикладывается, если собралась. --off / --on — состояние в
$SUBSCRIPTION_STATE/subscription-watch.off.
Утренний отчёт
В утренний ритуал (WAKE.md) — одна строка из --telegram блока или картинка --card
после дел дня; не первой строкой, не отдельным сообщением, если нет сигнала.
Как читать отчёт
бак · осталось
5 часов ███████████░ 99% ровно
неделя ████░░░░░░░░ 36% ровно
нед · Fable █░░░░░░░░░░░ 2% пусто
сброс
5 часов сегодня 18:50 — через 2 ч 45 мин
неделя сб 12.09 08:00 — через 2 дн 15 чВремя сброса — точное, с днём недели, и всегда с обратным отсчётом («дата, время и сколько осталось в днях-часах»). Окна с общим сроком — неделя и помодельные — сводятся в одну строку: ключ группировки по минуте, потому что у них метки расходятся на микросекунды.
Показываем остаток, а не расход — так понятней: видно бак. Полоса и число — сколько осталось до сброса. Проценты — доля окна, не деньги.
Правая колонка сравнивает скорость расхода с ходом времени в окне:
ровно — тратим примерно по ходу окна, остатка хватит до сброса.
тает быстро — расход обгоняет время больше чем на 15 пунктов, кончится раньше
срока.
с запасом — идём медленнее окна.
пусто — осталось 5% и меньше, окно можно считать закрытым до сброса.
Строка «при этом темпе … кончится …» появляется только при заметном перерасходе и пока в баке что-то есть — иначе это шум.
Расход в долларах — пересчёт по прайсу API, а не счёт. Подписка так не тарифицируется. Так и говорить: «мера, не счёт». Числом меряем нагрузку, а не выставляем сумму.
Свои входы на нескольких машинах
Подписка Claude — для одного человека. Этот раздел — чтобы видеть свои входы, если вы работаете с нескольких машин (сервер и ноутбук), а не чтобы делить подписку или крутить агентов по чужим аккаунтам: такого навык не делает и не советует.
accounts.json рядом со скриптом. Одна запись — один ваш вход:
{"accounts": [
{"name": "Main", "credentials": "~/.claude/.credentials.json"},
{"name": "Laptop", "report": "~/state/subscription-laptop.json"}
]}Вместо файла можно {"name": "…", "env": "ИМЯ_ПЕРЕМЕННОЙ"}.
Вход с другой машины сюда не копируется. Там, где он живёт, этот же скрипт пишет
--json в файл, и к нам приезжают только проценты и время сброса ("report"). Токен от
claude setup-token не подойдёт: он только для вывода, окон лимитов не отдаёт (нет области
user:profile).
Возраст отчёта проверяется всегда. Старше часа — в отчёте «отчёт устарел, снят N часов назад»; нет файла — «не подключена — отчёт не приходил». Цифры без отметки о времени не показывать.
На Маке вход Claude Code лежит не в файле, а в связке ключей — там читается через
security find-generic-password -s 'Claude Code-credentials' -w (в контейнерах Linux не нужно).
Устройство — чтобы чинить, а не гадать
Токен — ~/.claude/.credentials.json, объект claudeAiOauth. Каталог
переопределяется переменной CLAUDE_CONFIG_DIR.
Окна — GET https://api.anthropic.com/api/oauth/usage, заголовки
Authorization: Bearer … и anthropic-beta: oauth-2025-04-20. Без beta-заголовка
приходит 401. Имя и план — соседний /api/oauth/profile.
Ответ: five_hour и seven_day с utilization (0–100) и resets_at.
Помодельные недельные окна лежат в массиве limits, записи kind: "weekly_scoped"
с scope.model.display_name и percent; старые ключи seven_day_<модель>
возвращают null.
Местный расход — state/usage-daily.json, его считает хук.
Механизм разобран по исходникам OpenUsage (MIT, github.com/robinebers/openusage,
Sources/OpenUsage/Providers/Claude/). Реализация своя.
Чего делать нельзя
Не обновлять токен самому. Claude Code перевыпускает его сам; запись ротированного токена ломает живую сессию. Просроченный — просто сказать.
Не показывать токен. Ни в чат, ни в лог, ни в кэш. В кэше лежат только проценты и время сброса — проверено грепом.
Не долбить --force. 429 прилетает легко, держится часами, Retry-After
бывает не всегда. В скрипте кэш на 15 минут и выдержка с удвоением до часа —
это защита, а не помеха.
Не называть доллары счётом клиенту. Это внутренняя мера нагрузки.
Что ломается со временем
anthropic-beta: oauth-2025-04-20 — дата в заголовке однажды сменится, и окна
молча перестанут читаться. Если в отчёте вдруг «вход просрочен» на живом входе —
смотреть сюда первым делом.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

