Deepseek ArtifactsDeepseek Artifacts
Кастомизация терминала · /statusline в деталях

Настройка строки состояния Claude Code: скрипты и идеи

Больше, чем первая настройка: какой JSON получает ваш statusline-скрипт, какие поля стоит показывать — модель, токены, стоимость, контекст, git — идеи по цветам и компоновке и скрипт из сообщества, который можно просто забрать.

Коротко

  • /statusline напишет скрипт за вас. Назовите свою ОС, попросите глобальную область действия и отдельный файл .sh/.ps1, затем одобрите два файла: запись statusLine в ~/.claude/settings.json и скрипт, на который она указывает.
  • Скрипт читает один JSON-объект из stdin — model.display_name, workspace.current_dir, context_window.used_percentage, cost.total_cost_usd, rate_limits — и печатает то, что вы хотите видеть.
  • Поля запрашивайте нумерованным списком, контекстный бар красьте по порогам (зелёный ниже 50%, красный после 75%), токены округляйте до единиц K, а при тесноте переходите на несколько строк.
  • Или поставьте скрипт из сообщества: npx contextbricks даст модель, ветку и коммит git, счётчик токенов «кирпичиками» и предупреждение о недельном лимите — когда запускать /compact или /clear, решаете вы.

Claude Code's Hidden Status Line: Tokens, Model and Project, Your Way

Канал: 호두의 AI 분석실 (Waldo AI Lab)5:27

Открыть

ContextBricks: My Custom Claude Code Status Line

Скрипт сообщества: Jeremy Dawes6:17

Открыть

Status line — official documentation

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

Открыть

Факты на этой странице сверены с официальной документацией status line и двумя записями выше; упомянутые имена JSON-полей дословно совпадают с официальным справочником. Скриншоты — кадры из этих записей.

Скриншоты — кадры из туториалов 호두의 AI 분석실 и Jeremy Dawes (ContextBricks), используются с указанием авторства и на каждом шаге ссылаются на исходный таймкод.

Настройка строки состояния, шаг за шагом

Один раз правильно попросить /statusline

  1. 1

    Один промпт /statusline, где названы ОС, область и файл скрипта

    Запустите /statusline и сразу укажите три вещи: вашу систему (Mac, Linux, Windows или WSL), что строка должна быть настроена глобально, и что вам нужен отдельный файл .sh — .ps1 на Windows. Иначе агент настройки угадывает окружение и может промахнуться с шеллом, а скрипт уровня проекта появится лишь в одном репозитории. Промпт умещается в четыре строки — держите его в заметках для повторного использования.

    Word document with the exact Claude Code /statusline prompt asking to set up the status line globally with a separate ps1 or sh script file beside the VS Code editor
    Заготовленный промпт /statusline: ОС, глобально, отдельный файл скрипта — готов к вставке.Смотреть с 1:15
  2. 2

    Одобрите два файла, которые создаёт агент настройки

    Разрешите чтение и запись — и агент сообщит точно, что затронул: в ~/.claude/settings.json теперь лежит конфигурация statusLine, а скрипт вроде ~/.claude/statusline-command.sh генерирует содержимое строки. Логика живёт в отдельном файле — позже Claude правит скрипт, а не ваши настройки. Перезапустите Claude Code, чтобы строка появилась.

    Claude Code statusline-setup summary listing files created, a settings.json holding the statusLine configuration and statusline-command.sh that generates the status line content
    Созданные/обновлённые файлы: settings.json хранит запись statusLine, содержимое собирает скрипт.Смотреть с 3:20
  3. 3

    Прочитайте спецификацию строки по умолчанию, прежде чем расширять

    Сразу после установки строка показывает текущий каталог, имя модели вроде [Claude Opus 4.5], стиль вывода, если он не стандартный, режим vim, ветку git, если вы в репозитории, и процент занятого окна контекста — например Claude-project [Claude Opus 4.5] (git:main) 12%. Конфигурация глобальная — действует в каждой сессии Claude Code на машине.

    Claude Code panel listing the default status line fields, current directory, model name, output style, vim mode, git branch and context window percentage, with the ordered add request below
    Список отображения по умолчанию и отрисованный пример сгенерированной строки.Смотреть с 2:45

