Лимиты в статус-баре К спидометру

Спидометр в статус-баре

Одна строка с текущей скоростью токенов и остатками лимитов: 1.2k t/s | Pro 79% | Flash 30% | Claude 9%. Цвет меняется по остатку: до 40% оранжевый, до 15% красный, при устаревших данных серый. Подходит для i3, sway, waybar, polybar, tmux и любой панели, которая умеет запускать команду.

Попросить агента встроить самому

Скопируй текст и вставь в Claude Code или Antigravity (agy) на машине, где стоит панель. Ключ в текст не входит: агент спросит его у тебя.

Встрой в мою статус-панель индикатор лимитов и скорости токенов API.
Документация: {URL}/bardocs

Как это работает:
- GET {URL}/bar отдаёт одну строку, например "1.2k t/s | Pro 79% | Flash 30% | Claude 9%".
- Ключ передаётся заголовком "Authorization: Bearer <ключ>". Ключ мне выдаёт владелец, спроси его у меня.
- Параметры: format = text | tmux | polybar | i3 | i3json | waybar | json; fields = tps,out,cached,avg,req,pro,flash,claude,img (по умолчанию tps,pro,flash,claude); sep = разделитель; icons=1.
- Готовые обёртки: {URL}/limits-bar.sh (читает LIMITS_URL и LIMITS_KEY из окружения или из ~/.config/limits-bar.conf) и {URL}/i3status-wrap.sh (для i3status).

Что сделать:
1. Выясни, какая у меня панель или оболочка (i3, i3blocks, i3status, sway, waybar, polybar, tmux, KDE, GNOME, Windows и т.д.), посмотри её конфиг и выбери подходящий format.
2. Скачай {URL}/limits-bar.sh в ~/.local/bin (chmod +x). Если на системе нет curl или sh, напиши эквивалент на том, что есть.
3. Создай ~/.config/limits-bar.conf (chmod 600) со строками LIMITS_URL={URL} и LIMITS_KEY=<ключ, который я дам>. Не вписывай ключ ни в конфиг панели, ни в репозитории dotfiles, ни в историю команд.
4. Добавь блок в конфиг панели с обновлением раз в 5 секунд. Не чаще: сервер ограничивает частоту запросов.
5. Перезагрузи панель, проверь, что строка появилась и цвет меняется. Если пишет "limits: offline" или "no key", найди причину и исправь.
6. Коротко скажи, какие файлы ты создал или изменил. Старые настройки перед правкой сохрани рядом как .bak.

Быстрая проверка

curl -s -H "Authorization: Bearer ТВОЙ_КЛЮЧ" "{URL}/bar"

Без ключа ответ 401. После 10 неверных ключей с одного адреса вход блокируется на 5 минут. Параметр ?key= тоже работает, но тогда ключ виден в адресе, поэтому лучше заголовок.

Скрипт-обёртка

mkdir -p ~/.local/bin ~/.config
curl -fsSL {URL}/limits-bar.sh -o ~/.local/bin/limits-bar.sh
chmod +x ~/.local/bin/limits-bar.sh
cat > ~/.config/limits-bar.conf <<'EOF'
LIMITS_URL={URL}
LIMITS_KEY=ТВОЙ_КЛЮЧ
EOF
chmod 600 ~/.config/limits-bar.conf
~/.local/bin/limits-bar.sh text

Запуск: limits-bar.sh [формат] [поля]. Если сервер недоступен, скрипт печатает limits: offline, панель не ломается.

Параметры

ПараметрЗначения
formattext по умолчанию, tmux, polybar, i3 (i3blocks), i3json (один блок i3bar), waybar (JSON с подсказкой), json
fieldsчерез запятую: tps скорость, out ответы, cached кэш, avg среднее за минуту, req запросы за 10 минут, pro, flash, claude, img остатки лимитов. По умолчанию tps,pro,flash,claude
sepразделитель, до 12 символов, по умолчанию |
icons1 добавляет молнию перед скоростью

Скорость считается по новым токенам: ввод без кэша плюс ответы модели. Кэш показывается отдельным полем cached. Процент лимита это среднее по рабочим аккаунтам семейства.

Подключение к панелям

i3blocks

[limits]
command=~/.local/bin/limits-bar.sh i3
interval=5

i3 / sway с i3status

curl -fsSL {URL}/i3status-wrap.sh -o ~/.local/bin/i3status-wrap.sh
chmod +x ~/.local/bin/i3status-wrap.sh
# в конфиге i3 / sway, в блоке bar:
status_command i3status | ~/.local/bin/i3status-wrap.sh

В конфиге i3status нужен output_format = "i3bar". Блок добавится слева от остальных.

polybar

[module/limits]
type = custom/script
exec = ~/.local/bin/limits-bar.sh polybar
interval = 5

waybar

"custom/limits": {
  "exec": "~/.local/bin/limits-bar.sh waybar",
  "return-type": "json",
  "interval": 5
}

Добавь custom/limits в modules-right. В подсказке при наведении лежат все семейства и время до сброса. Для стилей доступны классы ok, warn, crit, stale.

tmux

set -g status-interval 5
set -g status-right-length 80
set -g status-right '#(~/.local/bin/limits-bar.sh tmux) %H:%M'

Всё остальное

Любая панель, которая умеет показывать вывод команды, подойдёт с limits-bar.sh text. Для самописных скриптов есть format=json с полями text, state и списком segments.