← Все статьи

TOOLING · 2026-05-25 · ~6 мин

Мой statusline для Claude Code

Одна строка внизу терминала, которая показывает всё, что обычно держишь в голове или проверяешь руками

Из чего состоит

Это одна строка внизу терминала, которая говорит всё, что реально нужно: на какой ты модели, живое состояние git-репозитория, сколько контекста сожжено, hit/write prompt-кэша и лимиты подписки. Без зависимостей и без сборки — macOS, Linux, Windows.

Statusline Claude Code в реальном терминале: Op 4.7 (1m), claude-…tusline (main), git-статус, контекстный бар 211k/1M, cache 99%, лимиты 5h:18% и 7d:17%, ниже строка auto mode on
Та же строка вживую — в реальном терминале, с цветами

Каждый сегмент раскрашен — сама форма строки сигналит о срочности с одного взгляда. Подписи агрессивно сокращены, чтобы строка влезала в 100-колоночный терминал.

Инфографика «Как читать statusline»: каждый сегмент строки с расшифровкой — модель, папка и ветка, состояние репозитория, ahead/behind, drift между MD-файлами, контекстное окно, prompt cache и лимиты 5h и 7d
Как читать statusline: что значит каждый сегмент
  • Op 4.7 (1m)

    Текущая модель, сокращённо: семейство (Op / So / Ha / My) + пробел + версия + размер контекста (приглушённым). Opus 4.7 (1M context) превращается в Op 4.7 (1m). Нераспознанные имена моделей показываются как есть.

  • claude-…tusline (main)

    Имя текущей папки (приглушённым) + активная ветка голубым; при detached HEAD показывает (HEAD@<sha>) красным. Имя папки обрезается до 15 символов срединным многоточием head…tail (по 7 символов с каждой стороны) — но только когда иначе строка превысила бы 100 видимых колонок; короткие строки сохраняют полное имя.

  • 3M 1A 1D 1R 2? 1!

    Состояние рабочего дерева, сгруппированное по кодам в стиле VS Code: M — modified, A — added/staged, D — deleted, R — renamed, ? — untracked. Всё приглушённым. ! — unmerged conflict, выводится отдельно красным, потому что это единственное, что реально блокирует коммит. Пустые группы скрыты — чистый репозиторий не показывает ничего.

  • ↑2 push / ↓1 pull

    Локальная ветка опережает или отстаёт от origin/<branch> — надо ли пушить или подтянуть изменения.

  • ⚠ md drift

    CLAUDE.mdAGENTS.mdGEMINI.md разъехались. Я использую и Claude Code, и Codex, и Gemini — у них разные главные контекст-файлы, и этот сегмент загорается, когда они рассинхронились.

  • ██░░░ 480k/1M

    Контекстное окно. Бар из 5 ячеек с точностью до полублока (█▌░, ~10% на шаг). Когда Claude Code отдаёт абсолютные счётчики, бар считается как total_input_tokens / context_window_size, а к сегменту добавляются сырые числа (например 480k/1M). Когда доступен только remaining_percentage, бар откатывается на 100 − remaining.

  • cache 87% ↓75k +360 1h:42m

    Состояние prompt cache. Счётчики read/write/input берутся из stdin context_window.current_usage; транскрипт сессии даёт только TTL-корзину (1h / 5m) и время последнего касания для отсчёта. Hit ratio = read / (input + write + read): ≥90% — жирный зелёный, ≥75% — зелёный, ≥50% — жёлтый, ниже — оранжевый, 0% — жирный красный при полном промахе или инвалидации. — токены, прочитанные из кэша, + или — записанные. После /compact показывается cache:reset, пока stdin current_usage пуст, но транскрипт ещё помнит прошлую активность кэша.

  • 5h:35%(2h15m)

    Использование 5-часового rate-лимита + обратный отсчёт до сброса (Xh Ym / Mm).

  • 7d:42%(4d)

    Использование 7-дневного rate-лимита + отсчёт до сброса. Грубый формат: Nd, пока остаётся ≥ 2 дней; 1dXh в последний день (ровно на 1 дне рендерится как 24h, чтобы единица не врала); Xh Ym / Mm меньше чем за день.

Цвета показывают уровень важности: норм / внимание / опасно

Что значат цвета и пороги

Контекстный бар и rate-лимиты используют одну цветовую шкалу

  • < 50% — всё спокойно
  • 50–65% — yellow, можно начинать поглядывать
  • 65–80% — orange, скоро упрёшься
  • ≥ 80% — red и 💀

У контекстного бара есть ещё одно правило — по абсолютным токенам: как только total_input_tokens переваливает за 250k, pink принудительно повышается до yellow, независимо от процентной шкалы. 250k — это практический обрыв «уже много»: качество вывода модели деградирует, и где-то там включается длинноконтекстный тариф Anthropic, — так что сессия с 1M-контекстом на 250k/1M (использовано 25%) не должна рендериться уютным pink.

Все подробности — в GitHub

Установка, как это остаётся быстрым, опциональные хуки синхронизации CLAUDE.md / AGENTS.md / GEMINI.md и кастомизация — всё это подробно расписано в репозитории. Один файл, ~370 строк Node.js без зависимостей, лицензия MIT.

ilia-pluzhnikov/claude-code-statusline 70 Один файл, ~370 строк Node.js без зависимостей. Исходник, README и опциональные хуки синхронизации. PR'ы и форки приветствуются. Открыть →

Хочешь поглубже разобраться в Claude Code, контексте и агентах? Раз в месяц я беру 10 человек на поток и провожу через 6 уровней — от установки до Context Engineering.

Занять место