TUI
Использование TUI opencode.
opencode предоставляет интерактивный terminal интерфейс или 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?Содержимое файла добавляется в беседу автоматически.
Bash-команды
Начните сообщение с !, чтобы запустить shell-команду.
!ls -laВывод команды добавляется в диалог как результат работы инструмента.
Команды
При использовании opencode TUI вы можете ввести /, а затем имя команды, чтобы быстро выполнить действия. Например:
/helpБольшинство команд также имеют привязку клавиш с использованием ctrl+x в качестве ведущей клавиши, где ctrl+x — это ведущая клавиша по умолчанию. Подробнее .
Вот все доступные слэш-команды:
connect
Добавьте провайдера в opencode. Позволяет выбирать из доступных поставщиков и добавлять их ключи API.
/connectcompact
Сжать текущий сеанс. Псевдоним: /summarize
/compactПривязка клавиш: ctrl+x c
details
Переключить детали выполнения инструмента.
/detailsПривязка клавиш: ctrl+x d
editor
Открыть внешний редактор для составления сообщений. Использует редактор, установленный в переменной среды EDITOR. Подробнее .
/editorПривязка клавиш: ctrl+x e
exit
Выйдите из opencode. Псевдонимы: /quit, /q
/exitПривязка клавиш: ctrl+x q
export
Экспортируйте текущий разговор в Markdown и откройте его в редакторе по умолчанию. Использует редактор, установленный в переменной среды EDITOR. Подробнее .
/exportПривязка клавиш: ctrl+x x
help
Показать диалоговое окно помощи.
/helpПривязка клавиш: ctrl+x h
init
Создайте или обновите файл AGENTS.md. Подробнее .
/initПривязка клавиш: ctrl+x i
models
Перечислите доступные модели.
/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
Поделиться текущим сеансом. Подробнее.
/shareПривязка клавиш: ctrl+x s
theme
Список доступных тем.
/themeПривязка клавиш: ctrl+x t
thinking
Переключить видимость блоков мышления/рассуждения в разговоре. Если этот параметр включен, вы можете увидеть процесс рассуждения модели для моделей, поддерживающих расширенное мышление.
/thinkingundo
Отменить последнее сообщение в разговоре. Удаляет самое последнее сообщение пользователя, все последующие ответы и любые изменения файлов.
Внутри это использует Git для управления изменениями файлов. Итак, ваш проект ** должен быть репозиторием Git**.
/undoПривязка клавиш: ctrl+x u
unshare
Отменить общий доступ к текущему сеансу. Подробнее.
/unshareНастройка редактора
Команды /editor и /export используют редактор, указанный в переменной среды EDITOR.
# Example for nano or vimexport EDITOR=nanoexport EDITOR=vim
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.# include --waitexport EDITOR="code --wait"Чтобы сделать его постоянным, добавьте это в свой профиль shell;
~/.bashrc, ~/.zshrc и т. д.
set EDITOR=notepad
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.# include --waitset EDITOR=code --waitЧтобы сделать его постоянным, используйте Свойства системы > Среда Переменные.
$env:EDITOR = "notepad"
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.# include --wait$env:EDITOR = "code --wait"Чтобы сделать его постоянным, добавьте его в свой профиль PowerShell.
Популярные варианты редактора включают в себя:
code— VS Codecursor— Cursorwindsurf- Windsurfnvim- Редактор Neovimvim— редактор Vimnano— Нано-редакторnotepad— Блокнот Windowssubl— Sublime Text
Некоторым редакторам для работы в режиме блокировки необходимы CLI-аргументы. Флаг --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— Устанавливает тему пользовательского интерфейса. Подробнее.keybinds— Настраивает сочетания клавиш. Подробнее.leader_timeout— Управляет тем, как долго OpenCode ждёт после нажатия leader key. По умолчанию2000.scroll_acceleration.enabled— включите ускорение прокрутки в стиле macOS для плавной и естественной прокрутки. Если этот параметр включен, скорость прокрутки увеличивается при быстрой прокрутке и остается точной при более медленных движениях. Этот параметр имеет приоритет надscroll_speedи переопределяет его, если он включен.scroll_speed— контролирует скорость прокрутки TUI при использовании команд прокрутки (минимум:0.001, поддерживает десятичные значения). По умолчанию3. Примечание. Это игнорируется, если дляscroll_acceleration.enabledустановлено значениеtrue.diff_style— Управляет отображением различий."auto"адаптируется к ширине терминала,"stacked"всегда показывает одноколоночный макет.mouse— Включает или отключает захват мыши в TUI (по умолчаниюtrue). Если отключено, сохраняется нативное поведение терминала для выделения мышью и прокрутки.attention— Настраивает уведомления рабочего стола и звуки TUI. По умолчанию отключено.
Используйте OPENCODE_TUI_CONFIG для загрузки пользовательского пути конфигурации TUI.
Attention
Attention позволяет TUI уведомлять вас, когда OpenCode ждёт ответа, требует подтверждения разрешения, сообщает об ошибке сеанса или завершает сеанс. Включите это с помощью attention.enabled; встроенные события воспроизводят звук при срабатывании. Уведомления рабочего стола отправляются только тогда, когда окно терминала не в фокусе, и не используются для событий subagent.
enabled— Включает все уведомления и звуки Attention. По умолчаниюfalse.notifications— Когда Attention включён, разрешает TUI отправлять уведомления рабочего стола через терминал. По умолчаниюtrue.sound— Когда Attention включён, разрешает воспроизводить звуковые оповещения. По умолчаниюtrue.volume— Громкость звуковых оповещений по умолчанию от0до1. По умолчанию0.4.sound_pack— ID sound pack для использования. По умолчаниюopencode.default.sounds— Задаёт пользовательские звуковые файлы дляdefault,question,permission,error,doneилиsubagent_done. Пути могут быть абсолютными,file://URL или относительными кtui.json.
Кастомизация
Вы можете настроить различные аспекты представления TUI, используя палитру команд (ctrl+x h или /help). Эти настройки сохраняются после перезапуска.
Отображение имени пользователя
Включите, будет ли ваше имя пользователя отображаться в сообщениях чата. Доступ к этому через:
- Палитра команд: поиск «имя пользователя» или «скрыть имя пользователя».
- Настройка сохраняется автоматически и будет запоминаться во время сеансов TUI.