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

設定レイヤー

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

各レベルの使い分け

ユーザー設定

パス: ~/.config/devin/config.json (Windows では %APPDATA%\devin\config.json)どこでも適用される個人設定に利用します:
  • デフォルトのモデル設定
  • テーマ設定
  • 個人用の MCP サーバー (例: 自分の APIキー)
  • グローバルな権限の許可設定
パス: .devin/config.jsonリポジトリにコミットするチームの標準設定に利用します。このレベルで利用できるのは permissionsmcpServersread_config_fromhooks のみです:
  • 共有の MCP サーバー (シークレットを含まない設定)
  • チームの権限ポリシー
  • 設定のインポート
  • ライフサイクルフック
パス: .devin/config.local.jsonコミットすべきでない個人用の上書き設定に利用します:
  • APIキーやシークレット
  • このプロジェクト向けの個人用ツール設定
  • 権限の上書き
ローカル設定ファイルは、.git/info/exclude によって自動的に git の対象外になります。
チーム設定ダッシュボードから Enterprise 管理者が管理します。これらの設定は個々のユーザーが上書きできず、モデルの制限や MCP サーバー の許可リストなど、組織全体のポリシーを強制適用します。

各レベルで利用できる設定

プロジェクト設定 (.devin/config.json および .devin/config.local.json) でサポートされるのは一部の設定のみです。以下の表は、各レベルで利用できる設定を示しています。 ユーザー設定専用と記載された設定は、ユーザー設定 (~/.config/devin/config.json、Windows では %APPDATA%\devin\config.json) でのみ指定でき、上記の優先順位の階層には含まれません。

マージの仕組み

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

権限

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

MCP サーバー

MCP サーバーの設定は、名前ごとにマージされます。上位レベルで定義されたサーバーは、下位レベルの同名サーバーを上書きします。 たとえば、ユーザー設定とプロジェクト設定の両方で “github” サーバーを定義している場合は、ユーザー設定より優先度が高いプロジェクト設定の内容が適用されます。

フック

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

プロジェクトルートの検出

Devin CLIは、現在の作業ディレクトリから上位に向かって.gitまたは.jjディレクトリをたどり、プロジェクトルートを特定します。プロジェクト設定 (.devin/) は、プロジェクトルートから読み込まれます。
ネストされた.devin/ディレクトリがある場合 (たとえばモノレポ内) 、サブディレクトリの設定が親ディレクトリの設定より優先されます。

ファイル検出の概要

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