OpenCode コマンドガイド

OpenCode コマンド:カスタムコマンド、引数、安全な再利用

まず二つを分けて考えます。組み込みのスラッシュコマンドは現在の TUI を操作し、カスタムコマンドは繰り返し使うプロンプトを名前付きの作業にします。最初はプロジェクトの .opencode/commands/ に Markdown ファイルを作り、入力が変わる箇所だけ $ARGUMENTS を使い、ファイル編集や Shell 実行を許可する前に生成されたプロンプトを確認します。このページでは、組み込みコマンド、Markdown と JSON、位置引数、Shell 出力、ファイル参照、権限、表示されないときの確認順を説明します。

主要キーワード
OpenCode コマンド
ドキュメント確認
2026年8月19日
読了時間
約14分
OpenCode のターミナルから組み込みコマンド、Markdown ファイル、JSON 設定へ分岐する図
OpenCode コマンドは TUI の操作と再利用できる定義に分かれます。

要点

OpenCode コマンドは三つの層で考える

目的を満たす最小の層を選ぶと、プロンプトのショートカットを安全に見直せます。

役割
TUI 組み込みコマンド現在のセッションまたは組み込み操作を制御する。/help/undo
カスタムコマンドMarkdown または JSON の名前付きプロンプトを展開する。/review$ARGUMENTS
Shell コマンドターミナルで実行する別の実行面。npm testgit status

カスタムコマンドは CLI のインストール、Provider、権限設定の代わりにはなりません。opencode が見つからなければ導入ガイド、モデルの問題ならProvider ガイド、編集や Shell の境界なら権限ガイドを確認します。コマンド名は公式 Commands ドキュメントと実際の /help で確認してください。

組み込みコマンド

スラッシュコマンドで現在の TUI を操作する

OpenCode には /init/undo/redo/share/help などがあります。Shell の別名ではなく、package.json に置くスクリプトでもありません。OpenCode の入力欄で実行し、結果や確認を読んでから次へ進みます。

インストールした版の一覧が不明なら、最初に /help を使います。/undo/redo は Git のコミットの代わりにはなりません。/share は共有範囲を確認してから、非公開のコードで利用してください。組み込み一覧はリリースで変わる可能性があります。

Markdown の例

プロジェクト用カスタムコマンドから始める

Markdown ファイルなら Git で差分を確認でき、利用するリポジトリの近くに置けます。

  1. プロジェクトのルートに .opencode/commands/review.md を作る。
  2. 短い説明と、一つの責務に絞ったプロンプトを書く。
  3. 小さなブランチで実行し、プロンプトと diff を確認する。

.opencode/commands/review.md

編集を自動実行せず、レビュー計画だけを求める例です。

---
description: Review the current changes
---
Review the current Git changes. Explain risky behavior,
missing tests, and the smallest safe follow-up.
Do not edit files until I approve the plan.

ファイル名がコマンド名になるので、これは /review で呼び出します。個人用の汎用フローは ~/.config/opencode/commands/、ローカルパスやチームのテスト規則を含むものは .opencode/commands/ が自然です。「変更を確認して計画を出す」は「全部直す」より検証しやすい表現です。

JSON 設定

プロジェクト設定と一緒に管理するなら command を使う

JSON または JSONC 設定の command オブジェクトでもカスタムコマンドを定義できます。特定の agent や model を選びたい場合に便利です。パス、Schema、優先順位はopencode.jsonc 設定ガイドで確認します。

{
  "$schema": "https://opencode.ai/config.json",
  "command": {
    "test-review": {
      "template": "Review the latest test output and list the first three fixes.",
      "description": "Review test output",
      "agent": "plan"
    }
  }
}
項目用途共有前の確認
template実行時に送るプロンプト。存在し、作業範囲が明確か。
descriptionコマンドを探すときの短い説明。結果を説明しているか。
agent名前付き agent を選ぶ。ツールと権限が合っているか。
modelこのフローの model を上書きする。Provider に ID があるか。