Решить, что показывает строка

  1. 4

    Заказывайте нужные поля — по номерам

    Просите дополнения упорядоченным списком, и агент отвечает нумерованным порядком отображения. В этом прогоне вышло: имя модели, 20-символьный прогресс-бар, процент вроде 20%, токены как 40000/200000, git:main и напоследок каталог проекта — отрисовано как Claude 3.5 Sonnet [==== ] 20% 40000/200000 git:main Claude-project. Изменения попадают в файл скрипта; перезапустите Claude Code, чтобы увидеть их.

    Claude Code statusline-setup reply listing the display order from model name to project name with an example line reading Claude 3.5 Sonnet, progress bar, 20 percent, 40000/200000, git:main
    Порядок отображения 1-6 с примером строки, записанный в скрипт.Смотреть с 3:45
  2. 5

    Дайте каждому элементу осмысленный цвет

    Попросите цвет для каждого элемента — и скрипт получит ANSI-коды с порогами. Таблица этого прогона: модель — голубой; прогресс-бар — зелёный ниже 50%, жёлтый на 50–75%, красный выше 75%; процент — в цвет бара; токены — пурпурный; ветка — зелёный; проект — синий; разделители — серый. Красный оставьте контекстному бару: цвет тревоги приберегите для реального давления.

    Element and color table for a Claude Code status line, model name cyan, progress bar green under 50 percent, yellow from 50 to 75, red above 75, tokens magenta, git branch green
    Таблица цветов по элементам с порогами для прогресс-бара.Смотреть с 4:15
  3. 6

    Округлите токены до единиц K и сверьте с /context

    Сырые счётчики вроде 21373/200000 трудно пробегать глазами. Попросите единицы K — строка покажет 21k/200k, а агент уточнит, что значение округлено. Затем проверьте: запустите /context в той же сессии и сравните — итоги совпадают. Одна особенность из демо: после округления сессия на 22k и на 23K может выглядеть одинаково — для строки, которую читают мельком, этого достаточно.

    Claude Code statusline-setup formatting tokens in k units, changing 21373 of 200000 tokens to 21k/200k, beside the status line color table and a rendered example
    21373/200000 превращается в 21k/200k; /context подтверждает те же итоги.Смотреть с 4:30
  4. 7

    Запустите две сессии и убедитесь, что каждая строка следит за собой

    Откройте два терминала и запустите Claude Code в обоих. Каждая строка состояния докладывает о своей сессии: слева 11% и 22k/200k, справа 9% и 18k/200k, при этом /context в каждом окне сходится со своей строкой. Вот почему ветке и проекту место в строке — при нескольких открытых вкладках видно с одного взгляда, какая сессия тяжёлая, без /context повсюду.

    Two terminal panels side by side each running Claude Code with its own status line, one showing 11 percent and 22k/200k tokens, the other 9 percent and 18k/200k
    Две сессии Claude Code, каждая строка состояния докладывает о своём контексте.Смотреть с 5:15

Забрать скрипт и читать его каждый день

  1. 8

    Пропустите авторство: поставьте скрипт сообщества через npx

    Скрипт не обязательно писать самому. ContextBricks ставится одной командой — npx contextbricks —, записывает ~/.claude/statusline.sh и обновляет settings.json, предварительно сохранив резервную копию. Его список: имя модели, сообщение git repo:branch [commit], индикаторы незакоммиченных изменений, ahead и behind, строки, изменённые за сессию, потребление контекста в реальном времени «кирпичиками» и разбивка токенов. Удаление — ./uninstall.sh; напечатанный путь к резервной копии вернёт прежний скрипт.

    Terminal running npx contextbricks showing installation complete, statusline.sh installed under .claude, settings.json updated with a backup, and the list of what the status line will show
    npx contextbricks: скрипт установлен, settings.json обновлён, возможности перечислены.Смотреть с 0:20
  2. 9

    Читайте счётчик, пока агент работает

    Своя строка выстреливает в разгар сессии. В демо она показывает [Sonnet 4.5], +2381/-0 строк, затем контекстный бар на 18% (36k/200k tokens) с разбивкой sys:4k tools:16k mcp:2k mem:10k msg:4k и 163k свободно. Автор считает токены, разбирая транскрипт разговора, — это оценка, а не число из API, — и её, по его словам, хватает, чтобы решить, когда компактить или чистить.

    Claude Code writing planning documents with the ContextBricks status line showing Sonnet 4.5, lines added and removed, an 18 percent context bar at 36k of 200k tokens and 163k free
    36k/200k tokens с разбивкой по категориям, пока пишутся планировочные документы.Смотреть с 5:00
  3. 10

    Завершайте по сигналу: коммит лег, недельный лимит близко

    После git-коммита строка подхватывает ветку и коммит: contextbricks:master [ffe9523] Add comprehensive planning documentation. На правом краю появляется второй сигнал — Approaching weekly limit. С процентом контекста, меткой коммита и предупреждением о лимите вы видите, когда осознанно запустить /compact или /clear, вместо того чтобы авто-компакт прервал задачу на середине.

    Claude Code status line after a commit showing contextbricks master with commit ffe9523 message, a 19 percent context bar at 38k of 200k tokens and an Approaching weekly limit warning
    Ветка и коммит появляются в строке; предупреждение о недельном лимите — справа.Смотреть с 6:02

