日本語
ドキュメント
モード

モード

さまざまなユースケースに対応するモードです。

注意: モードは opencode 設定の agent オプションで設定するようになりました。mode オプションは非推奨です。詳しくはこちら

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

組み込みモードとして buildplan の2つが用意されています。これらをカスタマイズしたり、opencode 設定で独自のモードを構成したりできます。

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


組み込みモード

opencode には2つの組み込みモードがあります。

Build

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

Plan

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

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

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


切り替え

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

参照:コードフォーマット設定についてはフォーマッターをご覧ください。


設定

組み込みモードをカスタマイズしたり、設定を通じて独自のモードを作成したりできます。モードは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

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

opencode.json

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

Temperature

temperature 設定で AI の応答のランダム性と創造性を制御します。低い値は応答をより集中的で決定論的にし、高い値は創造性と多様性を高めます。

opencode.json

{
  "mode": {
    "plan": {
      "temperature": 0.1
    },
    "creative": {
      "temperature": 0.8
    }
  }
}

Temperature の値は通常 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}"
    }
  }
}

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


Prompt

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

opencode.json

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

このパスは設定ファイルの場所からの相対パスです。そのため、グローバルな opencode 設定とプロジェクト固有の設定の両方で機能します。


Tools

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

ユースケース

さまざまなモードの一般的なユースケースを以下に示します。

  • Build モード:すべてのツールが有効なフル開発作業
  • Plan モード:変更を加えない分析と計画
  • Review モード:読み取り専用アクセスとドキュメントツールによるコードレビュー
  • Debug モード:bash と read ツールが有効な調査に特化
  • Docs モード:システムコマンドなしのファイル操作によるドキュメント作成

ユースケースによって異なるモデルが適している場合もあります。