0.4.11
14 · Руководство пользователя

14. Кастомизация

AstraCode можно настроить под себя: язык интерфейса, цветовая тема, хоткеи, какие пункты в статус-баре, какая модель «по умолчанию», и т.п. Большинство настроек — через TUI; для тонких — ~/.astracode/config.toml.

Язык интерфейса (RU / EN)

AstraCode полностью переведён на русский. Сообщения, описания команд, оверлеи, ошибки, описания скиллов.

Способ 1: команда /locale

text
/locale ru

или

text
/locale en

Ограничение: доступно только до первого сообщения в сессии. Если уже что-то отправили — /new, потом /locale ru.

Способ 2: через config

toml
# ~/.astracode/config.toml
[tui]
locale = "ru"

После — при следующем запуске интерфейс будет на русском.

Способ 3: через env

bash
ASTRACODE_LOCALE=ru astracode

Приоритет

  1. CLI override (-c / --config).
  2. ASTRACODE_LOCALE env.
  3. [tui].locale в config.
  4. Автодетект из LC_ALL / LC_MESSAGES / LANG (в этом порядке; русская локаль → ru).
  5. Дефолт: en.

Что переводится

  • Описания всех slash-команд.
  • Popup'ы и picker'ы.
  • Оверлеи (/diff, /help, /review — подсказки клавиш).
  • Warning'и при загрузке скиллов и хуков.
  • Ошибки /keymap, «Conversation interrupted», «Failed to apply patch».
  • Описания скиллов (если у скилла есть short_description_ru).

Что НЕ переводится

  • Ответы модели — это зависит от вашего промпта (пишите на русском — отвечает на русском).
  • Имена команд (/cd, /help остаются английскими).
  • Названия моделей и провайдеров.
  • Логи (для парсинга).

Цветовая тема

text
/theme

Picker всех доступных тем. Live-preview — пока курсор на теме, чат перерисовывается с её цветами.

Источники тем

  • Встроенные — захардкоженные в бинарь.
  • Пользовательские.tmTheme файлы в ~/.astracode/themes/.

Чтобы добавить свою тему:

bash
mkdir -p ~/.astracode/themes
cp my-theme.tmTheme ~/.astracode/themes/
# в TUI — /theme — она появится в списке

.tmTheme — формат TextMate (тот же, что в VSCode / Sublime). Найти готовые — на github (tmTheme).

Сохранение

toml
[tui]
theme = "monokai"

При следующем запуске — снова она.

Заголовок терминала (/title)

Что отображается в title bar окна:

text
/title

Multi-select picker. Space — переключить пункт, Enter — сохранить.

Доступно: - Имя приложения (AstraCode). - Имя проекта. - Текущая директория. - Заголовок треда. - Git-ветка. - Модель / модель + reasoning. - Статус (spinner / прогресс). - Контекст: используется/осталось. - Rate limits. - Токены. - Session ID. - Fast-mode флаг.

Пример конфига:

toml
[tui]
terminal_title = ["project-name", "thread-title", "model"]

В терминале увидите: myproject — Fix auth bug — gpt-5.

Строка состояния (/statusline)

Снизу TUI. Те же пункты, что у title:

text
/statusline

Multi-select. Хорошие комбинации:

Минимальный:

toml
status_line = ["model", "git-branch", "context-used"]

Подробный:

toml
status_line = ["app-name", "project-name", "git-branch", "model-with-reasoning", "context-used", "tokens"]

Live-preview работает: пока вы переключаете пункты, строка обновляется.

Хоткеи (/keymap)

text
/keymap

Откроется иерархический picker:

  1. Группа действий (Chat, App, Composer, Pager, ...).
  2. Действие внутри группы.
  3. Действие над привязкой: Set / Replace / Add alternate.
  4. Capture — нажмите новую комбинацию клавиш.

При сохранении проверяются конфликты. Если другая привязка уже использует эту клавишу — AstraCode предупредит.

Сохраняется в config.toml:

toml
[tui.keymap.global]
open_transcript = "ctrl-s"          # открыть transcript-overlay
copy = "ctrl-shift-c"                # копировать последний ответ

[tui.keymap.composer]
submit = "enter"                    # отправить черновик
queue = "tab"                       # поставить в очередь, пока идёт задача
history_search_previous = "ctrl-r"  # обратный поиск по истории промптов

[tui.keymap.pager]
jump_top = "home"                   # в начало
jump_bottom = "end"                 # в конец
close = "q"                         # закрыть overlay (также ctrl-c)

[tui.keymap.chat]
increase_reasoning_effort = "ctrl-["  # поднять reasoning effort
decrease_reasoning_effort = "ctrl-]"  # снизить reasoning effort

Каждая подсекция соответствует контексту (global/composer/pager/chat/list), а внутри допустимы только валидные имена действий (deny_unknown_fields: опечатки и несуществующие поля вроде global.quit или chat.interrupt приводят к ошибке парсинга). Прерывание хода (Ctrl-C) и выход (/exit, Ctrl-D) — зарезервированы и через keymap не переназначаются.