設定ファイルに API key や token を入れないでください。ファイル参照や Shell 出力を使うコマンドは、短くてもスクリプトと同じようにレビューします。

引数とコンテキスト

ワークフローが変わる箇所だけを変数にする

$ARGUMENTS は全体の引数、$1$2 は位置ごとの値を受け取ります。

OpenCode の引数がターミナルから Markdown テンプレート、JSON、Shell 出力へ流れる図
引数には明確な行き先を与え、結果を確認できるようにします。
---
description: Create a file with supplied values
---
Create a file named $1 in directory $2.
Use this content: $3
Show the proposed path before writing.

/create-file config.json src "{ \"key\": \"value\" }" なら三つの値を渡せます。テンプレートには値の使い方と、書き込み前に表示するパスを明記します。自由な一つの文なら $ARGUMENTS が簡単です。

@src/components/Button.tsx でファイルを参照し、!`npm test`!`git log --oneline -10` で Shell 出力をプロンプトに入れられます。プロジェクトのルートで実行されるため、破壊的な操作や秘密を含むコマンドは再利用テンプレートに入れないでください。

引数は入力であり権限ではありません。最初は読み取り専用で試し、小さな編集だけを許可し、信頼できるリポジトリでだけ自動化します。

安全な再利用

名前、プロンプト、権限を予測可能にする

組み込みコマンドと同じ名前のカスタムコマンドは、組み込み動作を上書きする場合があります。意図していない限り helpundoshare は避け、review-tests のように結果が分かる名前を使います。

コマンドファイルはコードと同じように確認します。プロンプトの diff、生成結果、参照ファイル、Shell の提案を見ます。agent と model はAgents ガイド、Skills と MCP はSkills ガイドMCP ガイドで境界を確認します。

症状疑う層最初の確認
スラッシュコマンドがないパスまたは名前ファイル、ディレクトリ、frontmatter、ルート。
出力が意図と違うプロンプトまたは引数小さい入力を一つずつ試す。
Shell 出力が危険Shell コンテキスト手動実行し、作業ディレクトリと権限を見る。
組み込み動作が変わった名前の衝突名前を変えて /help と比較する。

検証手順

チームの基盤にする前の六つの確認

  1. 範囲:入力と出力を一文で決める。
  2. 場所:プロジェクト用か全体用かを選び、記録する。
  3. 入力:通常、欠落、引用符付き、パス型の値を試す。
  4. コンテキスト:編集前にファイル参照と Shell 出力を見る。
  5. 権限:ask または読み取りから始める。
  6. 戻し方:Git に残し、無効化や改名の方法を書く。

この順序なら、コマンドがない場合はパス、結果が違う場合はプロンプトや引数、編集拒否は権限、model の失敗は Provider と切り分けられます。

よくある質問

OpenCode コマンドについて

OpenCode コマンドは何に使いますか?

組み込みコマンドは TUI を操作し、カスタムコマンドはレビュー、テスト、ファイル作成などの繰り返しプロンプトをまとめます。

カスタムコマンドのディレクトリはどこですか?

プロジェクト用は .opencode/commands/、全体用は ~/.config/opencode/commands/ です。Markdown のファイル名がコマンド名になります。

引数を渡すにはどうしますか?

全体には $ARGUMENTS、個別には $1$2 を使います。空白や JSON を含む値は引用します。

コマンドが表示されないのはなぜですか?

ディレクトリ、ルート、名前、frontmatter、名前の衝突を確認し、/help と公式ドキュメントを比較してください。

公式情報

バージョンで変わる内容を確認する

このページは 2026年8月19日に OpenCode の公式ドキュメントで確認しました。名前やパスは変わる可能性があります。

まとめ

組み込みコマンドは TUI に、Markdown はレビューできるプロジェクトフローに、JSON は設定と一緒に管理するコマンドに使います。引数を明確にし、Shell 出力を信頼できないコンテキストとして扱い、名前の衝突を避け、小さく戻せる作業で検証してください。