Deepseek ArtifactsDeepseek Artifacts
Claude Code CLI · 2026

Статус-строка Claude Code: настройка через /statusline (2026)

Превратите низ терминала в живую панель — модель, индикатор окна контекста, ветка git, папка и расходы. Двенадцать иллюстрированных шагов от встроенной команды /statusline до аккуратной цветной полосы, плюс исправления на случай, если строка не показывается.

Коротко

  • /statusline встроен в Claude Code. Запустите его, опишите желаемую полосу одним предложением — и агент statusline-setup напишет скрипт и пропишет блок statusLine в ~/.claude/settings.json за вас.
  • На Windows агент предложит три пути: конвертировать ваш профиль PowerShell, указать конфиг WSL или Git Bash либо собрать свежий дефолт с пользователем, каталогом, моделью и использованием контекста.
  • Скрипт читает один JSON-документ из stdin — model.display_name, workspace.current_dir, context_window.used_percentage, cost.total_cost_usd и другие поля. Что выведет echo, то и станет полосой; ANSI-цвета и несколько строк — пожалуйста.
  • Всё считается локально и не тратит токены. Обновления срабатывают по событиям сессии (или каждые N секунд с refreshInterval), а /statusline clear сносит всё, если нужен чистый лист.

How to Set Up a Custom Status Line in Claude Code CLI to Track API Costs and Context Usage (2026)

Канал:ProgrammingKnowledge23:32

Смотреть

Claude Code最該裝的不是Skill,是這個腳本|彩色進度條、費用、git 分支一眼看完

Канал:YAHA學堂8:44

Смотреть

Your Claude Code Terminal Should Look Like This (Status Line Setup)

Канал:Leon van Zyl9:02

Смотреть

How to Add a Custom Status Line in Claude Code on Windows 11 (Project-Level Setup)

Канал:Devtamin7:27

Смотреть

Status line — Claude Code documentation

Документация:code.claude.com

Смотреть

Шаги 1–4 записаны в Windows PowerShell, шаги 5–12 на macOS; статичные кадры взяты только из чистых записей экрана — кадры с веб-камерой автора или вшитыми оверлеями не использовались.

Советы по настройке — назвать операционную систему, держать скрипт глобальным и в отдельном файле, требование jq и приём с debug-файлом — из двух дополнительных видео, указанных выше. Имена полей и поведение обновления в углублённых разделах следуют официальной документации строки состояния.

Разбор /statusline — 12 иллюстрированных шагов

Запускаем /statusline и поручаем подключение Claude

  1. 1

    Запустите Claude Code в терминале

    Запустите claude в PowerShell, терминале или любой другой оболочке. Свежая сессия показывает только приветственный бокс и пустой промпт — полосы под строкой ввода, где будет жить статус-строка, не существует, пока в ~/.claude/settings.json не появится блок statusLine.

    Claude Code v2.1.83 welcome box open in a Windows PowerShell terminal after typing claude, with an empty input prompt and no status line beneath it
    Свежая сессия Claude Code v2.1.83 в Windows PowerShell — приветственный бокс, пустой промпт, строки состояния ещё нет.Смотреть на 0:22
  2. 2

    Введите команду /statusline

    Меню слэш-команд описывает её прямо: настроить UI строки состояния Claude Code. Нажмите Enter. Встроенная команда понимает естественный язык, так что скрипт вручную писать не придётся — хотя править то, что она сгенерирует, никто не запрещает.

    Slash command /statusline typed into Claude Code with the autocomplete menu labelling it as the way to set up Claude Code’s status line UI
    Автодополнение представляет /statusline как команду, настраивающую UI строки состояния Claude Code.Смотреть на 0:32
  3. 3

    Ответьте на вопросы агента настройки

    Эстафету принимает отдельный агент statusline-setup. На Windows он сообщит, что стандартный конфиг оболочки не найден, и предложит три пути: вставить PS1-профиль для конвертации, указать конфиг WSL или Git Bash либо взять свежий дефолт с пользователем, каталогом, моделью и использованием контекста. Все три заканчиваются одним и тем же блоком в settings.json.

    statusline-setup agent on Windows reporting it could not find standard shell config files and offering to paste a PS1, point at a WSL or Git Bash config, or set up a fresh statusline showing user, directory, model and context usage
    Три варианта агента для Windows: конвертировать PS1, указать свой конфиг или начать с разумного дефолта.Смотреть на 1:20
  4. 4

    Проверьте записанные конфиг и скрипт

    Закончив, агент печатает превью полосы — имя пользователя, каталог, ветка git, модель, процент контекста — и точно называет места: конфиг в ~/.claude/settings.json, скрипт в ~/.claude/statusline-command.sh. На macOS и Linux тот же поток может вместо запуска с нуля конвертировать ваш существующий промпт из .zshrc или .bashrc.

    Claude Code confirming your status line is configured with a preview reading hardik, ~/Dev/project, main, Claude Opus 4.6 and ctx:42%, and noting the config is in ~/.claude/settings.json with the script at ~/.claude/statusline-command.sh
    Настройка подтверждена: превью hardik | ~/Dev/project | main | Claude Opus 4.6 | ctx:42% и оба пути к файлам.Смотреть на 3:06

