OpenCode ショートカット・チートシート【Mac・Windows・Linux対応/2026年版】
OpenCode の TUI を触り始めたものの、ショートカットを毎回ドキュメントで探している——そんな自分向けに、デフォルトのキーバインドを用途別にまとめました。
この記事は、OpenCode 公式ドキュメントの「キーバインド」をもとに、Mac・Windows・Linuxで共用できる形へ整理したチートシートです。
確認日: 2026年8月10日
OpenCode の更新により、キーバインドが変わる可能性があります。最新情報は公式ドキュメントも確認してください。
OS別のキー表記
OpenCode の設定では、OSにかかわらず ctrl、alt、shift、super という名前を使います。本記事の表では設定ファイルに合わせて Ctrl / Alt / Shift / Super と表記します。
| 設定上の表記 | Windows / Linux | Mac |
|---|---|---|
Ctrl |
Ctrl |
⌃ Control |
Alt |
Alt |
⌥ Option |
Shift |
Shift |
⇧ Shift |
Super |
Windows / Super
|
⌘ Command |
Return / Enter
|
Enter |
↩ Return |
Backspace |
Backspace |
⌫ Delete |
Delete |
Delete |
⌦ Forward Delete |
Macユーザーは、たとえば
Alt+Fを⌥ Option+F、Super+Zを⌘ Command+Zと読み替えてください。Ctrl+XはMacでも⌃ Control+Xであり、⌘ Command+Xではありません。
TL;DR:まず覚えたい10個
OpenCode では、Ctrl+X(Macでは ⌃ Control+X)がデフォルトの リーダーキー です。
たとえば <leader> n は、Ctrl+X を押して離し、その後に N を押します。同時押しではありません。
| 機能 | Windows / Linux | Mac |
|---|---|---|
| 新しいセッションを作成 |
Ctrl+X → N
|
⌃X → N
|
| セッション一覧を開く |
Ctrl+X → L
|
⌃X → L
|
| エディターを開く |
Ctrl+X → E
|
⌃X → E
|
| モデル一覧を開く |
Ctrl+X → M
|
⌃X → M
|
| コマンド一覧を開く | Ctrl+P |
⌃P |
| エージェントを切り替える |
Tab / Shift+Tab
|
Tab / ⇧Tab
|
| プロンプトを送信 | Enter |
↩ Return |
| 改行する | Shift+Enter |
⇧↩ |
| 実行中のセッションを中断 | Esc |
Esc |
| セッションをコンパクト化 |
Ctrl+X → C
|
⌃X → C
|
アプリ・画面操作
| 機能 | Windows / Linux | Mac |
|---|---|---|
| OpenCode を終了 |
Ctrl+C / Ctrl+D / Ctrl+X → Q
|
⌃C / ⌃D / ⌃X → Q
|
| エディターを開く |
Ctrl+X → E
|
⌃X → E
|
| テーマ一覧を開く |
Ctrl+X → T
|
⌃X → T
|
| サイドバーの表示を切り替える |
Ctrl+X → B
|
⌃X → B
|
| ステータスを表示 |
Ctrl+X → S
|
⌃X → S
|
| ヒント表示を切り替える |
Ctrl+X → H
|
⌃X → H
|
| コマンド一覧を開く | Ctrl+P |
⌃P |
セッション操作
| 機能 | Windows / Linux | Mac |
|---|---|---|
| 新しいセッションを作成 |
Ctrl+X → N
|
⌃X → N
|
| セッション一覧を開く |
Ctrl+X → L
|
⌃X → L
|
| セッションのタイムラインを開く |
Ctrl+X → G
|
⌃X → G
|
| セッションをエクスポート |
Ctrl+X → X
|
⌃X → X
|
| 実行中のセッションを中断 | Esc |
Esc |
| セッションをコンパクト化 |
Ctrl+X → C
|
⌃X → C
|
| 最初の子セッションへ移動 |
Ctrl+X → ↓
|
⌃X → ↓
|
| 次の子セッションへ移動 |
Ctrl+X → →
|
⌃X → →
|
| 前の子セッションへ移動 |
Ctrl+X → ←
|
⌃X → ←
|
| 親セッションへ移動 |
Ctrl+X → ↑
|
⌃X → ↑
|
メッセージの移動・操作
| 機能 | Windows / Linux | Mac |
|---|---|---|
| 1ページ上へ |
PageUp / Ctrl+Alt+B
|
fn+↑ / ⌃⌥B
|
| 1ページ下へ |
PageDown / Ctrl+Alt+F
|
fn+↓ / ⌃⌥F
|
| 1行上へ | Ctrl+Alt+Y |
⌃⌥Y |
| 1行下へ | Ctrl+Alt+E |
⌃⌥E |
| 半ページ上へ | Ctrl+Alt+U |
⌃⌥U |
| 半ページ下へ | Ctrl+Alt+D |
⌃⌥D |
| 最初のメッセージへ |
Ctrl+G / Home
|
⌃G / fn+←
|
| 最後のメッセージへ |
Ctrl+Alt+G / End
|
⌃⌥G / fn+→
|
| メッセージをコピー |
Ctrl+X → Y
|
⌃X → Y
|
| メッセージ操作を取り消す |
Ctrl+X → U
|
⌃X → U
|
| メッセージ操作をやり直す |
Ctrl+X → R
|
⌃X → R
|
| 非表示コンテンツの表示を切り替える |
Ctrl+X → H
|
⌃X → H
|
Ctrl+X → H はヒント表示にも割り当てられており、画面の状態に応じて対象が変わります。
モデル・エージェント操作
| 機能 | Windows / Linux | Mac |
|---|---|---|
| モデル一覧を開く |
Ctrl+X → M
|
⌃X → M
|
| 最近使った次のモデルへ | F2 |
F2(設定により fn+F2) |
| 最近使った前のモデルへ | Shift+F2 |
⇧F2(設定により ⇧fn+F2) |
| モデルのバリアントを切り替える | Ctrl+T |
⌃T |
| エージェント一覧を開く |
Ctrl+X → A
|
⌃X → A
|
| 次のエージェントへ | Tab |
Tab |
| 前のエージェントへ | Shift+Tab |
⇧Tab |
プロンプト入力
基本操作
| 機能 | Windows / Linux | Mac |
|---|---|---|
| 送信 | Enter |
↩ Return |
| 改行 |
Shift+Enter / Ctrl+Enter / Alt+Enter / Ctrl+J
|
⇧↩ / ⌃↩ / ⌥↩ / ⌃J
|
| 入力をクリア | Ctrl+C |
⌃C |
| OpenCode側の貼り付け | Ctrl+V |
⌃V |
| 入力履歴を前後に移動 |
↑ / ↓
|
↑ / ↓
|
| ターミナルをサスペンド | Ctrl+Z |
⌃Z |
カーソル移動
| 機能 | Windows / Linux | Mac |
|---|---|---|
| 1文字左へ |
← / Ctrl+B
|
← / ⌃B
|
| 1文字右へ |
→ / Ctrl+F
|
→ / ⌃F
|
| 上下へ移動 |
↑ / ↓
|
↑ / ↓
|
| 行頭へ | Ctrl+A |
⌃A |
| 行末へ | Ctrl+E |
⌃E |
| 表示上の行頭へ | Alt+A |
⌥A |
| 表示上の行末へ | Alt+E |
⌥E |
| 入力全体の先頭へ | Home |
fn+← |
| 入力全体の末尾へ | End |
fn+→ |
| 1単語戻る |
Alt+B / Alt+← / Ctrl+←
|
⌥B / ⌥← / ⌃←
|
| 1単語進む |
Alt+F / Alt+→ / Ctrl+→
|
⌥F / ⌥→ / ⌃→
|
選択
| 機能 | Windows / Linux | Mac |
|---|---|---|
| 1文字ずつ選択 |
Shift+← / Shift+→
|
⇧← / ⇧→
|
| 上下方向に選択 |
Shift+↑ / Shift+↓
|
⇧↑ / ⇧↓
|
| 行頭まで選択 | Ctrl+Shift+A |
⌃⇧A |
| 行末まで選択 | Ctrl+Shift+E |
⌃⇧E |
| 表示上の行頭まで選択 | Alt+Shift+A |
⌥⇧A |
| 表示上の行末まで選択 | Alt+Shift+E |
⌥⇧E |
| 入力全体の先頭まで選択 | Shift+Home |
⇧fn+← |
| 入力全体の末尾まで選択 | Shift+End |
⇧fn+→ |
| 前の単語まで選択 |
Alt+Shift+B / Alt+Shift+←
|
⌥⇧B / ⌥⇧←
|
| 次の単語まで選択 |
Alt+Shift+F / Alt+Shift+→
|
⌥⇧F / ⌥⇧→
|
削除・Undo/Redo
| 機能 | Windows / Linux | Mac |
|---|---|---|
| 現在行を削除 | Ctrl+Shift+D |
⌃⇧D |
| 行末まで削除 | Ctrl+K |
⌃K |
| 行頭まで削除 | Ctrl+U |
⌃U |
| 前の文字を削除 |
Backspace / Shift+Backspace
|
⌫ / ⇧⌫
|
| 次の文字を削除 |
Ctrl+D / Delete / Shift+Delete
|
⌃D / fn+⌫ / ⇧fn+⌫
|
| 前の単語を削除 |
Ctrl+W / Ctrl+Backspace / Alt+Backspace
|
⌃W / ⌃⌫ / ⌥⌫
|
| 次の単語を削除 |
Alt+D / Alt+Delete / Ctrl+Delete
|
⌥D / ⌥fn+⌫ / ⌃fn+⌫
|
| Undo |
Ctrl+- / Super+Z
|
⌃- / ⌘Z
|
| Redo |
Ctrl+. / Super+Shift+Z
|
⌃. / ⌘⇧Z
|
Macのコピー&ペーストについて
OpenCodeのキーバインドとして定義されている貼り付けは Ctrl+V です。一方、macOSのターミナルアプリ側では通常 ⌘V でもクリップボードから貼り付けられます。
- OpenCodeの操作として貼り付ける:
⌃V - Terminal、iTerm2、Ghosttyなどターミナル側の貼り付け:通常は
⌘V
動作は利用中のターミナル設定にも左右されます。
デスクトップアプリの入力ショートカット
OpenCode デスクトップアプリのプロンプト入力では、一般的な Readline / Emacs 風ショートカットも使えます。これらは組み込みで、現時点では opencode.json から変更できません。
| 機能 | Windows / Linux | Mac |
|---|---|---|
| 現在行の先頭へ | Ctrl+A |
⌃A |
| 現在行の末尾へ | Ctrl+E |
⌃E |
| 1文字戻る / 進む |
Ctrl+B / Ctrl+F
|
⌃B / ⌃F
|
| 1単語戻る / 進む |
Alt+B / Alt+F
|
⌥B / ⌥F
|
| カーソル位置の文字を削除 | Ctrl+D |
⌃D |
| 行末まで / 行頭まで削除 |
Ctrl+K / Ctrl+U
|
⌃K / ⌃U
|
| 前の単語 / 次の単語を削除 |
Ctrl+W / Alt+D
|
⌃W / ⌥D
|
| 文字を入れ替える | Ctrl+T |
⌃T |
| ポップオーバーを閉じる、または実行中の応答を中止 | Ctrl+G |
⌃G |
キーバインドをカスタマイズする
キーバインドは tui.json の keybinds で変更できます。
{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"leader": "ctrl+x",
"session_new": "<leader>n",
"session_list": "<leader>l",
"command_list": "ctrl+p"
}
}
1つの操作に複数のキーを割り当てたい場合は、カンマで区切ります。
{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"app_exit": "ctrl+c,ctrl+d,<leader>q"
}
}
ショートカットを無効化する
使わないキーバインドには none を指定します。
{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"session_compact": "none"
}
}
デフォルトで none、つまりキー未割り当ての操作もあります。
| 機能 | Windows / Linux | Mac |
|---|---|---|
| スクロールバー表示の切り替え | 未割り当て | 未割り当て |
| ユーザー名表示の切り替え | 未割り当て | 未割り当て |
| ツール詳細の表示 | 未割り当て | 未割り当て |
| 思考表示の切り替え | 未割り当て | 未割り当て |
| セッションのフォーク | 未割り当て | 未割り当て |
| セッション名の変更 | 未割り当て | 未割り当て |
| セッションの共有 | 未割り当て | 未割り当て |
| セッションの共有解除 | 未割り当て | 未割り当て |
| 次のメッセージへ移動 | 未割り当て | 未割り当て |
| 前のメッセージへ移動 | 未割り当て | 未割り当て |
| 最後のユーザーメッセージへ移動 | 未割り当て | 未割り当て |
| 次のお気に入りモデルへ切り替え | 未割り当て | 未割り当て |
| 前のお気に入りモデルへ切り替え | 未割り当て | 未割り当て |
| バリアント一覧を開く | 未割り当て | 未割り当て |
| ターミナルタイトルの切り替え | 未割り当て | 未割り当て |
必要なものだけ tui.json で割り当てると、自分用の操作体系を作れます。
Shift+Enter で改行できない場合(全OS共通)
一部のターミナルは、修飾キー付きの Enter をデフォルトでは送信しません。Mac・Windows・Linuxのどの環境でも、まず Ctrl+J(Macでは ⌃J)を試すのが手軽です。
| 環境 | 改行できないときの対処 |
|---|---|
| Mac |
⌃J を使う。必要に応じてTerminal、iTerm2、Ghosttyなどのキーマッピングを確認 |
| Windows |
Ctrl+J を使う。Windows Terminalでは下記の設定も利用可能 |
| Linux |
Ctrl+J を使う。利用中のターミナルのキーマッピングを確認 |
Windows Terminal で Shift+Enter を使いたい場合は、settings.json のルートレベルに次の設定を追加します。
{
"actions": [
{
"command": {
"action": "sendInput",
"input": "\u001b[13;2u"
},
"id": "User.sendInput.ShiftEnterCustom"
}
],
"keybindings": [
{
"keys": "shift+enter",
"id": "User.sendInput.ShiftEnterCustom"
}
]
}
保存後、Windows Terminal を再起動するか、新しいタブを開けば反映されます。
おわりに
最初はすべて覚えようとせず、次の4系統から使い始めるのがおすすめです。
-
Ctrl+X→N/L:セッションを作る・探す -
Ctrl+X→M:モデルを選ぶ -
Tab/Shift+Tab:エージェントを切り替える -
Ctrl+P:迷ったらコマンド一覧を開く
リーダーキーを起点に覚えると、OpenCode の操作がかなりスムーズになります。