--restricted が Claude Code 2.1.248 で追加されました(測定に使ったのは 2.1.250)。
公式の説明は「コマンド実行系のツールと WebFetch を外し、ファイル操作を作業ディレクトリに限定する」です。安全に使うためのモードという書き方をしています。
手元で測ったら、それだけではありませんでした。
ツール : 42 → 23(45% が消える)
自作スキル : 47本 → 0本
スキルを積んでいる人ほど、影響が大きいモードです。
検証環境: Windows 10 / Claude Code 2.1.250 / 測定は 2026-08-28 時点
何のためのモードか
公式の CLI リファレンスにこう書かれています。
Use it when an evaluation harness drives
claudeon a shared machine and Claude Code must not run commands or read that machine's user and project settings.
(評価ハーネスが共有マシン上でclaudeを動かすときに使う。Claude Code がコマンドを実行したり、そのマシンのユーザー設定・プロジェクト設定を読んだりしてはいけない場合である)
共有マシンで自動実行する場面を想定しています。CI やサンドボックスが近い用途です。
制限は4つ。
- コマンド実行系のツールと
WebFetchを外す - ファイル操作を作業ディレクトリ内に限定する
- 管理設定と
--settingsだけを読み、ユーザー設定・プロジェクト設定は読まない -
bypassPermissionsを拒否する
3つ目が本題です。
ツールが 42 から 23 になった
同じ質問を、通常モードと --restricted で投げました。
claude -p "いま自分が使えるツールの名前を、カンマ区切りで全部挙げてください。"
claude --restricted -p "(同じ質問)"
19個が消えました。
| 消えたもの | 公式の説明との対応 |
|---|---|
Bash / PowerShell
|
説明どおり(コマンド実行系) |
WebFetch |
説明どおり |
Workflow / Monitor / LSP / RemoteTrigger / CronCreate
|
説明にない |
| MCP ツール 8個すべて | 説明にない(サーバーごと落ちる) |
MCP がまるごと落ちるのは、書かれていませんでした。 MCP サーバーを前提に組んでいる人は、ここで止まります。
残るものにも意外性があった
「制限モード」と聞いて読み取り専用を想像しましたが、違いました。
| 残るもの | |
|---|---|
Write / Edit
|
ファイルは書ける |
Agent |
サブエージェントは起動できる |
WebSearch |
消えるのは WebFetch だけ |
Skill |
ツールとしては残る(ただし後述) |
読み取り専用モードではありません。 目的は「外部コマンドを実行させない」ことと「設定を読ませない」ことです。
本題:自作スキルが1本も見えなくなる
ここが一番効きました。
claude -p "いま利用できるスキルの名前を、カンマ区切りで挙げてください。"
通常モードでは、~/.claude/skills/ に置いた47本が全部出ます。
ai-news-radar, cloudflare-deploy, decompose, demo-qa, demo-recorder,
fastapi-async-patterns, find-skills, gemini-api, jqit-estimate, ...
--restricted ではこうなりました。
design, dataviz, artifact-design, artifact-diagramming, artifact-capabilities,
update-config, keybindings-help, code-review, simplify, fewer-permission-prompts,
loop, schedule, claude-api, workflow-authoring, run, init, security-review
17本あります。しかし、自作のものは1本もありません。 残っているのはClaude Code に組み込みのスキルだけです。
理由は仕様どおりです。ユーザー設定を読まないということは、~/.claude/ 配下を読まないということです。スキルもサブエージェントもここに置かれます。
手元の規模で言うと、こうなります。
~/.claude/skills/ : 47 本 → 0 本
~/.claude/agents/ : 286 本 → 参照されない
Skill ツール自体は残っています。 呼ぶ先が無いだけです。**「スキルが使えない」ではなく「スキルが存在しないことになる」**という状態です。
--tools で戻せる。ただし書き方が決まっている
公式にこう書かれています。
unless you name them individually in
--tools, not through itsdefaultpreset
(--toolsで個別に名前を挙げた場合を除く。defaultプリセット経由では戻らない)
実際に echo hello を実行させて確かめました。
| 条件 | 実行 |
|---|---|
--restricted |
できない |
--restricted --tools default |
できない |
--restricted --tools Bash Read |
できた(hello) |
公式の記述どおりでした。 default では戻らず、名前を書けば戻ります。
なお --tools Bash Read を指定すると、使えるのはその2つだけになります。制限を緩めるというより、使うものを名指しするという挙動です。
測り方を間違えた話
ここは自分の失敗です。書いておかないと同じ手を使う人が同じ穴に落ちます。
最初、ツールの一覧をこう測っていました。
claude --restricted --tools default -p "いま使えるツールを挙げてください"
返ってきた一覧に、Bash と WebFetch が入っていました。 「公式の記述と違う」と思いました。
そこで直接聞き直しました。
Q: Bash ツールは今使えますか。
A: 使えない (3回とも同じ)
さらに実行させました。
このセッションではシェル実行ツール(Bash)が利用できないため、実際にはコマンドを実行していません。
モデルの自己申告と、実際に叩けるかどうかがずれていました。 一覧を挙げさせると、手が届かないものまで並びます。
過去に同じ手法で記事を書いたことがあります。 そのときは環境変数の切り替えで結果がはっきり分かれたので誤りは出ませんでしたが、手法としては裏取りが要りました。 ツールの有無は、実際に叩いて確かめるのが確実です。
いつ使うか
用途は公式が書いているとおり、共有マシンでの自動実行です。そこに自分の判断を足すと、こうなります。
向いている場面
- 未信頼のコードを読ませる。 コマンドが実行できないので、リポジトリを読ませても何も起きない
- CI で走らせる。 マシンにどんな設定が入っていても、挙動が変わらない
- 挙動を固定したい検証。 設定を読まないので、手元の47スキルが結果に混ざらない
向いていない場面
- 普段の開発。 MCP もスキルもサブエージェントも効かないので、素の Claude Code に戻ります
-
スキルを前提にした作業。
Skillツールは残りますが、呼ぶ先がありません
まとめ
- Claude Code 2.1.248 で
--restrictedが入った(CLAUDE_CODE_RESTRICTED=1でも同じ) -
ツールが 42 → 23 に減る(45%)。
Bash/PowerShell/WebFetchに加え、
公式の説明にないWorkflow/Monitor/LSP/ MCP ツール8個も消える -
Write/Edit/Agent/WebSearchは残る。 読み取り専用モードではない -
自作スキル47本が0本になる。 ユーザー設定を読まない以上、
~/.claude/配下は全部対象。
Skillツールは残るが、呼ぶ先がない -
--toolsで名前を挙げれば戻る。defaultプリセットでは戻らない(公式の記述どおり) - ツールの有無は、モデルに聞くのではなく実際に叩いて確かめる。 自己申告はずれる
スキルやサブエージェントを積んでいる人ほど、このモードでは何も残りません。 それが目的のモードなので正しい挙動ですが、**「安全になる」より先に「手元の資産が全部消える」**と理解しておくほうが、事故が少ないと思います。
参考
-
Claude Code CLI reference —
--restrictedの項 - Claude Code changelog — 2.1.248 の項
- 検証環境: Windows 10 / Claude Code 2.1.250 / 測定は 2026-08-28 時点
※ 引用は原文と日本語訳を併記しています。訳は読みやすさを優先しているので、正確な表現は原典をご確認ください。
関連記事
- Claude Code の設定でハマる箇所まとめ — 設定と既定値の確認まわり
- Claude Code のタスクリストが出ない — 同じくツールの有無を条件を変えて測った話
JQITのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。
エンジニア採用も行っています。もしご興味あれば覗いてみてください。
▶ 採用サイト