デフォルトの権限の動作
Normal モード (デフォルト) では、読み取り専用の操作は自動承認されますが、書き込み操作とシェルコマンドの実行には明示的な承認が必要です。アクションを承認するたびに、1 回だけ許可するか、セッション中は許可するか、またはプロジェクトに対して永続的に許可するかを選択できます。
Accept Edits モードでは、ワークスペース内のファイル編集は自動承認されますが、シェルコマンドとワークスペース外への書き込みでは引き続き確認が表示されます。
Smart モードでは、Accept Edits と同様にワークスペース内の編集が自動承認され、その他のすべてのアクションは高速モデルによって判定され、明らかに安全な場合にのみ自動実行されます。それ以外の場合は通常どおり確認が表示されます。以下の Smart モード を参照してください。
Bypass モードでは、すべてのツール呼び出しが確認なしで自動承認されます。
Autonomous モードでは、OS レベルのサンドボックスによってアクセス可能な範囲が制限されるため、シェルコマンドとネットワークFetchは自動承認されます。一方、
edit/write ツールによる直接のファイル編集は、それらのツールがサンドボックスの外で動作するため、引き続き確認が表示されます。Autonomous は、OS レベルのサンドボックスがアクティブな場合にのみ利用できます。
Smart モード
Shift+Tab でSmartに切り替えるか、モードセレクターで選択するか、Smartモードで開始できます:
- パッケージのインストール (
npm install、pip install、cargo install、brew install、…) - 変更を伴う
git操作 (git statusなどの読み取り専用サブコマンドは引き続き対象です) rm、sudo、その他の破壊的なコマンドや権限昇格コマンドkubectl deleteおよび破壊的なクラウド CLI 操作 (aws、gcloud、az、terraform、…)- dotenv ファイル、鍵マテリアル、Git 設定、エージェント自身の設定を読み書きするすべての操作
独自のルールが引き続き最優先されます。Smart の判断は、既存のルールで判断されていない場合にのみ適用されます。そのため、Permissions の仕組みで説明しているとおり、
deny ルールは操作をブロックし、ask ルールは常に確認を求めます。組織レベルの拒否ルールと ask ルールも同様に影響を受けません。Smart モードは段階的に展開されているため、まだモードセレクターや
Shift+Tab による切り替えに表示されない場合があります。Autonomous モード
--sandbox フラグと組み合わせて使う権限モードです。概念的には、これはおおむね「現在のワークスペースで編集を受け入れる」に、任意のシェルコマンドを実行する機能を加えたもので、どちらの動作も OS レベルのサンドボックス内に制限されます。サンドボックスがアクティブな場合:
- 利用できる権限モードはこれだけです。 サンドボックスのセッションでは、Normal、Accept Edits、Smart、Bypass は表示されません。Plan モードは引き続き利用できます。
- シェルコマンドとFetchは、確認なしで自動承認されます。 サンドボックスによって、それらが読み取り・書き込みできる範囲や、ネットワーク経由で到達できる範囲が制限されるためです。
editおよびwriteツールによるファイルの直接編集では、引き続き確認が求められます。 これらのツールはサンドボックス内ではなく CLI プロセス内で実行されるため、サンドボックスで制限できません。プロンプトでWrite(...)スコープを付与すると、以後のシェルコマンドがその場所に書き込めるよう、サンドボックスが動的に拡張されます。- セッションの途中で付与された
Write(...)スコープによって、以後のコマンドに対するサンドボックスの範囲が動的に拡張されます。 セッション途中のRead(...)承認はエージェント自身のツールにのみ影響します。Read(...)拒否ルールによって非表示になっているパスは、セッション全体を通して非表示のままです。
--sandbox (Autonomous が選択されます) を利用してください。書き込み可能なルート、拒否ルール、ドメインフィルタリングの詳細については サンドボックス設定リファレンス を、Enterprise 向けの制御については チーム設定 → サンドボックス強制 を参照してください。
権限 の仕組み
- Deny rules — 最初に確認されます。一致した場合、その操作はただちにブロックされます。
- Ask rules — 次に確認されます。一致した場合は、常に確認を求められます (allow ルールより優先されます) 。
- Allow rules — 最後に確認されます。一致した場合、その操作は確認なしで実行されます。
- Default — 一致するルールがない場合は、承認を求められます。
deny は ask より先に確認され、ask は allow より先に確認されるため、deny ルールが常に優先されます。同じスコープが deny ルールと ask ルールの両方に一致する場合は、deny が適用されます。
設定
permissions セクションに権限を追加します。
Windows では、ユーザー設定ファイルのパスは
~/.config/devin/config.json ではなく、%APPDATA%\devin\config.json (通常は C:\Users\<you>\AppData\Roaming\devin\config.json) です。詳しくは Configuration File を参照してください。- プロジェクト設定
- ユーザー設定
- ローカルオーバーライド
権限の構文
スコープベースの権限
Read(glob)
Read(glob)
ファイルの読み取り権限を制御します。glob パターンはファイルパスにマッチします。ディレクトリパスは、その配下のすべてのファイルに自動的にマッチします。
Write(glob)
Write(glob)
ファイルの書き込み/編集権限を制御します。
Exec(prefix)
Exec(prefix)
シェルコマンドの実行権限を制御します。指定したプレフィックスで始まるコマンドにマッチします。
Exec(git) は “git”、“git status”、“git commit -m ‘msg’” にはマッチしますが、“gitk” や “github-cli” にはマッチしません。プレフィックスは完全な単語として一致する必要があります。Fetch(pattern)
Fetch(pattern)
URL パターンを使って HTTP fetch 権限を制御します。URL パターンは WHATWG URL Pattern 標準に従います。
domain: の省略記法は、完全一致するドメイン上の任意のパスにマッチします。ツールベースの権限
read, edit, grep, glob, exec
MCP ツールの権限
パスパターン
Read() と Write() では、以下の glob パターンをサポートしています。
使用例:
システム上のすべてのファイルを対象にしたい場合は、絶対パスのプレフィックス (例:
Read(/**)) を使用してください。先頭に / のない Read(**) は現在の作業ディレクトリからの相対パスとして解決されるため、そのディレクトリ配下のファイルにしか一致せず、他の場所にある絶対パス経由のファイルには一致しません。永続化オプション
Command のプロンプトでは、両方のスコープが明示的に提示されます。「はい、
<project> 内の <cmd> コマンドを常に許可する」を選択すると現在のプロジェクトに対する許可が保存され、「はい、すべてのプロジェクトで <cmd> コマンドを常に許可する」を選択するとユーザー設定に保存され、すべてのプロジェクトに適用されます。特定の URL またはドメインに対する Web Fetch のプロンプトには、フェッチを許可リストに一括追加する、同等の「はい、すべての Web Fetch を常に許可する」オプションが追加されます。
承認前に Command を編集する
MCPサーバーレベルの権限付与
list_issues) の許可を求められた場合、権限プロンプトには、より広いサーバーレベルの選択肢も表示されます。
これにより、信頼できるMCPサーバーに対して、各ツールを個別に承認しなくても、まとめてすばやくアクセスを許可できます。
優先順位
- 組織/チームの設定 (Enterprise の場合)
- セッションレベルの付与 (対話的な承認)
- プロジェクトのローカル設定 (
.devin/config.local.json) - プロジェクト設定 (
.devin/config.json) - ユーザー設定 (
~/.config/devin/config.json、Windows では%APPDATA%\devin\config.json)

