コンテンツにスキップ

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 - チャットメッセージに用户名を表示するかを切り替え