Лимитов у подписки три: пять часов, неделя общая и неделя отдельно на Fable. В JSON приходят первые два. А сессию на Fable обрывает как раз третий, я в него упирался при зеленых остальных. Смотреть /usage надоело.
Полез в бинарник. Тот же эндпоинт
/api/oauth/usage, который читает /usage, отдает в limits[] запись weekly_scoped со scope Fable. Токен лежит в Keychain, скрипт его берет, ходит раз в пять минут отдельным процессом и кладет ответ в кеш. Сама строка сеть не ждет, теплый запуск 30 мс.Про цвета...
Метры лимитов красятся по прогнозу, а не по текущему проценту: процент делится на долю окна, которая уже прошла. Прогноз до 50% серый, до 70 желтый, до 90 оранжевый, до 100 красный, выше 100 мигает. Так 30% в середине недели желтые, а те же 30% за день до сброса серые. У all и fab прогноз свой, отсчет до сброса берет цвет худшего.
Контекст проще, он красится по факту: зеленый до 50%, желтый до 65, оранжевый до 80, дальше мигает красным. Fable у меня по этой шкале горит первым, 19 против 8 у общего на одном экране.
Отдельная история с ultracode. Пока он включен, Claude Code отдает в статус обычный xhigh. Зато в транскрипт сессии пишется запись ultra_effort_enter, а при выключении ultra_effort_exit. Строка читает хвост транскрипта, последняя запись побеждает, и рисует ult фиолетовым. К сожалению эндпоинт не документированный. Anthropic поменяет формат, и fab из строки пропадет, остальное останется. Windows тоже не проверял, там ps и Keychain.
Один файл на Node без зависимостей,
make install линкует его в ~/.claude и правит settings.json:git clone https://github.com/dsbasko/cc-statusline \
&& cd cc-statusline \
&& make install
https://github.com/dsbasko/cc-statusline