Русский
Документация
TUI

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-ключи.

/connect

compact

Сжать текущую сессию. Псевдоним: /summarize

/compact

Привязка клавиш: ctrl+x c


details

Переключить отображение деталей выполнения инструментов.

/details

editor

Открыть внешний редактор для составления сообщений. Использует редактор, заданный в вашей переменной окружения EDITOR. Подробнее.

/editor

Привязка клавиш: ctrl+x e


exit

Выйти из OpenCode. Псевдонимы: /quit, /q

/exit

Привязка клавиш: ctrl+x q


export

Экспортировать текущий диалог в Markdown и открыть в редакторе по умолчанию. Использует редактор, заданный в вашей переменной окружения EDITOR. Подробнее.

/export

Привязка клавиш: ctrl+x x


help

Показать диалог справки.

/help

init

Пошаговая настройка для создания или обновления AGENTS.md. Подробнее.

/init

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

themes

Список доступных тем.

/themes

Привязка клавиш: ctrl+x t


thinking

Переключить видимость блоков мышления/рассуждений в диалоге. Когда включено, вы можете видеть процесс рассуждения модели для моделей, поддерживающих расширенное мышление.

Примечание: эта команда управляет только тем, отображаются ли блоки мышления — она не включает и не отключает возможности рассуждения модели. Чтобы переключить фактические возможности рассуждения, используйте ctrl+t для циклического перебора вариантов модели.

/thinking

undo

Отменить последнее сообщение в диалоге. Удаляет самое последнее сообщение пользователя, все последующие ответы и любые изменения файлов.

Совет: любые сделанные изменения файлов также будут отменены.

Внутренне для управления изменениями файлов используется 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 Code
  • cursor — Cursor
  • windsurf — Windsurf
  • nvim — редактор Neovim
  • vim — редактор Vim
  • nano — редактор Nano
  • notepad — Windows Notepad
  • subl — Sublime Text

Примечание: некоторые редакторы, такие как VS Code, нужно запускать с флагом --wait.

Некоторым редакторам нужны аргументы командной строки для запуска в блокирующем режиме. Флаг --wait заставляет процесс редактора блокироваться до закрытия.


Конфигурация

Вы можете настроить поведение TUI через tui.json (или tui.jsonc).

tui.json
{
  "$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. Пути могут быть абсолютными, URL file:// или относительными к tui.json.

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

Вы можете настроить различные аспекты представления TUI с помощью палитры команд (ctrl+p). Эти настройки сохраняются между перезапусками.


Отображение имени пользователя

Переключить, появляется ли ваше имя пользователя в сообщениях чата. Доступ к этому осуществляется через:

  • Палитра команд: найдите «username» или «hide username»
  • Настройка сохраняется автоматически и будет запомнена между сессиями TUI