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 флаг (--locale).
  2. ASTRACODE_LOCALE env.
  3. [tui].locale в config.
  4. Автодетект из LANG / LC_MESSAGES (русская локаль → 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 — нажмите новую комбинацию клавиш.

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

Формат клавиш

В config.toml хоткеи задаются строками:

Что Как написать
Одна клавиша enter, tab, esc, space, a, Z, f1f12
Модификаторы ctrl-, alt-, shift- (модификатор cmd-/meta- не поддерживается)
Последовательность через пробел: ctrl-x ctrl-c

Примеры: - enter — Enter. - ctrl-x ctrl-c — последовательность из двух нажатий. - alt-shift-l — Alt + Shift + L.

Контексты

Каждое действие живёт в контексте. Контекст определяет, когда действие активно:

Контекст Где
global Везде
chat Основной экран (фокус не на composer'е)
composer Поле ввода
editor Inline-редактор (rename и т.п.)
approval Approval-диалог
list Popup'ы, picker'ы
pager Pager-оверлеи

Контекстная привязка приоритетнее global.

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

toml
[tui.keymap]
# Переопределяются только настраиваемые действия. Часть клавиш зарезервирована и
# не переназначается: ctrl-c (прервать / выйти), esc, а также символы / @ $ ! в строке ввода.

# Контекст composer (строка ввода):
composer.submit = "enter"
composer.newline = "shift-enter"
composer.queue = "tab"          # поставить сообщение в очередь / автодополнение

Полный список контекстов, действий и зарезервированных клавиш — в технической документации: Хоткеи и keymap (dev-вики).

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

Удалите секцию [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 | low | medium | high
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 = "claude-haiku-4-5"
consolidation_model = "claude-sonnet-4-6"

Примечание: настройки [memories] действуют только при включённом мастер-флаге функции. Добавьте также: toml [features] memories = true Иначе секция [memories] игнорируется.

См. 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.

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

config.local.toml — локальные переопределения, не идут в VCS:

toml
# ~/.astracode/config.local.toml
model = "gpt-5-mini"   # дешёвый по умолчанию

Загружается после config.toml, переопределяет. Удобно для: - Локальных тестов. - Машино-специфичных настроек (writable_roots). - Временных изменений без коммита.

CLI overrides

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

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

Или короткими алиасами:

bash
astracode --model gpt-5 --sandbox workspace-write --locale ru

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

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

В TUI:

text
/debug-config

Это slash-команда внутри TUI; отдельной CLI-команды astracode debug-config нет.

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

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

Где живёт config

text
~/.astracode/
├── config.toml          ← основной
├── config.local.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

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