DISABLE_LOGIN_COMMANDなど7つの環境変数でClaude Codeのコマンドを隠す
DISABLE_LOGIN_COMMAND、DISABLE_UPGRADE_COMMANDなど、Claude Codeのスラッシュコマンドを隠す7つの環境変数を一覧にし、対象コマンドと配布時の設定例をまとめます。
Claude Codeには、特定のスラッシュコマンドをメニューから隠すための環境変数が7つあります。DISABLE_LOGIN_COMMAND、DISABLE_LOGOUT_COMMAND、DISABLE_UPGRADE_COMMAND、DISABLE_EXTRA_USAGE_COMMAND、DISABLE_DOCTOR_COMMAND、DISABLE_FEEDBACK_COMMAND、DISABLE_INSTALL_GITHUB_APP_COMMANDです。
いずれも値は 1 です。社内配布や認証の外部管理で「利用者に触らせたくないコマンド」を、設定ファイル1つで消せます。
7つの環境変数と対象コマンド
名前の DISABLE_ と _COMMAND に挟まれた部分が、対象のコマンドを表します。名前と対象が一致しないものが一部あります。
| 環境変数 | 隠れるコマンド | 補足 |
|---|---|---|
DISABLE_LOGIN_COMMAND | 隠れるコマンド/login | 補足認証を外部で扱う環境向け |
DISABLE_LOGOUT_COMMAND | 隠れるコマンド/logout | 補足 |
DISABLE_UPGRADE_COMMAND | 隠れるコマンド/upgrade | 補足プラン変更ページを開くコマンド |
DISABLE_EXTRA_USAGE_COMMAND | 隠れるコマンド/usage-credits | 補足名前は旧コマンド名 /extra-usage に由来 |
DISABLE_DOCTOR_COMMAND | 隠れるコマンド/doctor と /checkup | 補足claude doctor は対象外 |
DISABLE_FEEDBACK_COMMAND | 隠れるコマンド/feedback、/bug、/share | 補足Claude起案のフィードバックも止まる |
DISABLE_INSTALL_GITHUB_APP_COMMAND | 隠れるコマンド/install-github-app | 補足サードパーティープロバイダーでは元から非表示 |
名前と対象のずれは DISABLE_EXTRA_USAGE_COMMAND が最も大きく、/extra-usage という名前の時代の変数がそのまま残っています。現行のコマンド名は /usage-credits です。
認証を外部で管理するときの2つ
/login と /logout を隠す2つは、外部のAPIキーや apiKeyHelper で認証を配る環境向けです。
apiKeyHelper は、モデルへのリクエストに使う資格情報を自前のコマンドで生成する設定です。Claude Codeはコマンドの出力を X-Api-Key と Authorization: Bearer の両ヘッダーに載せます。Vaultから取る短命トークンのような、動的・ローテーションする資格情報に向きます。
認証を配る側から見ると、利用者向けのログイン導線は不要になります。/login を隠せば、メニューからその入口が消えます。apiKeyHelper が失敗したときの切り分けはapiKeyHelperスクリプトが失敗する原因と対処にあります。ログイン方法そのものの違いはログイン方法3種の使い分けで比べられます。
DISABLE_LOGOUT_COMMAND は /logout を隠すだけの変数です。/login とセットで入れておくと、サインイン周りのコマンドがそろって消えます。
課金・プラン導線を隠す2つ
/upgrade は、上位プランへ切り替えるためにブラウザでアップグレードページを開くコマンドです。/usage-credits は、上限に達したときに使用量クレジットを設定、または管理者に依頼するコマンドです。Team・Enterpriseで請求権限のないメンバーは、管理者へのクレジット申請をCLIから送ります。
この2つを隠すと、プラン変更と追加購入に関わる入口がコマンドメニューから消えます。
隠さずに残した場合の挙動も押さえておきます。/upgrade はブラウザが開けないとき、URLを表示せずにサインインのプロンプトを出します。/usage-credits はSSH越しのようにブラウザが開けない環境では、課金ページのURLを表示します(v2.1.205以降。それ以前は別の挙動でした)。リモート接続が多い環境では、URLが画面に出るか出ないかの違いが、利用者の問い合わせ先を左右します。
ただし、上限に達したときのメッセージが /usage-credits を案内する場合があります。変更履歴には、このコマンドが組織で使えないとき(DISABLE_EXTRA_USAGE_COMMAND で隠した場合を含む)に、レート制限などのメッセージが存在しないコマンドを案内していた問題の修正が載っています。隠す運用では、Claude Codeのバージョンを新しめに保つと案内の食い違いを避けやすくなります。使用量クレジットの仕組みは使用量クレジットの購入・管理方法で扱っています。
診断・フィードバック・GitHub連携を隠す3つ
DISABLE_DOCTOR_COMMANDの対象範囲
/doctor は、インストール・設定・拡張機能・CLAUDE.md の問題を診断し、確認後に修正を適用するセットアップ点検のスキルです。DISABLE_DOCTOR_COMMAND はこの /doctor と別名の /checkup を隠します。管理された配布で、利用者がセッション内から診断を走らせないようにしたいときに使います。
/doctor prompt-audit で指示ファイルを監査するサブコマンドもあります(v2.1.283以降)が、これも /doctor の一部です。
注意点は2つあります。ターミナルの claude doctor コマンドには効きません。また、v2.1.205より前は、この変数が隠していたのは診断画面としての /doctor でした。古いバージョンと混在する環境では、挙動が違う可能性があります。
CLAUDE_CODE_DISABLE_BUNDLED_SKILLS で同梱スキルを消しても /doctor は入力できるので、隠したいときは DISABLE_DOCTOR_COMMAND を使います。/doctor の動きはClaude Codeの/doctorが自動修正までするチェックアップで詳しく扱っています。
DISABLE_FEEDBACK_COMMANDは3つの名前を止める
DISABLE_FEEDBACK_COMMAND は /feedback を止めるだけでなく、Claude起案のフィードバックも止めます。/bug と /share も同じ経路で報告するため、あわせて無効になります。v2.1.212より前は両者が /feedback の別名だったので、どの名前でも無効でした。以前の名前 DISABLE_BUG_COMMAND も受け付けられます。
なお /bug は、サードパーティープロバイダーやAnthropicの認証情報がない状態では、報告を ~/.claude/feedback-bundles/ のローカルアーカイブに書き出します。自分で転送する形なので、外部送信を気にする環境でも、この変数で入口を消すかどうかは別の判断になります。
アンケート表示を止める CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY や、フィードバック下書きの feedbackDrafts 設定とは別の変数です。下書き側の止め方はfeedbackDraftsを無効化してフィードバック下書きを止めるにあります。コマンドの使い方はバグ報告とフィードバック送信で確認できます。
GitHub App導入コマンドを隠す(DISABLE_INSTALL_GITHUB_APP_COMMAND)
/install-github-app は、リポジトリを選び、Claude GitHub Appを入れ、任意でGitHub Actionsのワークフローとシークレットも設定するコマンドです。Amazon Bedrock、Google CloudのAgent Platform、Microsoft Foundryのようなサードパーティープロバイダーでは、すでに隠れています。Anthropicに直接つなぐ環境では、この変数で同じように隠せます。手順側は/install-github-appでClaude GitHub Appを導入する手順にまとめています。
利用形態ごとに入れる変数を選ぶ
7つすべてを入れる必要はありません。どの環境でどれが効くかを、変数の説明から読み取れる範囲で表にします。
| 利用形態 | 入れる候補 | 効き方 |
|---|---|---|
外部のAPIキーや apiKeyHelper で配る | 入れる候補DISABLE_LOGIN_COMMAND、DISABLE_LOGOUT_COMMAND | 効き方効く。ログイン導線を消せる |
| Team・Enterpriseで請求を会社がまとめる | 入れる候補DISABLE_UPGRADE_COMMAND、DISABLE_EXTRA_USAGE_COMMAND | 効き方効く。プラン変更と追加購入の入口が消える |
| Bedrock・Agent Platform・Foundry経由 | 入れる候補DISABLE_INSTALL_GITHUB_APP_COMMAND | 効き方不要。元から非表示 |
| 個人利用 | 入れる候補DISABLE_DOCTOR_COMMAND、DISABLE_FEEDBACK_COMMAND | 効き方効く。ただし隠す必然性は薄い |
Bedrockなどの経由先で、ほかの6変数がどう働くかは説明に書かれていません。配る前に手元で試すのが確実です。
設定ファイルで一括配布する
シェルで export してもよいのですが、環境変数は設定ファイルの env キーにも書けます。env の値は、シェルの起動方法に関係なく読み込まれます。
export DISABLE_LOGIN_COMMAND=1
export DISABLE_UPGRADE_COMMAND=1
claude組織で配るなら、管理設定に書く形が向きます。例えば次のようになります(7変数のうち、認証を外部管理にした環境での一例です)。
{
"apiKeyHelper": "/opt/company/bin/get-claude-key.sh",
"env": {
"DISABLE_LOGIN_COMMAND": "1",
"DISABLE_LOGOUT_COMMAND": "1",
"DISABLE_UPGRADE_COMMAND": "1",
"DISABLE_EXTRA_USAGE_COMMAND": "1"
}
}設定ファイル間の env は設定の優先順位に従い、管理設定の値がユーザー設定やプロジェクト設定の同名変数を上書きします。利用者が自分の ~/.claude/settings.json で 0 に戻そうとしても、管理設定側が優先されます。配布先ごとのファイルの置き場所は、管理設定ガイドにまとめています。
シェルで設定した変数は起動時に読まれるため、変更は次回の claude 起動から効きます。一方、設定ファイルの env は、実行中のセッションにもファイル保存で反映されます。ただし、削除した変数は実行中のセッションでは解除されません。
配った後に効いているか確かめる
設定を置いても、読み込まれていなければコマンドは消えません。次の順で確かめます。
設定が効いているかを確かめる4段階
- 1
envに変数を書く
管理設定または
~/.claude/settings.jsonのenvに、隠したい変数を"1"で書きます。 - 2
claudeを起動し直す
シェルで設定した変数は、起動時にだけ読まれます。
- 3
/メニューで消えたか見る
/と入力し、対象のコマンドがメニューから消えているかを見ます。 - 4
別名も確かめる
DISABLE_DOCTOR_COMMANDなら/checkup、DISABLE_FEEDBACK_COMMANDなら/bugと/shareも候補に出ないことを確かめます。
メニューで見える範囲は、候補に出るかどうかだけです。完全な名前を打ち込んだときの応答は、変数の説明に書かれていません。そこまで確かめたいときは、実際に打ち込んで結果を記録しておきます。
似た名前の仕組みとの違い
名前の似た設定が3つあり、混同しやすい箇所です。
| 仕組み | 止めるもの | 単位 |
|---|---|---|
DISABLE_*_COMMAND | 止めるもの特定のスラッシュコマンド | 単位コマンド1つずつ |
--disable-slash-commands | 止めるものスキルとコマンドの全体 | 単位起動フラグ |
CLAUDE_CODE_DISABLE_BUNDLED_SKILLS | 止めるもの同梱スキルとワークフロー | 単位同梱分のみ。/doctor は残る |
特定のコマンドだけを消したいなら DISABLE_*_COMMAND、スキルやコマンドを丸ごと止めたいなら起動フラグ側です。後者は--disable-slash-commandsでスキルとコマンドを丸ごと無効化するで扱っています。
隠れたコマンドの扱いで覚えておくこと
7つのうち、説明の英語が「hide」(隠す)なのは /login・/logout・/upgrade・/usage-credits・/doctor・/install-github-app です。/feedback だけは「disable」(無効化)と書かれ、コマンドそのものが止まります。
コマンドメニューの仕様には、「隠す」が2種類あります。/heapdump のように設計上メニューに出ない一方、完全な名前を入力すれば実行できるコマンドがあります。使えないコマンドはメニューに出ず、ほとんどは実行すると Unknown command になります。この変数群が前者と後者のどちらの挙動になるかは、各変数の説明に書かれていません。利用者に絶対に実行させたくない操作は、隠すだけに頼らず、権限・管理設定の側で制限しておくほうが確実です。
環境変数全体の一覧と、効かないときの切り分けは環境変数リファレンスにあります。
まとめ
7つの変数は、認証(/login、/logout)、課金導線(/upgrade、/usage-credits)、診断・報告・GitHub連携(/doctor、/feedback、/install-github-app)の3系統に分かれます。外部認証で配る環境ではまず DISABLE_LOGIN_COMMAND が出発点になり、課金を会社が握る環境では /upgrade と /usage-credits を足す形が自然です。管理設定の env に入れておけば、利用者側で戻される心配もありません。