TUI
Использование терминального пользовательского интерфейса OpenCode.
OpenCode предоставляет интерактивный терминальный интерфейс, или TUI, для работы над вашими проектами с LLM.
Запуск OpenCode открывает TUI для текущего каталога.
opencodeИли вы можете запустить его для конкретного рабочего каталога.
opencode /path/to/projectНаходясь в TUI, вы можете отправить ему сообщение.
Give me a quick summary of the codebase.Ссылки на файлы
Вы можете ссылаться на файлы в своих сообщениях с помощью @. Это выполняет нечёткий поиск файлов в текущем рабочем каталоге.
Совет: вы также можете использовать
@для ссылки на файлы в своих сообщениях.
How is auth handled in @packages/functions/src/api/index.ts?Содержимое файла добавляется в диалог автоматически.
Настроенные ссылки также появляются в автодополнении @. Введите @alias, чтобы добавить корень ссылки в качестве контекста, или введите @alias/, чтобы автодополнить файлы внутри этой ссылки.
Compare our setup with @docs/README.mdКоманды bash
Начните сообщение с !, чтобы выполнить команду оболочки.
!ls -laВывод команды добавляется в диалог как результат инструмента.
Команды
При использовании TUI OpenCode вы можете ввести /, а затем имя команды, чтобы быстро выполнить действия. Например:
/helpУ большинства команд также есть сочетания клавиш, использующие ctrl+x в качестве клавиши leader по умолчанию. Подробнее.
Вот все доступные slash-команды:
connect
Добавить провайдера в OpenCode. Позволяет выбрать из доступных провайдеров и добавить их API-ключи.
/connectcompact
Сжать текущую сессию. Псевдоним: /summarize
/compactПривязка клавиш: ctrl+x c
details
Переключить отображение деталей выполнения инструментов.
/detailseditor
Открыть внешний редактор для составления сообщений. Использует редактор, заданный в вашей переменной окружения EDITOR. Подробнее.
/editorПривязка клавиш: ctrl+x e
exit
Выйти из OpenCode. Псевдонимы: /quit, /q
/exitПривязка клавиш: ctrl+x q
export
Экспортировать текущий диалог в Markdown и открыть в редакторе по умолчанию. Использует редактор, заданный в вашей переменной окружения EDITOR. Подробнее.
/exportПривязка клавиш: ctrl+x x
help
Показать диалог справки.
/helpinit
Пошаговая настройка для создания или обновления AGENTS.md. Подробнее.
/initmodels
Список доступных моделей.
/modelsПривязка клавиш: ctrl+x m
new
Начать новую сессию. Псевдоним: /clear
/newПривязка клавиш: ctrl+x n
redo
Повторить ранее отменённое сообщение. Доступно только после использования /undo.
Совет: любые изменения файлов также будут восстановлены.
Внутренне для управления изменениями файлов используется Git. Поэтому ваш проект должен быть Git-репозиторием.
/redoПривязка клавиш: ctrl+x r
sessions
Список и переключение между сессиями. Псевдонимы: /resume, /continue
/sessionsПривязка клавиш: ctrl+x l
share
Поделиться текущей сессией. Подробнее.
/sharethemes
Список доступных тем.
/themesПривязка клавиш: ctrl+x t
thinking
Переключить видимость блоков мышления/рассуждений в диалоге. Когда включено, вы можете видеть процесс рассуждения модели для моделей, поддерживающих расширенное мышление.
Примечание: эта команда управляет только тем, отображаются ли блоки мышления — она не включает и не отключает возможности рассуждения модели. Чтобы переключить фактические возможности рассуждения, используйте
ctrl+tдля циклического перебора вариантов модели.
/thinkingundo
Отменить последнее сообщение в диалоге. Удаляет самое последнее сообщение пользователя, все последующие ответы и любые изменения файлов.
Совет: любые сделанные изменения файлов также будут отменены.
Внутренне для управления изменениями файлов используется Git. Поэтому ваш проект должен быть Git-репозиторием.
/undoПривязка клавиш: ctrl+x u
unshare
Отменить публикацию текущей сессии. Подробнее.
/unshareНастройка редактора
Команды /editor и /export используют редактор, указанный в вашей переменной окружения EDITOR.
Linux/macOS
# Example for nano or vim
export EDITOR=nano
export EDITOR=vim
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
export EDITOR="code --wait"Чтобы сделать это постоянным, добавьте это в профиль вашей оболочки:
~/.bashrc, ~/.zshrc и т. д.
Windows (CMD)
set EDITOR=notepad
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
set EDITOR=code --waitЧтобы сделать это постоянным, используйте System Properties > Environment Variables.
Windows (PowerShell)
$env:EDITOR = "notepad"
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
$env:EDITOR = "code --wait"Чтобы сделать это постоянным, добавьте это в ваш профиль PowerShell.
Популярные варианты редакторов включают:
code— Visual Studio Codecursor— Cursorwindsurf— Windsurfnvim— редактор Neovimvim— редактор Vimnano— редактор Nanonotepad— Windows Notepadsubl— Sublime Text
Примечание: некоторые редакторы, такие как VS Code, нужно запускать с флагом
--wait.
Некоторым редакторам нужны аргументы командной строки для запуска в блокирующем режиме. Флаг --wait заставляет процесс редактора блокироваться до закрытия.
Конфигурация
Вы можете настроить поведение TUI через tui.json (или tui.jsonc).
{
"$schema": "https://opencode.ai/tui.json",
"theme": "opencode",
"leader_timeout": 2000,
"keybinds": {
"leader": "ctrl+x",
"command_list": "ctrl+p"
},
"scroll_speed": 3,
"scroll_acceleration": {
"enabled": false
},
"diff_style": "auto",
"mouse": true,
"attention": {
"enabled": true,
"notifications": true,
"sound": true,
"volume": 0.4,
"sound_pack": "opencode.default",
"sounds": {
"error": "./sounds/error.mp3"
}
}
}Это отдельно от opencode.json, который настраивает поведение сервера/среды выполнения.
keybinds объединяется со встроенными значениями по умолчанию, поэтому вам нужно настроить только те сочетания клавиш, которые вы хотите изменить.
Параметры
theme— задаёт тему вашего UI. Подробнее.keybinds— настраивает сочетания клавиш. Подробнее.leader_timeout— управляет тем, как долго OpenCode ждёт после клавиши leader. По умолчанию2000.scroll_acceleration.enabled— включить ускорение прокрутки в стиле macOS для плавной и естественной прокрутки. Когда включено, скорость прокрутки увеличивается при быстрых жестах прокрутки и остаётся точной для более медленных движений. Эта настройка имеет приоритет надscroll_speedи переопределяет её, когда включена.scroll_speed— управляет тем, насколько быстро TUI прокручивается при использовании команд прокрутки (минимум:0.001, поддерживает десятичные значения). По умолчанию3. Примечание: это игнорируется, еслиscroll_acceleration.enabledустановлен вtrue.diff_style— управляет отрисовкой diff."auto"адаптируется к ширине терминала,"stacked"всегда показывает одностолбцовую компоновку.mouse— включить или отключить захват мыши в TUI (по умолчанию:true). Когда отключено, сохраняется нативное поведение выделения/прокрутки мышью в терминале.attention— настраивает настольные уведомления и звуки TUI. По умолчанию отключено.
Используйте OPENCODE_TUI_CONFIG, чтобы загрузить пользовательский путь конфигурации TUI.
Attention
TUI может запрашивать внимание при вопросах, разрешениях, ошибках сессии и завершённых сессиях. Включите это с помощью attention.enabled; встроенные события воспроизводят звуки при срабатывании, а события, не относящиеся к субагентам, запрашивают настольные уведомления только когда терминал не в фокусе.
enabled— включить все уведомления и звуки attention. По умолчаниюfalse.notifications— разрешить настольные уведомления через терминал, когда attention включён. По умолчаниюtrue.sound— разрешить звуки attention, когда attention включён. По умолчаниюtrue.volume— громкость звука по умолчанию от0до1. По умолчанию0.4.sound_pack— ID звукового пакета для использования. По умолчаниюopencode.default.sounds— переопределить звуковые файлы дляdefault,question,permission,error,doneилиsubagent_done. Пути могут быть абсолютными, URLfile://или относительными кtui.json.
Кастомизация
Вы можете настроить различные аспекты представления TUI с помощью палитры команд (ctrl+p). Эти настройки сохраняются между перезапусками.
Отображение имени пользователя
Переключить, появляется ли ваше имя пользователя в сообщениях чата. Доступ к этому осуществляется через:
- Палитра команд: найдите «username» или «hide username»
- Настройка сохраняется автоматически и будет запомнена между сессиями TUI