Claude Codeのパーミッションモードは、エージェントが確認のために停止することなく実行できるアクションを決定します。モードは4つあります。planは読み取りのみで何も変更せず、defaultはパーミッションルールに従って編集やコマンドの前に確認し、acceptEditsはファイル編集を確認なしで適用しつつコマンド実行前には確認し、bypassPermissionsは何も確認しません。いずれかを選択することは、そのディレクトリ内でエージェントをどれだけ信頼しているかの表明となります。
その表明は、リクエストを入力している人がマシンのオーナーではないとなった瞬間に、より複雑になります。本記事では、Claude Codeが定義する各モードを説明した上で、共有ルームにおいて何が変わるのかを解説します。
4つのモード
plan. エージェントはファイルを読み取り、検索と推論を行い、プランを作成します。編集や実行は一切行いません。「何をするつもりか教えてほしい」場合や、変更権限を与えるべきでないコードベースを誰かに探索してもらうためのモードです。
default. パーミッションルールですでに特定のツールやパターンが許可されていない限り、エージェントは編集ごと、コマンドごとに確認します。画面を見守りながら各プロンプトに対して判断を下すペアプログラミングに適しています。
acceptEdits. ファイルの編集はプロンプトの確認なしで行われますが、コマンド実行前には確認が入ります。誤った編集の差し戻しが容易(バージョン管理下にある)で、誤ったコマンドの実行はそうではないリポジトリで役立ちます。
bypassPermissions. 何も確認しません。誤った指示やインジェクションされた指示がローカルの完全な権限で実行されてしまうため、Anthropicのガイダンスでは、これをサンドボックス化された使い捨て環境専用にすることが推奨されています。
planからbypassPermissionsまでの段階と、エージェントが共有されている場合にモードを問わず一時停止する4つのアクション。
なぜモードは人ではなくディレクトリに紐づくのか
パーミッションモードはセッション単位で設定され、実質的には作業ディレクトリ単位を意味します。1人で作業しているなら、この単位で問題ありません。ドキュメントのリポジトリはacceptEditsで動かし、インフラのリポジトリはdefaultで動かし、使い捨ての実験環境はbypassPermissionsで動かせばよいからです。
しかし、別の人がリクエストを送信できるようになると、これだけでは不十分になります。相手のリクエストはあなたのセッションのモードで実行されます。コードを読みたいだけの共同創業者が、先週あなたが自分のためにacceptEditsを設定していたせいでコードを編集してしまうことになります。モード自体には人ごとの次元が存在しません。
ルームで変わること
mutiのルームでは、ディレクトリ向けにエージェントを作成した際に選択したClaude Codeのパーミッションモードが引き続き有効です。その上に2つの仕組みが重ねられます。
人ごとのパーミッション。 オーナー以外からの各リクエストは、都度承認されるか、そのエージェントに対してその人に付与した恒久的な「常に許可」によってカバーされます。この恒久的な許可はいつでもRevokeでき、その人からキューに入っていたリクエストはCancelされます。
常に一時停止する4つのアクション。 モードや許可設定にかかわらず、共有ブランチへのプッシュ、削除、支出の発生、クレデンシャルへの接触はオーナーの確認のために停止します。bypassPermissionsのエージェントであっても、リクエストが他の誰かからのものである場合はここで一時停止します。その理由はエージェントが実行前に必ず確認すべき4つのアクションで解説しています。
実践的な使い分け
- 他のメンバーによる探索: エージェントを
planで作成します。ゲストは質問でき、ディスク上の内容は何も変更されません。 - 信頼できる人との日常業務:
acceptEditsにし、それらの人に恒久的な許可を付与します。コマンドは引き続き確認され、4つのアクションも一時停止します。 - 自分専用の使い捨てサンドボックス: ルームに誰もいないため
bypassPermissionsで問題ありません。誰かをInviteした瞬間に見直してください。 - 本番環境のクレデンシャルがディレクトリに含まれる場合:
defaultにして恒久的な許可は付与せず、クレデンシャルを必要としない部分には別のエージェントを用意します。
よくある質問
ルームはClaude Codeのモードを上書きしますか? いいえ。実行内でエージェントが何を行うかは、依然としてモードが制御します。ルームは、誰が実行を開始できるか、どの操作で無条件に一時停止するかを追加します。
リクエスト送信側がモードを選択できますか? いいえ。オーナーがエージェントごとに選択します。リクエスト送信側はリクエスト内で読み取り専用の挙動を希望でき、オーナーは承認時に「読み取り専用で続行」と応答できます。
共有エージェントでbypassPermissionsが許容されるケースはありますか? 取り返しのつかないことが何も起こり得ないディレクトリに限り許容され、その場合でも4つのアクションは一時停止します。別記事の自分には問題なくても他の誰かには危険なbypassPermissionsで詳しく解説しています。
Codexの場合はどうなりますか? Codexにも同様の承認設定があります。ルーム内では、人ごとの許可と4つの常時一時停止アクションが同様に適用されます。
ディレクトリにモードを設定し、人に許可を設定し、4つのアクションには確認を求めさせる。モデルの全体像はこれだけです。実際に確認するには、エージェントにルームを用意してみてください。
公開日