コンテンツにスキップ

モード

さまざまなユースケースに応じたさまざまなモード。

モードを使用すると、さまざまなユースケースに合わせて動作、ツール、プロンプトをカスタマイズできます。

BuildPlan という 2 つの組み込みモードが付属しています。カスタマイズできます これらを使用するか、OpenCode 設定を通じて独自の設定を行います。

セッション中にモードを切り替えることも、設定ファイルでモードを構成することもできます。


組み込み

OpenCode には 2 つの組み込みモードが付属しています。


Build

Build は、すべてのツールが有効になっている デフォルト モードです。これは、ファイル操作やシステムコマンドへのフルアクセスが必要な開発作業の標準モードです。


Plan

計画と分析のために設計された制限付きモード。Plan モードでは、次のツールはデフォルトで無効になっています。

  • write - 新しいファイルを作成できません
  • edit - 計画自体の詳細を示す .opencode/plans/*.md にあるファイルを除き、既存のファイルを変更できません
  • patch - パッチを適用できません
  • bash - シェルコマンドを実行できません

このモードは、コードベースに実際の変更を加えずに、AI にコードを分析させたり、変更を提案したり、計画を作成させたい場合に便利です。


切り替え

セッション中に Tab キーを使用してモードを切り替えることができます。または、設定された switch_mode キーバインド。

参照: コードのフォーマット設定については、Formatters


設定

組み込みモードをカスタマイズしたり、構成を通じて独自のモードを作成したりできます。モードは次の 2 つの方法で設定できます。

JSON 設定

opencode.json 設定ファイルでモードを構成します。

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mode": {
"build": {
"model": "anthropic/claude-sonnet-4-20250514",
"prompt": "{file:./prompts/build.txt}",
"tools": {
"write": true,
"edit": true,
"bash": true
}
},
"plan": {
"model": "anthropic/claude-haiku-4-20250514",
"tools": {
"write": false,
"edit": false,
"bash": false
}
}
}
}

Markdown 設定

Markdown ファイルを使用してモードを定義することもできます。それらを次の場所に置きます。

  • グローバル: ~/.config/opencode/modes/
  • プロジェクト: .opencode/modes/
~/.config/opencode/modes/review.md
---
model: anthropic/claude-sonnet-4-20250514
temperature: 0.1
tools:
write: false
edit: false
bash: false
---
You are in code review mode. Focus on:
- Code quality and best practices
- Potential bugs and edge cases
- Performance implications
- Security considerations
Provide constructive feedback without making direct changes.

Markdown ファイル名はモード名になります (例: review.mdreview モードを作成します)。

これらの設定オプションを詳しく見てみましょう。


モデル

model 設定を使用して、このモードのデフォルトモデルをオーバーライドします。さまざまなタスクに最適化されたさまざまなモデルを使用する場合に役立ちます。たとえば、計画にはより高速なモデルを、実装にはより有能なモデルを使用します。

opencode.json
{
"mode": {
"plan": {
"model": "anthropic/claude-haiku-4-20250514"
}
}
}

温度

temperature 設定を使用して、AI の応答のランダム性と創造性を制御します。値が低いほど、応答はより集中的かつ決定的になりますが、値が高いほど、創造性と変動性が高まります。

opencode.json
{
"mode": {
"plan": {
"temperature": 0.1
},
"creative": {
"temperature": 0.8
}
}
}

通常、温度値の範囲は 0.0 ~ 1.0 です。

  • 0.0-0.2: 非常に焦点が絞られた決定的な応答。コード分析と計画に最適です。
  • 0.3-0.5: 創造性を備えたバランスの取れた応答。一般的な開発タスクに適しています。
  • 0.6-1.0: より創造的で多様な応答。ブレーンストーミングや探索に役立ちます。
opencode.json
{
"mode": {
"analyze": {
"temperature": 0.1,
"prompt": "{file:./prompts/analysis.txt}"
},
"build": {
"temperature": 0.3
},
"brainstorm": {
"temperature": 0.7,
"prompt": "{file:./prompts/creative.txt}"
}
}
}

温度が指定されていない場合、OpenCode はモデル固有のデフォルトを使用します (通常、ほとんどのモデルでは 0、Qwen モデルでは 0.55)。


プロンプト

prompt 設定を使用して、このモードのカスタムシステムプロンプトファイルを指定します。プロンプトファイルには、モードの目的に固有の指示が含まれている必要があります。

opencode.json
{
"mode": {
"review": {
"prompt": "{file:./prompts/code-review.txt}"
}
}
}

このパスは、設定ファイルが配置されている場所に対する相対パスです。したがって、これはグローバルな OpenCode 設定とプロジェクト固有の設定の両方で機能します。


ツール

tools 設定を使用して、このモードでどのツールを使用できるかを制御します。特定のツールを true または false に設定することで、有効または無効にすることができます。

{
"mode": {
"readonly": {
"tools": {
"write": false,
"edit": false,
"bash": false,
"read": true,
"grep": true,
"glob": true
}
}
}
}

ツールが指定されていない場合は、すべてのツールがデフォルトで有効になります。


利用可能なツール

ここでは、モード設定を通じて制御できるすべてのツールを示します。

ツール説明
bashシェルコマンドを実行する
edit既存のファイルを変更する
write新しいファイルを作成する
readファイルの内容を読み取る
grepファイルの内容を検索
globパターンでファイルを検索
listディレクトリの内容をリストする
patchファイルにパッチを適用する
todowriteToDo リストを管理する
todoreadToDo リストを読む
webfetchWeb コンテンツを取得する

カスタムモード

構成に追加することで、独自のカスタムモードを作成できます。両方のアプローチを使用した例を次に示します。

JSON 設定の使用

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mode": {
"docs": {
"prompt": "{file:./prompts/documentation.txt}",
"tools": {
"write": true,
"edit": true,
"bash": false,
"read": true,
"grep": true,
"glob": true
}
}
}
}

Markdown ファイルの使用

モードファイルをプロジェクト固有モードの場合は .opencode/modes/ に、グローバルモードの場合は ~/.config/opencode/modes/ に作成します。

.opencode/modes/debug.md
---
temperature: 0.1
tools:
bash: true
read: true
grep: true
write: false
edit: false
---
You are in debug mode. Your primary goal is to help investigate and diagnose issues.
Focus on:
- Understanding the problem through careful analysis
- Using bash commands to inspect system state
- Reading relevant files and logs
- Searching for patterns and anomalies
- Providing clear explanations of findings
Do not make any changes to files. Only investigate and report.
~/.config/opencode/modes/refactor.md
---
model: anthropic/claude-sonnet-4-20250514
temperature: 0.2
tools:
edit: true
read: true
grep: true
glob: true
---
You are in refactoring mode. Focus on improving code quality without changing functionality.
Priorities:
- Improve code readability and maintainability
- Apply consistent naming conventions
- Reduce code duplication
- Optimize performance where appropriate
- Ensure all tests continue to pass

ユースケース

さまざまなモードの一般的な使用例をいくつか示します。

  • ビルドモード: すべてのツールを有効にした完全な開発作業
  • 計画モード: 変更を加えずに分析および計画を立てる
  • レビューモード: 読み取り専用アクセスとドキュメントツールによるコードレビュー
  • デバッグモード: bash および読み取りツールを有効にして調査に重点を置きます
  • ドキュメントモード: ファイル操作を使用してドキュメントを作成しますが、システムコマンドは使用しません

また、さまざまなユースケースにさまざまなモデルが適していることがわかるかもしれません。