Описываем желаемую полосу простыми словами

  1. 5

    Попросите именно ту полосу, что нужна

    /statusline можно перезапускать сколько угодно и описывать полосу одним предложением: покажи имя модели и процент контекста с прогресс-баром. Запросы на других языках тоже работают — команда по сути промпт для агента. Каждый новый запрос перезаписывает тот же скрипт, а не наслаивает дубликаты.

    Natural language request /statusline show model name and context percentage with a progress bar submitted to Claude Code, which replies Noodling while it works
    Одна фраза на человеческом языке — имя модели плюс прогресс-бар процента контекста — вот и весь интерфейс.Смотреть на 1:07
  2. 6

    Наблюдайте за работой инструмента statusline-setup

    Claude Code вызывает встроенный инструмент statusline-setup: он читает текущие ~/.claude/settings.json и скрипт строки состояния, затем переписывает их. Собственная карточка Claude резюмирует функцию: настроить пользовательскую панель статуса для наблюдения за окном контекста, расходами и git-статусом.

    Built-in statusline-setup tool configuring the status line while a white Configuration tooltip reads Customize your status line to monitor context window usage, costs and git status in Claude Code
    Инструмент statusline-setup за работой: читает настройки и скрипт, на ховере — описание функции.Смотреть на 1:12
  3. 7

    Познакомьтесь с новой полосой

    По завершении агент повторяет дизайн — имя модели жирным бирюзовым, двадцатисимвольный бар контекста, зелёный до 49%, жёлтый с 50% и красный с 80% — а полоса уже живёт внизу терминала. Перезапуск не нужен; просите правки в той же сессии.

    Claude Code summarising the freshly configured status line — a bold cyan model name and a 20 character context bar green to 49 percent, yellow to 79 and red above — above the live Opus 4.6 bar reading 2 percent
    Резюме агента над живой полосой Opus 4.6 (1M context) с показателем 2% контекста.Смотреть на 1:27

Читаем сгенерированный скрипт

  1. 8

    По stdin приходит один JSON-документ

    Откройте сгенерированный скрипт — ~/.claude/statusline.sh на macOS и Linux или вариант .ps1 / statusline-command.sh на Windows. При каждом обновлении Claude Code передаёт JSON-снимок сессии в стандартный ввод скрипта. Сгенерированный Bash парсит его через jq: .model.display_name, .workspace.current_dir, .cost.total_cost_usd, .cost.total_duration_ms и .context_window.used_percentage.

    Top of statusline.sh parsing the stdin JSON with jq into MODEL, DIR, COST and PCT variables, then choosing BAR_COLOR red at 90 percent context used and yellow at 70
    Парсер: пять jq-чтений из stdin, затем BAR_COLOR выбирается по порогам контекста 90% и 70%.Смотреть на 5:46
  2. 9

    Что выведете через echo — то и будет полоса

    Хвост скрипта — чистая презентация: расходы форматированы printf, миллисекунды превращены в минуты и секунды, по одному echo на строку статус-полосы — модель с папкой и веткой git в первой, бар, процент, расходы и таймер во второй. ANSI-цвета приветствуются, и каждый лишний echo просто добавляет строку.

    Lower half of statusline.sh turning DURATION_MS into minutes and seconds, appending the git branch from git rev-parse, and echoing the model row plus the bar, percentage, cost and elapsed time row
    Две строки echo — две строки полосы: модель с каталогом и веткой, затем бар, процент, расходы и таймер.Смотреть на 6:13
  3. 10

    Тем же способом добавьте git

    Данные git — в одном вызове subprocess: git rev-parse --git-dir определяет репозиторий, git branch --show-current даёт имя ветки, git diff --cached --numstat и --numstat считают staged и изменённые файлы. Сгенерированные примеры красят staged-счётчик зелёным, изменённый — жёлтым — дешёвая страховка, если держите несколько сессий Claude Code на разных ветках.

    Close-up of GIT_STATUS logic colouring staged counts green and modified counts yellow with ANSI escape codes next to the BRANCH detection in a Claude Code statusline script
    GIT_STATUS собран из счётчиков staged и modified, окрашен в зелёный и жёлтый ANSI-кодами.Смотреть на 5:01

Блок — ваш: очистка, перезапись, несколько строк

  1. 11

    Всё висит на одном блоке settings.json

    Загляните в ~/.claude/settings.json — вся функция умещается в одном объекте statusLine: type "command" плюс команда для запуска — в этой конфигурации bash ~/.claude/statusline-command.sh. Запустите /statusline clear, и агент удалит блок; опишите новую полосу — он перепишет его. Сработает и проектный .claude/settings.json, если нужна полоса на отдельный репозиторий.

    Diff of ~/.claude/settings.json deleting the statusLine block with type command pointing at bash /Users/matt/.claude/statusline-command.sh after /statusline cleared the config
    Дифф после /statusline clear: блок statusLine покидает settings.json, готовый быть переписанным.Смотреть на 1:41
  2. 12

    Дальше — больше: несколько строк с расходами, длительностью и ссылками на репозиторий

    Строки складываются бесплатно, поэтому многолинейный пример из официальной документации печатает кликабельную ссылку на репозиторий через OSC 8 escape-последовательности, а второй строкой — бар контекста, расходы сессии в формате printf '$%.2f' и прошедшие минуты с секундами. Пороги, проценты rate-limit, режим vim — просите любую комбинацию и итерируйте, пока панель не устроит.

    statusline.sh snippet building a clickable repo link with printf OSC 8 escapes and printing line one with model and branch plus line two with context bar, cost and duration
    Пример с комментариями: OSC 8-ссылка на репозиторий в первой строке; бар, расходы и длительность во второй.Смотреть на 7:31