Сброс к дефолтам

Удалите секцию [tui.keymap] (или конкретные строки) из config.toml.

В TUI:

text
/keymap

→ выбрать действие → Reset to default (если опция есть в текущей версии).

Что нельзя переопределить

Некоторые комбинации перехватываются терминалом или OS: - Ctrl-Z (SIGTSTP). - Ctrl-D на пустой строке (EOF). - Ctrl-S / Ctrl-Q (flow control в некоторых терминалах).

AstraCode попытается их забиндить, но shell может отнять раньше.

Анимации

toml
[tui]
animations = true   # default true

Spinner, welcome screen, shimmer effects. Отключайте для: - Слабых машин (экономия CPU). - SSH через медленный канал. - Screen reader'ов.

Tooltips

toml
[tui]
show_tooltips = true   # default false (кажется)

Подсказки рядом с пунктами в popup'е.

Alternate screen buffer

toml
[tui]
alternate_screen = "auto"   # auto | always | never
  • always — TUI в alt-buffer (как vim, less). После выхода — терминал чистый, как был.
  • never — TUI пишет в основной буфер (видно в scrollback после выхода).
  • auto — alt-screen везде, кроме Zellij (там по умолчанию off).

Параметры модели

toml
model = "gpt-5"
model_provider = "openai"
 model_reasoning_effort = "medium"   # none | minimal | low | medium | high | xhigh
plan_mode_reasoning_effort = "high"
model_verbosity = "medium"          # для GPT-5
review_model = "claude-sonnet-4-6"  # отдельная для /review

См. 06-model-and-providers.md.

Параметры памяти

toml
[memories]
generate_memories = true
use_memories = true
extract_model = "gpt-5.4-mini"        # дефолт
consolidation_model = "gpt-5.4"       # дефолт

См. 12-memory.md.

Параметры sandbox / approvals

toml
sandbox_mode = "workspace-write"
approval_policy = "on-request"

[sandbox_workspace_write]
writable_roots = ["/home/me/work"]
network_access = false

См. 13-safety.md.

Несколько профилей конфигурации

Для машино-специфичных или временных настроек используйте CLI overrides (-c/--config, см. ниже) — они применяются на конкретный запуск и не затрагивают config.toml. Отдельного файла «локальных переопределений» (который грузился бы автоматически поверх config.toml) в AstraCode нет.

Если нужно держать разные наборы настроек под рукой — держите несколько config.toml рядом и указывайте нужный через -c, либо комментируйте блоки прямо в config.toml.

CLI overrides

Любую настройку можно переопределить флагом -c/--config при запуске:

bash
astracode -c model=claude-opus-4-8
astracode -c sandbox_mode=read-only
astracode -c 'tui.locale="en"'
astracode --config model=gpt-5

Для самых частых настроек есть отдельные флаги: --model/-m, --sandbox/-s (с короткими формами), а также --locale (только long, без короткой формы). Есть и другие: -a/--ask-for-approval, --search, --no-alt-screen, -C/--cd, --add-dir, --yolo (он же --dangerously-bypass-approvals-and-sandbox), --enable/--disable (фичи). Все остальные настройки переопределяются через -c key=value (как выше).

CLI имеет высший приоритет.

Просмотр текущей конфигурации

Внутри TUI:

text
/debug-config

Покажет все слои с источниками значений: - что из дефолта; - что из config.toml; - что из CLI / env.

Удобно для дебага «откуда взялась эта настройка».

CLI-эквивалента debug-config нет. Из командной строки доступны только диагностические подкоманды astracode debug (например, astracode debug models, astracode debug app-server, astracode debug prompt-input) — это не замена /debug-config, а отдельные отладочные утилиты.

Где живёт config

text
~/.astracode/
└── config.toml          ← основной

После правки — обычно нужно перезапустить AstraCode. Часть настроек применяются «на горячую» (через UI команды), часть — только на старте.

Сброс к дефолтам

bash
mv ~/.astracode/config.toml ~/.astracode/config.toml.bak
astracode

Запустится с дефолтами. Старый — рядом, можно вернуть.

Несколько устройств

Если работаете на нескольких машинах и хотите одинаковые настройки:

bash
# Скопировать config:
scp ~/.astracode/config.toml other-machine:~/.astracode/

# Но НЕ копируйте:
# - ~/.astracode/secrets/      — секреты не переносимы между OS
# - ~/.astracode/state_*.sqlite — БД сессий
# - ~/.astracode/installation_id — пусть будут разные

Секреты лучше ввести на новой машине заново через /model.

Best practices

Начинайте с дефолтов — они разумны.
CLI overrides (-c) для машино-специфичного и разовых запусков.
/debug-config когда непонятно почему что-то так работает.
Бэкап config.toml перед большими экспериментами.
Не лезьте в [ui_state] — AstraCode сам её обновляет.
Не редактируйте ~/.astracode/skills/.system/ — перезатрётся при обновлении.