TUI
OpenCode は LLM と共にプロジェクトで作業するための対話型ターミナルインターフェース(TUI)を提供します。
現在のディレクトリで OpenCode を起動します:
opencode
または特定のディレクトリ用:
opencode /path/to/project
File References
@ を使用してメッセージ内でファイルを参照できます。これによりファジーサーチを行います:
How is auth handled in @packages/functions/src/api/index.ts?
ファイル内容は自動的に会話に追加されます。
設定済みの参照も @ の自動補完に表示されます。
@alias と入力すると設定済みの参照ルートをコンテキストに追加でき、@alias/ と入力するとその内側のファイルが自動補完されます。詳細は References を参照してください。
Bash Commands
! で始まるメッセージはシェルコマンドとして実行されます:
!ls -la
コマンド出力は会話に追加されます。
Commands
コマンド名の前に / をタイプしてアクションを実行します:
/help
ほとんどのコマンドは ctrl+x をデフォルトのリーダーキーとして使用します。
Connect
Provider を OpenCode に追加します:
/connect
Compact
現在のセッションをコンパクションします。エイリアス: /summarize
Keybind: ctrl+x c
Details
ツール実行の詳細表示を切り替えます:
/details
Editor
メッセージ作成用の外部エディタを開きます。EDITOR 環境変数を使用します。
Keybind: ctrl+x e
Exit
OpenCode を終了します。エイリアス: /quit、/q
Keybind: ctrl+x q
Export
現在の会話を Markdown にエクスポートしてエディタで開きます。
Keybind: ctrl+x x
Help
ヘルプダイアログを表示します:
/help
Init
AGENTS.md の作成または更新のためのガイド付きセットアップ。
Models
利用可能なモデルを一覧表示します。
Keybind: ctrl+x m
New
新しいセッションを開始します。エイリアス: /clear
Keybind: ctrl+x n
Redo
以前取り消したメッセージをやり直します。/undo の後でのみ利用可能です。
Note: ファイル変更も復元されます。内部的には Git を使用するため、プロジェクトは Git リポジトリである必要があります。
Keybind: ctrl+x r
Sessions
セッションを一覧表示して切り替えます。エイリアス: /resume、/continue
Keybind: ctrl+x l
Share
現在のセッションを共有して协応します。
Themes
利用可能なテーマを一覧表示します。
Keybind: ctrl+x t
Thinking
思考/推論ブロックの表示を切り替えます。有効にすると、モデルの推論プロセスを見ることができます。
Note: これは表示のみを制御し、実際の推論能力ではありません。ctrl+t を使用して推論を切り替えます。
Undo
最後のメッセージを取り消します。最新のユーザーメッセージ、以降すべての応答、ファイル変更を削除します。
Note: 内部的には Git を使用してファイル変更を管理します。プロジェクトは Git リポジトリである必要があります。
Keybind: ctrl+x u
Unshare
現在のセッションの共有を解除します。
Editor Setup
/editor と /export はどちらも EDITOR 環境変数のエディタを使用します。
Linux/macOS:
export EDITOR=nano # or vim
export EDITOR="code --wait" # for VS Code
Windows (CMD):
set EDITOR=notepad
set EDITOR=code --wait
Windows (PowerShell):
$env:EDITOR = "code --wait"
設定を永続化するには、Linux/macOS ではシェルプロファイル(~/.bashrc、~/.zshrc)に追記するか、Windows PowerShell では PowerShell プロファイルに追記します。Windows CMD の場合は システム プロパティ > 環境変数 を使用してください。
人気のエディタ選択肢には、code(VS Code)、cursor(Cursor)、windsurf(Windsurf)、nvim(Neovim)、vim、nano、notepad(Windows メモ帳)、subl(Sublime Text)があります。
Configure
tui.json 介して TUI 動作をカスタマイズします:
{
"$schema": "https://opencode.ai/tui.json",
"theme": "opencode",
"leader_timeout": 2000,
"keybinds": {
"leader": "ctrl+x",
"command_list": "ctrl+p"
},
"scroll_speed": 3,
"diff_style": "auto",
"mouse": true,
"attention": {
"enabled": true,
"notifications": true,
"sound": true,
"volume": 0.4
}
}
tui.json は、サーバーやランタイムの動作を設定する opencode.json とは別のファイルです。keybinds のエントリは組み込みのデフォルト値とマージされるため、変更したいショートカットだけを設定すれば十分です。
Options
theme- UI テーマを設定keybinds- キーボードショートカットをカスタマイズleader_timeout- リーダーキー後の待機時間(デフォルト:2000)scroll_speed- スクロール速度を制御(デフォルト:3)diff_style- diff レンダリング:"auto"または"stacked"mouse- マウスキャプチャを有効/無効(デフォルト:true)attention- デスクトップ通知とサウンドcursor- 入力欄のターミナルカーソル:styleのデフォルトは"block"("underline"、"line"、"default"を指定可能)、blinkingのデフォルトはtrue("default"にするとターミナルのカーソルが復元され、blinkingは無視されます)scroll_acceleration.enabled- macOS 風のスクロール加速。有効な場合はscroll_speedより優先され、これを上書きします
OPENCODE_TUI_CONFIG を使用すると、カスタム TUI 設定のパスを読み込めます。なお、scroll_speed は 0.001 までの小数値をサポートしますが、scroll_acceleration.enabled が true の場合は無視されます。
Attention
TUI 通知とサウンドを設定します:
enabled-すべての attention機能を有効(デフォルト:false)notifications- デスクトップ通知(デフォルト:true)sound- attention サウンド(デフォルト:true)volume- サウンド音量0-1(デフォルト:0.4)sound_pack- サウンドパック ID(デフォルト:opencode.default)sounds-default、question、permission、error、done、subagent_doneのサウンドファイルを上書きします。パスには絶対パス、file://URL、tui.jsonからの相対パスを指定できます
attention は質問、権限確認、セッションエラー、セッション完了の際に発火します。subagent 以外のイベントについては、端末がブラー(非フォーカス)状態のときにのみデスクトップ通知を要求します。
Customization
コマンドパレット(ctrl+p)介して TUI 表示をカスタマイズできます:
- Username display - チャットメッセージに用户名を表示するかを切り替え