Что ваш скрипт может прочитать — поле за полем

Всё в строке происходит из одного JSON-объекта, который скрипт получает из stdin — на старте сессии и снова после каждого обновления: новое сообщение ассистента, завершённый /compact, смена режима разрешений. Вот официальные поля, достойные собственной строки.

  • 1Модель и effort — model.display_name как подпись (Sonnet 4.5, Opus 4.5) и effort.level, если хотите видеть рядом уровень рассуждений.
  • 2Место — workspace.current_dir — предпочтительное поле текущего каталога, workspace.project_dir — каталог запуска, а workspace.repo.owner/.name называют репозиторий, распознанный из origin-ремоута; ветку добавляйте через git branch --show-current.
  • 3Контекст — context_window.used_percentage и remaining_percentage уже посчитаны за вас, context_window.current_usage разделяет ввод, вывод, создание и чтение кэша, а context_window.context_window_size по умолчанию 200000 (1000000 в расширенном).
  • 4Деньги и время — cost.total_cost_usd для стоимости сессии (сбрасывается через /clear), cost.total_duration_ms и total_api_duration_ms — реальное время против ожидания API, плюс cost.total_lines_added и total_lines_removed.
  • 5Лимиты — rate_limits.five_hour и rate_limits.seven_day открывают used_percentage и resets_at на тарифах Pro и Max; в документации есть и объект prompt_cache с hit_ratio и expires_at для строк, знающих про кэш.

Практика из документации: каждый echo или print — отдельная строка, многострочные раскладки — это просто больше print; ANSI-коды раскрашивают их; ширину терминала подскажут переменные окружения COLUMNS и LINES; а каждое условно отсутствующее поле заслуживает jq-фолбэк вроде .context_window.used_percentage // 0 — чтобы строка пережила первые секунды сессии.

Когда строка ведёт себя плохо

Почти любая сломанная строка состояния сводится к пяти причинам — и каждое исправление на расстоянии одного промпта или одной команды.

  • 1Пустая строка или тире (--) — это нулевые поля до первого ответа API. Документация советует jq-фолбэки (// 0, // empty), а приглашение доверия к workspace нужно принять, иначе строка остаётся пустой.
  • 2Скрипт не запускается — сделайте его исполняемым через chmod +x, пишите в stdout, а не в stderr, и запустите claude --debug, чтобы увидеть его ошибки.
  • 3Числа выглядят неверно — автор ContextBricks рассказывает, что Claude несколько попыток подряд ошибался в подсчёте токенов. Попросите агента выгрузить сырой JSON в файл отладки и переписать скрипт по нему; затем сверьте строку с /context.
  • 4Путаница шеллов в Windows — Claude Code использует Git Bash, если он установлен, иначе PowerShell; прямые слэши в путях и скрипт в собственном файле .ps1.
  • 5Слишком много в одной строке — попросите несколько строк (путь и сведения о репозитории переезжают во вторую) или проредите: токены в единицах K, один цвет разделителя, а поля, на которые вы не смотрите, — долой.

А если хотите выйти совсем: /statusline delete (или /statusline clear) убирает функцию, uninstall.sh установщика из сообщества откатывает его, а резервная копия настроек, оставленная установщиком, вернёт прежний скрипт.

FAQ по строке состояния Claude Code

Смежные гайды