日本語
ドキュメント
TUI

TUI

OpenCode のターミナルユーザーインターフェースの使い方。

OpenCode は、LLM を使ってプロジェクトに取り組むためのインタラクティブなターミナルインターフェース、つまり TUI を提供します。

OpenCode を実行すると、カレントディレクトリに対して TUI が起動します。

opencode

または、特定の作業ディレクトリを指定して起動することもできます。

opencode /path/to/project

TUI に入ったら、メッセージを送ってプロンプトを与えられます。

Give me a quick summary of the codebase.

File references

メッセージ内で @ を使ってファイルを参照できます。これはカレントディレクトリ内であいまい検索(fuzzy file search)を行います。

Tip: メッセージ内でファイルを参照するのにも @ を使えます。

How is auth handled in @packages/functions/src/api/index.ts?

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

設定された参照も @ のオートコンプリートに表示されます。@alias と入力すると参照ルートをコンテキストとして追加でき、@alias/ と入力するとその参照内のファイルをオートコンプリートできます。

Compare our setup with @docs/README.md

Bash commands

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

!ls -la

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


Commands

OpenCode の TUI を使用しているときは、/ に続けてコマンド名を入力することで、すばやくアクションを実行できます。例えば次のとおりです。

/help

ほとんどのコマンドには、デフォルトのリーダーキーである ctrl+x を使ったキーボードショートカットもあります。詳しくはこちら

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


connect

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

/connect

compact

現在のセッションをコンパクトにします。Alias: /summarize

/compact

Keybind: ctrl+x c


details

ツール実行の詳細表示を切り替えます。

/details

editor

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

/editor

Keybind: ctrl+x e


exit

OpenCode を終了します。Aliases: /quit/q

/exit

Keybind: ctrl+x q


export

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

/export

Keybind: ctrl+x x


help

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

/help

init

AGENTS.md を作成または更新するためのガイド付きセットアップです。詳しくはこちら

/init

models

利用可能なモデルを一覧表示します。

/models

Keybind: ctrl+x m


new

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

/new

Keybind: ctrl+x n


redo

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

Tip: ファイルの変更もすべて復元されます。

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

/redo

Keybind: ctrl+x r


sessions

セッションを一覧表示し、切り替えます。Aliases: /resume/continue

/sessions

Keybind: ctrl+x l


share

現在のセッションを共有します。詳しくはこちら

/share

themes

利用可能なテーマを一覧表示します。

/themes

Keybind: ctrl+x t


thinking

会話内の thinking/reasoning ブロックの表示を切り替えます。有効にすると、拡張思考(extended thinking)に対応したモデルについて、モデルの推論プロセスを確認できます。

Note: このコマンドは thinking ブロックを表示するかどうかを制御するだけで、モデルの推論能力を有効化・無効化するものではありません。実際の推論能力を切り替えるには、ctrl+t を使ってモデルのバリアントを順に切り替えてください。

/thinking

undo

会話の最後のメッセージを取り消します。直近のユーザーメッセージ、それに続くすべての応答、およびファイルの変更を取り除きます。

Tip: 加えられたファイルの変更も元に戻されます。

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

/undo

Keybind: ctrl+x u


unshare

現在のセッションの共有を解除します。詳しくはこちら

/unshare

Editor setup

/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

これを永続化するには、システムのプロパティ > 環境変数 を使用してください。

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 メモ帳
  • subl - Sublime Text

Note: VS Code のような一部のエディタは、--wait フラグを付けて起動する必要があります。

一部のエディタは、ブロッキングモードで実行するためにコマンドライン引数を必要とします。--wait フラグを付けると、エディタのプロセスが閉じられるまでブロックされます。


Configure

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 は組み込みのデフォルトとマージされるため、変更したいショートカットだけを設定すれば十分です。

Options

  • theme - UI テーマを設定します。詳しくはこちら
  • keybinds - キーボードショートカットをカスタマイズします。詳しくはこちら
  • leader_timeout - リーダーキーの後に OpenCode が待機する時間を制御します。デフォルトは 2000
  • scroll_acceleration.enabled - スムーズで自然なスクロールのために、macOS スタイルのスクロール加速を有効にします。有効にすると、すばやいスクロール操作でスクロール速度が増し、ゆっくりした動きでは精密さを保ちます。この設定は scroll_speed よりも優先され、有効にすると scroll_speed を上書きします。
  • scroll_speed - スクロールコマンド使用時に TUI がスクロールする速さを制御します(最小: 0.001 、小数値に対応)。デフォルトは 3注意: scroll_acceleration.enabledtrue に設定されている場合、これは無視されます。
  • diff_style - diff の描画を制御します。"auto" はターミナル幅に合わせて調整し、"stacked" は常に単一カラムのレイアウトで表示します。
  • mouse - TUI でのマウスキャプチャを有効または無効にします(デフォルト: true )。無効にすると、ターミナルのネイティブなマウス選択/スクロール動作が保持されます。
  • attention - TUI のデスクトップ通知とサウンドを設定します。デフォルトでは無効です。

カスタムの TUI 設定パスを読み込むには OPENCODE_TUI_CONFIG を使用してください。

Attention

TUI は、質問、権限、セッションエラー、完了したセッションについて注意(attention)を求めることができます。attention.enabled で有効にします。組み込みイベントはトリガー時にサウンドを再生し、サブエージェント以外のイベントは、ターミナルがフォーカスを失っている(blurred)場合にのみデスクトップ通知を要求します。

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

Customization

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


Username display

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

  • コマンドパレット: "username" または "hide username" を検索します
  • 設定は自動的に保持され、TUI セッションをまたいで記憶されます