OpenCode: OpenCode Configuration File
最終更新:2026-08-31
--- title: OpenCode設定ファイル description: OpenCodeの設定ファイル構造、opencode.jsonの完全な設定項目とよく使う設定を学ぶ order: 4 lang: ja
OpenCodeはopencode.json設定ファイルで全設定を管理します。モデル、エージェント、ツール、テーマなどを含みます。
1. 学習内容
- 設定ファイルの場所と優先順位
- opencode.jsonの完全な構造
- よく使う設定項目の詳細
- 環境変数の設定
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) スコープ
- AIは現在のプロジェクトで自動的にAGENTS.mdのルールを読み込み、従います
- 他のプロジェクトには影響しない
- opencode.jsonと組み合わせて使用可能
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つのグローバル設定+各プロジェクトの差分設定を管理するだけで済みます。
📖 まとめ
- 設定ファイルは優先順位で読み込み:グローバル < プロジェクト < 環境変数
- opencode.jsonがコア設定で、モデル、エージェント、ツール、権限をカバー
- AGENTS.mdは自然言語でプロジェクトルールを定義
- 環境変数は一時的な上書きやCI/CDシーンに適している
📝 練習問題
-
基本問題:グローバルopencode.jsonを作成し、よく使うモデルプロバイダーを設定してください。
-
応用問題:プロジェクト用に.opencode/opencode.jsonを作成し、プロジェクトレベルのツール権限を設定してください。
-
チャレンジ問題:AGENTS.mdを作成してプロジェクトのコーディング規約とAI動作制約を定義し、OpenCodeにルールに従ってタスクを実行させてください。