14. Кастомизация
AstraCode можно настроить под себя: язык интерфейса, цветовая тема, хоткеи, какие пункты в статус-баре, какая модель «по умолчанию», и т.п. Большинство настроек — через TUI; для тонких — ~/.astracode/config.toml.
Язык интерфейса (RU / EN)
AstraCode полностью переведён на русский. Сообщения, описания команд, оверлеи, ошибки, описания скиллов.
Способ 1: команда /locale
/locale ru
или
/locale en
Ограничение: доступно только до первого сообщения в сессии. Если уже что-то отправили — /new, потом /locale ru.
Способ 2: через config
# ~/.astracode/config.toml [tui] locale = "ru"
После — при следующем запуске интерфейс будет на русском.
Способ 3: через env
ASTRACODE_LOCALE=ru astracode
Приоритет
- CLI флаг (
--locale). ASTRACODE_LOCALEenv.[tui].localeв config.- Автодетект из
LANG/LC_MESSAGES(русская локаль → ru). - Дефолт:
en.
Что переводится
- Описания всех slash-команд.
- Popup'ы и picker'ы.
- Оверлеи (
/diff,/help,/review— подсказки клавиш). - Warning'и при загрузке скиллов и хуков.
- Ошибки
/keymap, «Conversation interrupted», «Failed to apply patch». - Описания скиллов (если у скилла есть
short_description_ru).
Что НЕ переводится
- Ответы модели — это зависит от вашего промпта (пишите на русском — отвечает на русском).
- Имена команд (
/cd,/helpостаются английскими). - Названия моделей и провайдеров.
- Логи (для парсинга).
Цветовая тема
/theme
Picker всех доступных тем. Live-preview — пока курсор на теме, чат перерисовывается с её цветами.
Источники тем
- Встроенные — захардкоженные в бинарь.
- Пользовательские —
.tmThemeфайлы в~/.astracode/themes/.
Чтобы добавить свою тему:
mkdir -p ~/.astracode/themes cp my-theme.tmTheme ~/.astracode/themes/ # в TUI — /theme — она появится в списке
.tmTheme — формат TextMate (тот же, что в VSCode / Sublime). Найти готовые — на github (tmTheme).
Сохранение
[tui] theme = "monokai"
При следующем запуске — снова она.
Заголовок терминала (/title)
Что отображается в title bar окна:
/title
Multi-select picker. Space — переключить пункт, Enter — сохранить.
Доступно:
- Имя приложения (AstraCode).
- Имя проекта.
- Текущая директория.
- Заголовок треда.
- Git-ветка.
- Модель / модель + reasoning.
- Статус (spinner / прогресс).
- Контекст: используется/осталось.
- Rate limits.
- Токены.
- Session ID.
- Fast-mode флаг.
Пример конфига:
[tui] terminal_title = ["project-name", "thread-title", "model"]
В терминале увидите: myproject — Fix auth bug — gpt-5.
Строка состояния (/statusline)
Снизу TUI. Те же пункты, что у title:
/statusline
Multi-select. Хорошие комбинации:
Минимальный:
status_line = ["model", "git-branch", "context-used"]
Подробный:
status_line = ["app-name", "project-name", "git-branch", "model-with-reasoning", "context-used", "tokens"]
Live-preview работает: пока вы переключаете пункты, строка обновляется.
Хоткеи (/keymap)
/keymap
Откроется иерархический picker:
- Группа действий (Chat, App, Composer, Pager, ...).
- Действие внутри группы.
- Действие над привязкой: Set / Replace / Add alternate.
- Capture — нажмите новую комбинацию клавиш.
При сохранении проверяются конфликты. Если другая привязка уже использует эту клавишу — диалог покажет, и попросит выбрать другую.
Формат клавиш
В config.toml хоткеи задаются строками:
| Что | Как написать |
|---|---|
| Одна клавиша | enter, tab, esc, space, a, Z, f1–f12 |
| Модификаторы | 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.
Пример конфига
[tui.keymap] # Переопределяются только настраиваемые действия. Часть клавиш зарезервирована и # не переназначается: ctrl-c (прервать / выйти), esc, а также символы / @ $ ! в строке ввода. # Контекст composer (строка ввода): composer.submit = "enter" composer.newline = "shift-enter" composer.queue = "tab" # поставить сообщение в очередь / автодополнение
Полный список контекстов, действий и зарезервированных клавиш — в технической документации: Хоткеи и keymap (dev-вики).
Сброс к дефолтам
Удалите секцию [tui.keymap] (или конкретные строки) из config.toml.
В TUI:
/keymap
→ выбрать действие → Reset to default (если опция есть в текущей версии).
Что нельзя переопределить
Некоторые комбинации перехватываются терминалом или OS:
- Ctrl-Z (SIGTSTP).
- Ctrl-D на пустой строке (EOF).
- Ctrl-S / Ctrl-Q (flow control в некоторых терминалах).
AstraCode попытается их забиндить, но shell может отнять раньше.
Анимации
[tui] animations = true # default true
Spinner, welcome screen, shimmer effects. Отключайте для: - Слабых машин (экономия CPU). - SSH через медленный канал. - Screen reader'ов.
Tooltips
[tui] show_tooltips = true # default false
Подсказки рядом с пунктами в popup'е.
Alternate screen buffer
[tui] alternate_screen = "auto" # auto | always | never
always— TUI в alt-buffer (как vim, less). После выхода — терминал чистый, как был.never— TUI пишет в основной буфер (видно в scrollback после выхода).auto— alt-screen везде, кроме Zellij (там по умолчанию off).
Параметры модели
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.
Параметры памяти
[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
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:
# ~/.astracode/config.local.toml model = "gpt-5-mini" # дешёвый по умолчанию
Загружается после config.toml, переопределяет. Удобно для:
- Локальных тестов.
- Машино-специфичных настроек (writable_roots).
- Временных изменений без коммита.
CLI overrides
Любую настройку можно переопределить флагом при запуске:
astracode -c model=claude-opus-4-8 astracode -c sandbox_mode=read-only astracode -c 'tui.locale="en"'
Или короткими алиасами:
astracode --model gpt-5 --sandbox workspace-write --locale ru
CLI имеет высший приоритет.
Просмотр текущей конфигурации
В TUI:
/debug-config
Это slash-команда внутри TUI; отдельной CLI-команды astracode debug-config нет.
Покажет все слои с источниками значений:
- что из дефолта;
- что из config.toml;
- что из config.local.toml;
- что из CLI / env.
Удобно для дебага «откуда взялась эта настройка».
Где живёт config
~/.astracode/ ├── config.toml ← основной ├── config.local.toml ← локальные переопределения (опционально)
После правки — обычно нужно перезапустить AstraCode. Часть настроек применяются «на горячую» (через UI команды), часть — только на старте.
Сброс к дефолтам
mv ~/.astracode/config.toml ~/.astracode/config.toml.bak astracode
Запустится с дефолтами. Старый — рядом, можно вернуть.
Несколько устройств
Если работаете на нескольких машинах и хотите одинаковые настройки:
# Скопировать 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/ — перезатрётся при обновлении.