
権限を絞った Claude Code を「渡せる」ようになった
Claude Code v2.1.248(2026年8月27日)に --restricted が入った。環境変数では CLAUDE_CODE_RESTRICTED=1 である。
一次ソースの記述はこうなっている。
コマンドやコードを実行する組み込みツールと
WebFetchを外す(--toolsで明示した場合を除く)。ファイル系ツールは作業ディレクトリの内側に留める。bypassPermissionsを拒否する。ユーザー・プロジェクト・ローカルの設定ファイルを無視する。
何が外れて、何が残るか
--restricted での扱い |
|
|---|---|
| コマンド・コードを実行する組み込みツール | 外れる(--tools で明示すれば戻せる) |
WebFetch |
外れる(同上) |
| ファイル系ツール | 残る。ただし作業ディレクトリの外に出られない |
bypassPermissions |
拒否される |
| ユーザー/プロジェクト/ローカルの設定ファイル | 無視される |
許可モードを絞るのとは別の操作である点が重要である。許可モードは「都度聞く/聞かない」の話だが、--restricted はそもそも渡す道具を減らす。
で、SEの実務ではどう使うか
効くのは4つ目の「設定ファイルを無視する」である。
Claude Code を自動化に組み込むとき、いちばん厄介なのは手元では動くのに CI では落ちる、あるいはその逆という状態である。原因の多くは ~/.claude/settings.json やプロジェクト直下の設定で、書いた本人しか持っていない許可ルールが効いているからである。
--restricted を付けると、その差が消える。手元でも CI と同じ条件で走らせられる。 再現しない不具合を追う前に、まずこれを付けて切り分ける、という使い方ができる。
もうひとつは「渡せる」ようになったことである。
これまで、権限を絞った状態でセッションを他人に触らせようとすると、設定ファイルの管理まで含めて面倒を見る必要があった。フラグ1つで確定するなら、渡す側が何を渡したかを説明できる。
- CI やバッチのパイプラインに組み込むとき
- 検証環境で、リポジトリの外に触ってほしくないとき
- 社内で試用してもらうとき、実行系を外した状態で配りたいとき
稟議やセキュリティレビューで問われるのは「何ができないか」である。 許可モードの説明は「都度確認します」になりがちだが、--restricted はできないことがフラグで固定される。 説明する側にとってはこちらのほうが短い。
なお --tools で個別に戻せるので、「実行系は全部落として Read と Grep だけ渡す」といった構成も作れる。戻せる設計になっているぶん、何を戻したかを記録しておく必要はある。