TUI
OpenCode は、LLM を使用してプロジェクトを作業するための対話型ターミナルインターフェイスまたは TUI を提供します。
OpenCode を実行すると、現在のディレクトリの TUI が開始されます。
opencodeまたは、特定の作業ディレクトリに対して起動することもできます。
opencode /path/to/projectTUI に入ったら、メッセージを表示することができます。
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など
set EDITOR=notepad
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
set 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- Neovim エディターvim- Vim エディターnano- ナノエディターnotepad- Windows メモ帳subl- Sublime Text
一部のモードでは実行にコマンドライン引数が必要です。--wait フラグを使うと、エディターが閉じるまでプロセスが待機します。
tui.json (または tui.jsonc) ファイルを通じて TUI の動作をカスタマイズできます。
{
"$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 セッション全体で記憶されます。