Кастомизация статус-бара в Claude Code через /statusline

statusline claude code

В CLI-инструменте Claude Code есть встроенная возможность гибкой настройки статусной строки (status line), расположенной в нижней части интерфейса. Команда /statusline позволяет выводить важную информацию о текущей сессии прямо во время работы и таким образом помочь вам экономить токены при работе с Claude Code.

Что это такое и зачем нужно?

Статусная строка в Claude Code — это интерактивная панель, которая запускает настроенный вами скрипт (на Bash, Python, Node.js и др.).

При каждом обновлении состояния (например, после ответа ассистента, переключения режима Vim или завершения сжатия контекста через /compact) Claude Code передает вашему скрипту актуальные JSON-данные через стандартный поток ввода (stdin). Скрипт обрабатывает этот JSON и выводит в терминал текстовую строку, которая и отображается внизу экрана.

Зачем это нужно:

  • Контроль лимитов и контекста: Вы можете в реальном времени видеть, какой процент контекстного окна уже занят и сколько токенов осталось.
  • Мониторинг расходов: Можно отслеживать ориентировочную стоимость текущей сессии в долларах США.
  • Интеграция с Git: Наглядное отображение текущей ветки, количества измененных или подготовленных (staged) файлов прямо в интерфейсе Claude Code.
  • Удобство навигации: Показ текущей рабочей директории, активной модели или включенного режима рассуждений (thinking).

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

  1. Автоматическая генерация: Необязательно писать скрипты парсинга вручную. Достаточно попросить Claude Code на человеческом языке настроить панель, и он сам создаст скрипт и пропишет настройки.
  2. Полная свобода кастомизации: Поскольку статус-бар работает на основе вашего скрипта, вы можете выводить туда абсолютно любые данные, включая системное время, погоду или статус сборки проекта.
  3. Поддержка интерактива: Вы можете использовать ANSI-цвета, выводить информацию в несколько строк, а также добавлять кликабельные гиперссылки (через escape-последовательности OSC 8).
  4. Локальный запуск: Работа скрипта статус-бара происходит локально на вашем компьютере и не расходует API-токены.

Как настроить статусную строку

Способ 1. Автоматический (рекомендуемый)

Самый простой способ — использовать команду /statusline с описанием того, что вы хотите видеть. Например:

/statusline show model name and context percentage with a progress bar

Claude Code самостоятельно сгенерирует скрипт в директории ~/.claude/ и обновит ваш файл конфигурации settings.json.

Способ 2. Вручную

Если вы хотите полностью контролировать логику, выполните следующие шаги:

1. Создайте скрипт (например, ~/.claude/statusline.sh), который принимает JSON из stdin, обрабатывает его (например, с помощью утилиты jq) и выводит нужную строку:

#!/bin/bash
# Читаем JSON из stdin
input=$(cat)

# Извлекаем нужные поля
MODEL=$(echo "$input" | jq -r '.model.display_name')
PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)

# Выводим результат
echo "[$MODEL] | Контекст: ${PCT}%"

2. Сделайте скрипт исполняемым:

chmod +x ~/.claude/statusline.sh

3. Пропишите путь к скрипту в глобальном конфигурационном файле ~/.claude/settings.json:

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}

Полезные лайфхаки и особенности

  • Обработка отсутствующих полей (fallback): Некоторые поля в JSON могут быть пустыми (null) или отсутствовать вовсе (например, rate_limits появляется только после первого запроса, а блок vim — при включенном режиме Vim). В скриптах рекомендуется использовать операторы по умолчанию (например, // 0 в jq или условные конструкции), чтобы избежать ошибок парсинга.
  • Автоматическое обновление по таймеру: По умолчанию статус-бар обновляется только при наступлении определенных событий (ответ модели, изменение режима и т.д.). Если вы выводите туда динамические данные (например, время или внешние статусы процессов), добавьте параметр "refreshInterval": 5 в settings.json, чтобы принудительно обновлять строку каждые N секунд.
  • Размер терминала: Обычные команды вроде tput cols внутри скрипта статус-бара работать не будут, так как Claude перехватывает вывод. Чтобы адаптировать строку под ширину экрана, считывайте переменные окружения $COLUMNS и $LINES, которые Claude Code передает в скрипт перед запуском.
  • Временное скрытие: Статус-бар автоматически скрывается во время отображения подсказок автодополнения, меню помощи или окон подтверждения прав (permissions), чтобы не загромождать интерфейс.
  • Отключение: Если статусная строка больше не нужна, её можно убрать командой /statusline clear (или /statusline delete), либо просто удалив блок "statusLine" из файла settings.json.

Метки:

/statusline, Claude Code

Почему обычный веб-поиск в ИИ больше не работает и как это исправить за одну команду на примере плагина last30days в Claude Code

В статье рассматривается инструмент (skill) last30days для Claude Code и других AI-агентов. Вы узнаете, как этот плагин решает проблему поверхностного веб-поиска и ресурсозатратного глубокого исследования (Deep Research), собирая актуальные отзывы, тренды и комментарии пользователей на Reddit, X (Twitter), YouTube и Hacker News за последние 30 дней.

Интеграция локального проекта Claude Code с репозиторием кода SourceCraft

Практическое руководство по интеграции существующего локального проекта с Git-хостингом SourceCraft. Разбираем пошаговый процесс создания репозитория в организации, генерацию SSH-ключей для устранения ошибок авторизации и настройку ИИ-ассистента Claude Code для фиксации изменений строго по вашему запросу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *