OpenCode: OpenCode Configuration File

最終更新:2026-08-31

--- title: OpenCode設定ファイル description: OpenCodeの設定ファイル構造、opencode.jsonの完全な設定項目とよく使う設定を学ぶ order: 4 lang: ja

OpenCodeはopencode.json設定ファイルで全設定を管理します。モデル、エージェント、ツール、テーマなどを含みます。

1. 学習内容


2. 設定ファイルの場所

OpenCodeは以下の優先順位で設定を読み込みます(後者が前者を上書き):

優先順位 パス スコープ
1 ~/.config/opencode/opencode.json グローバル設定
2 <project>/.opencode/opencode.json プロジェクト設定
3 環境変数 実行時上書き

3. 完全な設定構造

JSON
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {},
  "model": {},
  "agent": {},
  "tools": {},
  "permission": {},
  "theme": {},
  "tui": {}
}

(1) provider(プロバイダー設定)

カスタムモデルプロバイダーの設定:

JSON
{
  "provider": {
    "my-provider": {
      "name": "My Custom Provider",
      "baseURL": "https://api.example.com/v1",
      "apiKey": "sk-xxx"
    }
  }
}

(2) model(モデル設定)

デフォルトで使用するモデルの設定:

JSON
{
  "model": {
    "default": "anthropic/claude-sonnet-4-20250514"
  }
}

(3) agent(エージェント設定)

カスタムエージェントの設定(第13課で詳細解説):

JSON
{
  "agent": {
    "build": {
      "mode": "primary",
      "model": "anthropic/claude-sonnet-4-20250514"
    }
  }
}

(4) tools(ツール設定)

グローバルツールのオン/オフ:

JSON
{
  "tools": {
    "write": true,
    "edit": true,
    "bash": true
  }
}

(5) permission(権限設定)

きめ細かい権限制御:

JSON
{
  "permission": {
    "edit": "ask",
    "bash": {
      "*": "ask",
      "git status *": "allow",
      "grep *": "allow"
    }
  }
}

権限値の説明:

説明
allow 直接許可
ask ユーザーの確認が必要
deny 直接拒否

(6) tui(TUI設定)

ターミナルインターフェース設定:

JSON
{
  "tui": {
    "scroll_speed": 3,
    "scroll_acceleration": {
      "enabled": true
    }
  }
}

4. AGENTS.md(プロジェクトルール)

AGENTS.mdはOpenCodeのプロジェクトレベルのルールファイルで、プロジェクトルートに配置し、AIの動作制約を定義します。

(1) 作成方法

TUIで入力:

TEXT 📖 参照専用
/init

または手動でAGENTS.mdファイルを作成。

(2) 内容例

MARKDOWN
# Project Rules

- Always use TypeScript for new files
- Follow ESLint configuration
- Write unit tests for all new functions
- Use conventional commits format

(3) スコープ


5. 環境変数

変数 作用
OPENCODE_AUTO_SHARE boolean セッションの自動共有
OPENCODE_CONFIG string カスタム設定パス
OPENCODE_TUI_CONFIG string TUI設定パス
OPENCODE_DISABLE_AUTOUPDATE boolean 自動更新の無効化
OPENCODE_SERVER_PASSWORD string APIサービス認証パスワード
OPENCODE_MODELS_URL string カスタムモデルソース

実験的環境変数

変数 作用
OPENCODE_EXPERIMENTAL boolean 全実験機能の有効化
OPENCODE_EXPERIMENTAL_LSP_TOOL boolean LSPツール
OPENCODE_EXPERIMENTAL_PLAN_MODE boolean プランニングモード
OPENCODE_EXPERIMENTAL_FILEWATCHER boolean ファイル監視

❓ FAQ

Q グローバル設定とプロジェクト設定が競合する場合、どちらが優先されますか?
A プロジェクト設定が優先。OpenCodeは優先順位に従って読み込み、後者が前者を上書きするため、プロジェクトレベルの設定がグローバルデフォルトを上書きします。
Q AGENTS.mdとopencode.jsonの違いは?
A AGENTS.mdは自然言語でルールを記述し、AIが読み込み遵守します。opencode.jsonは構造化JSONで設定を定義し、OpenCodeプログラムが読み込み実行します。両者は補完関係にあり、競合しません。
Q Aliceのチームには10のプロジェクトがあり、各プロジェクトの設定が異なります。どう管理しますか?
A グローバル設定に共通のデフォルト値を設定し、各プロジェクトディレクトリの.opencode/opencode.jsonにプロジェクト固有の設定を置く。これでAliceは1つのグローバル設定+各プロジェクトの差分設定を管理するだけで済みます。

📖 まとめ


📝 練習問題

  1. 基本問題:グローバルopencode.jsonを作成し、よく使うモデルプロバイダーを設定してください。

  2. 応用問題:プロジェクト用に.opencode/opencode.jsonを作成し、プロジェクトレベルのツール権限を設定してください。

  3. チャレンジ問題:AGENTS.mdを作成してプロジェクトのコーディング規約とAI動作制約を定義し、OpenCodeにルールに従ってタスクを実行させてください。

Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%