stdin JSON, который получает ваш скрипт строки состояния

Claude Code вызывает скрипт, передавая JSON-снимок сессии через стандартный ввод. Вот поля, которые стоит знать, по официальной документации — упомяните любое в предложении для /statusline, и агент подключит их сам:

  • 1Базовое о сессии — session_id, transcript_path, cwd и version, плюс session_name и prompt_id после отправки первого промпта.
  • 2model.id и model.display_name — активная модель Claude, с которой полоса обычно и начинается.
  • 3workspace.current_dir, workspace.project_dir и workspace.added_dirs, плюс workspace.git_worktree и repo.owner / repo.name, если папка принадлежит хостинговому репозиторию.
  • 4context_window.used_percentage и remaining_percentage — used считает входные токены, создание и чтение кэша, но не выходные.
  • 5context_window.current_usage раскладывает это на input_tokens, output_tokens, cache_creation_input_tokens и cache_read_input_tokens; до первого вызова API и сразу после /compact там null.
  • 6cost.total_cost_usd, cost.total_duration_ms, cost.total_api_duration_ms, cost.total_lines_added и cost.total_lines_removed — для полос в стиле «траты и темп».
  • 7На планах Pro/Max — rate_limits.five_hour и rate_limits.seven_day с used_percentage и resets_at (для шлюзовых подключений появляется пара spend_limit) — каждое окно может отсутствовать независимо, предусмотрите проверку.
  • 8Бонусом — exceeds_200k_tokens, fast_mode, effort.level, thinking.enabled, output_style.name, vim.mode, agent.name, pr.number / pr.url / pr.review_state и семейство worktree.*.

Имена полей следуют официальной документации строки состояния; там же готовые скрипты для Bash, Python и Node.js, вариант для Windows PowerShell и рецепт кэширования git для медленных машин.

Устранение неполадок: строка не видна, врёт или отстаёт

Почти любой сбой статус-строки сводится к одной из пяти причин. Все они чинятся в той же сессии — переустановка не нужна.

  1. 1Не показывается вовсе — сначала проверьте ~/.claude/settings.json на сломанный JSON; в одной из записей Windows-настройка молчала, пока в пути команды не поправили лишний символ и не перезапустили сессию. Полоса также прячется, пока открыт запрос разрешений, и скрипты не запустятся, пока workspace не доверен.
  2. 2Пустая полоса без ошибок — скрипт завершился с ненулевым кодом или ничего не вывел. Запустите вручную, например echo '{"model":{"display_name":"Opus"}}' | bash ~/.claude/statusline.sh, и прочитайте вывод; claude --debug тоже пишет stderr скрипта в лог.
  3. 3Работает только в одном проекте — блок попал в проектный .claude/settings.json вместо домашнего каталога. Перенесите в ~/.claude/settings.json, и полоса появится в каждом проекте.
  4. 4Цифры выглядят неверно — скорее всего, скрипт читает не то поле. Попросите Claude сбросить сырой stdin JSON в debug-файл, прочитайте его и поправьте поле; записанная macOS-сессия починила свой процент ровно так.
  5. 5Скрипт есть, но на macOS или Linux ничего не рисует — не установлен jq. Поставьте (brew install jq, sudo apt install jq или Windows-эквивалент), затем попросите Claude обновить строку состояния, чтобы скрипт сгенерировался с её учётом.

Как часто обновляется полоса (и чего это стоит)

Скрипт запускается один раз в начале сессии, затем при каждом событии: новое сообщение ассистента, завершение /compact, смена режима разрешений или vim-режима, правка самой команды, сброс окна rate-limit или истечение тёплого кэша промптов. Обновления дебаунсятся на 300 миллисекунд, а запущенный прогон отменяется, если пришёл более новый.

Обновления событийные, поэтому в простое — скажем, пока ждёте долгий прогон субагента — полоса может затихнуть. Добавьте refreshInterval в блок statusLine, чтобы перезапускать скрипт каждые N секунд для данных, привязанных ко времени. Всё это не касается API: скрипт считается локально и не тратит токены, а каждая лишняя строка echo рисуется отдельной строкой.

Для любителей покрутить есть ещё две ручки: hideVimModeIndicator прячет встроенный текст -- INSERT --, если скрипт сам рисует vim-режим, а отдельная настройка subagentStatusLine даёт субагентам собственные строки в панели агента.

FAQ по статус-строке Claude Code

Похожие гайды