本文へスキップ
ファイル参照

TUI

OpenCode は、LLM を使用してプロジェクトを作業するための対話型ターミナルインターフェイスまたは TUI を提供します。

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?

ファイルの内容は会話に自動的に追加されます。


メッセージを ! で開始して、シェルコマンドを実行します。

ターミナル
!ls -la

コマンドの出力は、ツールの結果として会話に追加されます。


OpenCode TUI を使用する場合、「/」に続いてコマンド名を入力すると、アクションをすばやく実行できます。例えば:

ターミナル
/help

ほとんどのコマンドには、ctrl+x をリーダーキーとして使用するキーバインドもあります。ctrl+x がデフォルトのリーダーキーです。 詳細はこちら。

利用可能なすべてのスラッシュコマンドは次のとおりです。


OpenCode にプロバイダーを追加します。利用可能なプロバイダーから選択し、その API キーを追加できます。

ターミナル
/connect

現在のセッションを圧縮します。 別名: /summarize

ターミナル
/compact

キーバインド: ctrl+x c


メッセージを作成するために外部エディタを開きます。 EDITOR 環境変数に設定されたエディタを使用します。 詳細はこちら。

ターミナル
/editor

キーバインド: ctrl+x e


OpenCode を終了します。 エイリアス: /quit、/q

ターミナル
/exit

キーバインド: ctrl+x q


現在の会話を Markdown にエクスポートし、デフォルトのエディターで開きます。 EDITOR 環境変数に設定されたエディタを使用します。 詳細はこちら。

ターミナル
/export

キーバインド: ctrl+x x


ヘルプダイアログを表示します。

ターミナル
/help

キーバインド: ctrl+x h


AGENTS.md ファイルを作成または更新します。 詳細はこちら。

ターミナル
/init

キーバインド: ctrl+x i


利用可能なモデルをリストします。

ターミナル
/models

キーバインド: ctrl+x m


新しいセッションを開始します。 別名: /clear

ターミナル
/new

キーバインド: ctrl+x n


以前に取り消したメッセージをやり直します。 /undo を使用した後にのみ使用できます。

内部的には、undo を使用してファイルの変更を管理します。したがって、あなたのプロジェクトは Git リポジトリ である必要があります。

ターミナル
/redo

キーバインド: ctrl+x r


セッションを一覧表示して切り替えます。 エイリアス: /resume、/continue

ターミナル
/sessions

キーバインド: ctrl+x l


利用可能なテーマをリストします。

ターミナル
/theme

キーバインド: ctrl+x t


会話内の思考/推論ブロックの表示を切り替えます。有効にすると、拡張思考をサポートするモデルの推論プロセスを確認できます。

ターミナル
/thinking

会話の最後のメッセージを元に戻します。最新のユーザーメッセージ、その後のすべての応答、およびファイルの変更を削除します。

内部的には、undo を使用してファイルの変更を管理します。したがって、あなたのプロジェクトは Git リポジトリ である必要があります。

ターミナル
/undo

キーバインド: ctrl+x u


/editor および /export コマンドはどちらも、EDITOR 環境変数で指定されたエディターを使用します。

ターミナル
# 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など

一般的なエディターオプションには次のものがあります。

  • code - VS Code
  • cursor - Cursor
  • windsurf - Windsurf
  • nvim - Neovim エディター
  • vim - Vim エディター
  • nano - ナノエディター
  • notepad - Windows メモ帳
  • subl - Sublime Text

一部のモードでは実行にコマンドライン引数が必要です。--wait フラグを使うと、エディターが閉じるまでプロセスが待機します。


tui.json (または tui.jsonc) ファイルを通じて TUI の動作をカスタマイズできます。

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 - leader key を押したあと、OpenCode が次のキー入力を待つ時間を制御します。デフォルトは 2000 です。
  • scroll_acceleration.enabled - macOS スタイルのスクロールアクセラレーションを有効にして、スムーズで自然なスクロールを実現します。有効にすると、高速スクロールジェスチャではスクロール速度が向上し、ゆっくりとした動きでは正確なままになります。 この設定は scroll_speed よりも優先され、有効になっている場合は上書きされます。
  • scroll_speed - スクロールコマンドを使用するときに TUI がスクロールする速度を制御します (最小: 0.001、小数をサポート)。デフォルトは 3 です。 注: scroll_acceleration.enabled が true に設定されている場合、これは無視されます。
  • diff_style - 差分レンダリングを制御します。 "auto" はターミナルの幅に適応し、"stacked" は常に 1 列のレイアウトを表示します。
  • mouse - TUI でのマウスキャプチャを有効または無効にします (デフォルト: true)。無効にすると、ターミナル本来のマウス選択/スクロール動作が維持されます。
  • attention - TUI のデスクトップ通知とサウンドを設定します。デフォルトでは無効です。

カスタム TUI 設定パスをロードするには、OPENCODE_TUI_CONFIG を使用します。

Attention を有効にすると、OpenCode が回答待ち、権限の承認待ち、セッションエラー、またはセッション完了を知らせたいときに、TUI がサウンドやデスクトップ通知で知らせます。attention.enabled で有効化します。組み込みイベントは発生時にサウンドを再生します。デスクトップ通知はターミナルウィンドウにフォーカスがない場合にのみ送信され、subagent イベントには使われません。

  • enabled - Attention のすべての通知とサウンドを有効にします。デフォルトは false です。
  • notifications - Attention が有効なとき、TUI がターミナル経由でデスクトップ通知を送信できるようにします。デフォルトは true です。
  • sound - Attention が有効なとき、通知音の再生を許可します。デフォルトは true です。
  • volume - 通知音のデフォルト音量を 0 から 1 で指定します。デフォルトは 0.4 です。
  • sound_pack - 使用する sound pack ID です。デフォルトは opencode.default です。
  • sounds - default、question、permission、error、done、または subagent_done に使うカスタムサウンドファイルを指定します。パスは絶対パス、file:// URL、または tui.json からの相対パスにできます。

コマンドパレット (ctrl+x h または /help) を使用して、TUI ビューのさまざまな側面をカスタマイズできます。これらの設定は再起動後も維持されます。


ユーザー名の表示

チャットメッセージにユーザー名を表示するかどうかを切り替えます。これには次の方法でアクセスします。

  • コマンドパレット:「ユーザー名」または「ユーザー名を隠す」を検索します。
  • 設定は自動的に保持され、TUI セッション全体で記憶されます。