> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 設定の優先順位

> グローバル、プロジェクト、ローカルの設定がどのように適用されるか

Devin CLI は複数のソースから設定を読み込み、それらをまとめて適用します。優先順位を理解しておくと、チームや個人の好みに合った適切な設定を行いやすくなります。

***

<div id="configuration-layers">
  ## 設定レイヤー
</div>

優先度の高い順から低い順:

| 優先度         | ソース                                                                            | 注記               |
| ----------- | ------------------------------------------------------------------------------ | ---------------- |
| 1 (highest) | 組織 / チーム設定                                                                     | 上書き不可            |
| 2           | セッション (対話型承認)                                                                  | メモリ上のみ           |
| 3           | プロジェクトローカル (`.devin/config.local.json`)                                        | 個人用、gitignore 対象 |
| 4           | プロジェクト (`.devin/config.json`)                                                  | チームで共有           |
| 5 (lowest)  | ユーザー (`~/.config/devin/config.json`; Windows では `%APPDATA%\devin\config.json`) | デフォルト設定          |

同じ設定が複数のレベルで定義されている場合は、より優先度の高いソースが適用されます。

***

<div id="when-to-use-each-level">
  ## 各レベルの使い分け
</div>

<AccordionGroup>
  <Accordion title="ユーザー設定" icon="user" defaultOpen>
    **パス:** `~/.config/devin/config.json` (Windows では `%APPDATA%\devin\config.json`)

    どこでも適用される個人設定に利用します:

    * デフォルトのモデル設定
    * テーマ設定
    * 個人用の MCP サーバー (例: 自分の APIキー)
    * グローバルな権限の許可設定

    ```json theme={null}
    {
      "agent": { "model": "opus" },
      "permissions": {
        "allow": ["Read(**)", "Exec(git)"]
      }
    }
    ```
  </Accordion>

  <Accordion title="プロジェクト設定" icon="folder">
    **パス:** `.devin/config.json`

    リポジトリにコミットするチームの標準設定に利用します。このレベルで利用できるのは `permissions`、`mcpServers`、`read_config_from`、`hooks` のみです:

    * 共有の MCP サーバー (シークレットを含まない設定)
    * チームの権限ポリシー
    * 設定のインポート
    * ライフサイクルフック

    ```json theme={null}
    {
      "permissions": {
        "allow": ["Exec(npm run)", "Read(src/**)"],
        "deny": ["Exec(sudo)"]
      },
      "mcpServers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"]
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="プロジェクトのローカル設定" icon="lock">
    **パス:** `.devin/config.local.json`

    コミットすべきでない個人用の上書き設定に利用します:

    * APIキーやシークレット
    * このプロジェクト向けの個人用ツール設定
    * 権限の上書き

    ```json theme={null}
    {
      "mcpServers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": {
            "GITHUB_TOKEN": "ghp_my_personal_token"
          }
        }
      }
    }
    ```

    <Tip>
      ローカル設定ファイルは、`.git/info/exclude` によって自動的に git の対象外になります。
    </Tip>
  </Accordion>

  <Accordion title="組織設定" icon="building">
    チーム設定ダッシュボードから Enterprise 管理者が管理します。これらの設定は個々のユーザーが上書きできず、モデルの制限や MCP サーバー の許可リストなど、組織全体のポリシーを強制適用します。
  </Accordion>
</AccordionGroup>

***

<div id="whats-available-at-each-level">
  ## 各レベルで利用できる設定
</div>

プロジェクト設定 (`.devin/config.json` および `.devin/config.local.json`) でサポートされるのは一部の設定のみです。以下の表は、各レベルで利用できる設定を示しています。

| 設定                         | ユーザー設定 | プロジェクト設定 |
| -------------------------- | :----: | :------: |
| `permissions`              |    ✓   |     ✓    |
| `mcpServers`               |    ✓   |     ✓    |
| `read_config_from`         |    ✓   |     ✓    |
| `hooks`                    |    ✓   |     ✓    |
| `agent` (モデル)              |    ✓   |     ✗    |
| `theme_mode`               |    ✓   |     ✗    |
| `unicode_mode`             |    ✓   |     ✗    |
| `show_path`                |    ✓   |     ✗    |
| `show_hints`               |    ✓   |     ✗    |
| `include_gitignored_files` |    ✓   |     ✗    |
| `sandbox`                  |    ✓   |     ✗    |

ユーザー設定専用と記載された設定は、ユーザー設定 (`~/.config/devin/config.json`、Windows では `%APPDATA%\devin\config.json`) でのみ指定でき、上記の優先順位の階層には含まれません。

***

<div id="how-merging-works">
  ## マージの仕組み
</div>

上記の優先順位表は、複数レベルに対応している設定 (`permissions`、`mcpServers`、`read_config_from`、`hooks`) にのみ適用されます。

<div id="permissions">
  ### 権限
</div>

権限リストは、各レベルをまたいで**マージ** (結合) されます。上位レベルで拒否された権限は、下位レベルで許可しても上書きできません。

たとえば、組織で `Exec(sudo)` が拒否されている場合、ユーザーの許可リストに `Exec(sudo)` を追加しても効果はありません。常に組織の拒否設定が優先されます。ただし、プロジェクトレベルでの `Read(**)` のような他の権限は、通常どおり適用されます。

<div id="mcp-servers">
  ### MCP サーバー
</div>

MCP サーバーの設定は、**名前ごとに**マージされます。上位レベルで定義されたサーバーは、下位レベルの同名サーバーを上書きします。

たとえば、ユーザー設定とプロジェクト設定の両方で "github" サーバーを定義している場合は、ユーザー設定より優先度が高いプロジェクト設定の内容が適用されます。

<div id="hooks">
  ### フック
</div>

フックはすべてのソースから**収集**され、すべて実行されます。ユーザー設定で定義されたフックは、プロジェクト設定で定義されたフックと並行して実行され、互いに上書きされることはありません。

***

<div id="project-root-detection">
  ## プロジェクトルートの検出
</div>

Devin CLIは、現在の作業ディレクトリから上位に向かって`.git`または`.jj`ディレクトリをたどり、プロジェクトルートを特定します。プロジェクト設定 (`.devin/`) は、プロジェクトルートから読み込まれます。

<Note>
  ネストされた`.devin/`ディレクトリがある場合 (たとえばモノレポ内) 、サブディレクトリの設定が親ディレクトリの設定より優先されます。
</Note>

***

<div id="file-discovery-summary">
  ## ファイル検出の概要
</div>

| ファイル                                | 検出方法                    | 共有されるか             |
| ----------------------------------- | ----------------------- | ------------------ |
| `~/.config/devin/config.json`       | XDG パス                  | いいえ                |
| `.devin/config.json`                | カレントワーキングディレクトリから親方向に探索 | はい (コミット済み)        |
| `.devin/config.local.json`          | カレントワーキングディレクトリから親方向に探索 | いいえ (gitignore 対象) |
| `.devin/skills/*/SKILL.md`          | プロジェクトルート               | はい (コミット済み)        |
| `~/.config/devin/skills/*/SKILL.md` | XDG パス                  | いいえ                |
| `AGENTS.md`                         | プロジェクトルート               | はい (コミット済み)        |
| `~/.config/devin/AGENTS.md`         | XDG パス                  | いいえ                |

<Note>
  **Windows:** `~/.config/devin/` と表示されているパスは、Linux/macOS の XDG 規約に基づいています。Windows では、これらは `%APPDATA%\devin\` (通常は `C:\Users\<YourUser>\AppData\Roaming\devin\`) に対応します。
</Note>
