English | 日本語
グローバルのデフォルトは ~/.config/opencode/magi.jsonに、プロジェクトごとの上書きは、<project>/.opencode/magi.jsonに設定します。
Magiの設定ファイルは、OpenCodeではなくOpenCode Magiによってマージされます。プロジェクトの設定ファイルは、グローバルの設定ファイルをオーバーライドします。
~/.config/opencode/magi.json<project>/.opencode/magi.json
/magi:validateで設定内容、認証状態、モデルが使用可能かどうかを検証できます。OpenCodeで次のコマンドを実行します。
/magi:validate{
"$schema": "https://raw.githubusercontent.com/magi-ai/opencode-magi/main/schema.json",
"account": "your-account",
"agents": {
"refs": {
"account-1": {
"model": "openai/gpt-5.5"
},
"account-2": {
"model": "anthropic/claude-opus-4-7"
},
"account-3": {
"model": "opencode/kimi-k2-6"
}
}
},
"review": {
"reviewers": [
{
"ref": "account-1"
},
{
"ref": "account-2"
},
{
"ref": "account-3"
}
]
}
}{
"$schema": "https://raw.githubusercontent.com/magi-ai/opencode-magi/main/schema.json",
"account": "your-account",
"github": {
"owner": "your-owner",
"repo": "your-repo"
},
"agents": {
"refs": {
"account-1": {
"model": "openai/gpt-5.5"
},
"account-2": {
"model": "anthropic/claude-opus-4-7"
},
"account-3": {
"model": "opencode/kimi-k2-6"
},
"account-4": {
"model": "openai/gpt-5.5",
"author": {
"name": "account-4",
"email": "your-email@example.com"
}
}
}
},
"review": {
"reviewers": [
{
"ref": "account-1"
},
{
"ref": "account-2"
},
{
"ref": "account-3"
}
]
},
"merge": {
"editor": {
"ref": "account-4"
}
},
"triage": {
"voters": [
{
"ref": "account-1"
},
{
"ref": "account-2"
},
{
"ref": "account-3"
}
]
}
}agents.refsのキーをrefに設定すると、そのエージェントの設定が展開されます。ref以外でフィールドを設定した場合は、そのエージェントの設定をオーバーライドします。
{
"agents": {
"refs": {
"gpt-5.5": {
"model": {
"id": "openai/gpt-5.5",
"variant": "high"
}
}
}
},
"review": {
"reviewers": [
{
"ref": "gpt-5.5",
"account": "account-1"
},
{
"ref": "gpt-5.5",
"account": "account-2"
}
]
}
}modelには、文字列(provider/model)、idとvariantのオブジェクト、または配列を指定できます。配列は、先頭から順々に利用可能なモデルかどうかを検証し、利用可能なモデルが見つかったら、そのモデルを採用します。
{
"model": {
"id": "openai/gpt-5.1",
"variant": "high"
}
}{
"model": [
{
"id": "anthropic/claude-opus-4-7",
"variant": "high"
},
{
"id": "openai/gpt-5.5",
"variant": "medium"
}
]
}agents.permissionsですべてのエージェントに共通したパーミッションを設定できます。個々のエージェントのpermissionsは、agents.permissionsをオーバーライドします。
{
"agents": {
"permissions": {
"read": "allow",
"edit": "deny",
"bash": {
"*": "deny",
"git status*": "allow",
"git diff*": "allow"
}
}
},
"review": {
"reviewers": [
{
"id": "security",
"model": "anthropic/claude-opus-4-7",
"permissions": {
"webfetch": "allow"
}
}
]
}
}allow、ask、denyを設定できます。文字列を指定すると対象権限全体に適用され、オブジェクトを指定するとパターンごとに許可・確認・拒否を設定できます。
デフォルトでは、シングルモード(mode: "single")です。複数のGitHubアカウントを使用するマルチモードにする場合は、mode: "multi"を設定し、各エージェントごとにアカウントを設定します。
review.reviewers内とtriage.voters内では、アカウントを一意にする必要があります。ロール間では同じアカウントを再利用できます。
{
"mode": "multi",
"review": {
"reviewers": [
{
"id": "general",
"model": "openai/gpt-5.5",
"account": "account-1"
},
{
"id": "security",
"model": "anthropic/claude-opus-4-7",
"account": "account-2"
},
{
"id": "compat",
"model": "opencode/kimi-k2-6",
"account": "account-3"
}
]
}
}