Claude Code の邪魔なUI面を公式スイッチで消し、効いたことを実測する
アンケートバナー等のUI面は配布バイナリに CLAUDE_CODE_DISABLE_* の公式スイッチがある。grep で switch と gate を取り出し、settings.json の env に入れ、一時 SessionStart hook で env 到達を実測する。A/B が取れない面はコード読みで確定させ、実測と分けて報告する
約4万トークンの節約 (API料金換算で約60円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。
この巻物について
「Claude Code の邪魔なUI面を公式スイッチで消し、効いたことを実測する」は、開発プロセスカテゴリのAI指示書(MDファイル)です。アンケートバナー等のUI面は配布バイナリに CLAUDE_CODE_DISABLE_* の公式スイッチがある。grep で switch と gate を取り出し、settings.json の env に入れ、一時 SessionStart hook で env 到達を実測する。A/B が取れない面はコード読みで確定させ、実測と分けて報告するこの巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約4万トークン(API料金換算で約60円)・89%のトークンを節約できます。
- カテゴリ
- 開発プロセス
- 対応AI
- claude-code、cursor、codex-cli
- ライセンス
- 商用利用可 (再販不可)
- 価格
- 無料
- ゼロから開発時
- 約4.5万トークン
- この巻物使用時
- 約5,000トークン
- 節約量
- 約4万トークン (約60円)
- 更新日
- 2026-09-03
使い方 (AIに渡す3つの方法)
いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。
claude "https://makimono-md.vercel.app/api/v1/files/claude-code-ui/raw を読み込んで、この指示書どおりに実装して"
中身
Claude Code の邪魔なUI面を「公式スイッチ」で消し、効いたことを実測する
「アンケートバナーが出て邪魔」「この面を出したくない」という依頼を受けたとき、
設定を推測で書かない。Claude Code は CLAUDE_CODE_DISABLE_* という env スイッチを
配布物の中に持っているので、まずそれを取り出す。
対象読者: AI エージェント(この手順をそのまま実行してよい)。
1. スイッチの一覧を配布物から取り出す
拡張の実体は次の3ファイルに分かれている。
| ファイル | 役割 |
|---|---|
webview/index.js | 画面の描画(表示文字列がここにある) |
extension.js | 配線・状態の受け渡し |
resources/native-binary/claude.exe(mac/linux は拡張子なし) | 出す/出さないの判定はここ |
置き場所(VSCode 拡張の例):
ls ~/.vscode/extensions | grep -i claude
# => <publisher>.claude-code-<version>-<platform>
まず「消したい文字列」で当たりを付ける。
cd ~/.vscode/extensions/<拡張ディレクトリ>
grep -rl "<画面に出ている文字列>" .
次に スイッチの全一覧をバイナリから抜く(文字列がそのまま入っている)。
grep -a -o -E '"CLAUDE_CODE_DISABLE_[A-Z_]+"' resources/native-binary/claude.exe | sort -u
2. 判定の1行を読んで「何が起きれば消えるか」を確定する
grep -a -o -E '.{300}<設定キー名>.{300}' resources/native-binary/claude.exe
典型的な gate は次の形になっている。
function 判定(){
if(!ホストがIDEか())return; // ← 面が有効なホストか
if(!フラグ("<機能フラグ名>",false))return; // ← リモート機能ゲート
if(env.CLAUDE_CODE_DISABLE_XXX)return; // ← ここが公式スイッチ(truthy 判定)
...設定オブジェクトを返す
}
返り値は初期化メッセージのフィールドになり、拡張側の型定義に 「Absent means the host must not show the surface.(不在なら出してはいけない)」 のような一文が付いている。ここまで読めれば「env を立てる=仕様として非表示」が確定する。
判定を読まずに設定を書くと、「設定したのに出る」「別の面が残る」を後から踏む。 同じ env を見る2本目の呼び出し箇所(別サーフェス)が居ることも多いので、 grep の当たりは1件で止めず全部見る。
3. 設定する(env 変数を OS に撒く必要はない)
ユーザ設定へ入れる。OS のユーザ環境変数(setx 等)は不要 — CLI が設定ファイルの
env を自分の process.env に載せるため。
~/.claude/settings.json:
{
"env": { "CLAUDE_CODE_DISABLE_XXX": "1" }
}
編集は必ず バックアップ → read-modify-write で行う(手書き JSON で他の設定を壊さない)。
cp ~/.claude/settings.json ~/.claude/settings.json.bak.$(date +%Y%m%d-%H%M%S)-<用途>
python - <<'PY'
import json
p = '<設定ファイルの絶対パス>'
d = json.load(open(p, encoding='utf-8'))
d.setdefault('env', {})['CLAUDE_CODE_DISABLE_XXX'] = '1'
open(p, 'w', encoding='utf-8').write(json.dumps(d, ensure_ascii=False, indent=2) + '\n')
print('env =', d['env'])
PY
4. 「env が本当に CLI に届いたか」を実測する(ここを飛ばさない)
設定ファイルに書けたことは、CLI プロセスに届いたことの証拠にならない。 一番安い実測は 一時 SessionStart hook で env を吐かせる。
settings.json の hooks.SessionStart に一時的に足す:
{ "hooks": [ { "type": "command",
"command": "node -e \"console.log('ENVCHECK='+(process.env.CLAUDE_CODE_DISABLE_XXX||'UNSET'))\"",
"timeout": 10 } ] }
走らせて hook_response.stdout を読む(最安モデルを指定する):
claude -p "hi" --output-format stream-json --verbose --model <最安モデルID> < /dev/null > out.jsonl 2>&1
python - <<'PY'
import json
for ln in open('out.jsonl', encoding='utf-8'):
ln = ln.strip()
if not ln.startswith('{'): continue
d = json.loads(ln)
if d.get('subtype') == 'hook_response' and 'ENVCHECK' in (d.get('stdout') or ''):
print(d['stdout'].strip())
PY
ENVCHECK=1 が出れば env は届いている。確認できたら hook を必ず外し、外したことを
もう一度走らせて確かめる(probe hook removed: True / 全 hook exit 0)。
この段の落とし穴
- hook の command に
cmd /c echo %VAR%を使うと壊れる。 対話 cmd が起動して バナーとプロンプトが混ざり、変数展開が読めなくなる。node -eで書く。 -pに stdin を渡さないと「stdin 待ち」の警告で数秒止まる。< /dev/nullを付ける。- hook の出力を非ASCIIで受けると読み出し側が落ちることがある。
PYTHONIOENCODING=utf-8を付ける。
5. UI が消えたこと自体は A/B で測れないことが多い(正直に分けて報告する)
gate の第1条件が「IDE ホストであること」なので、-p(headless)で走らせると
設定前でもその面は無効=変更前に症状が出ない。これは対照群が死んだ計測器で、
ここで「消えました」と言うと嘘になる。
- 対照が症状を出さないと分かった時点で、その計測器での A/B は打ち切る。
- 代わりに gate のコード読みで確定させ、実測は「env が届いたか」に絞る。
- 報告では 「実測したこと」と「コード読みで確定したこと」を必ず分けて書く。
6. 反映タイミングを添える(これが無いと「効いてない」と言われる)
設定は CLI 起動時に読まれる。したがって:
- すでに開いているセッションには効かない(そのバナーは手で閉じてもらう)
- 新しいセッション、または会話クリア以降から出なくなる
この2行を報告に必ず入れる。
完了条件(このどれかが欠けたら未完了)
grep -aでスイッチ名と gate の1行を提示できている- 設定ファイルの
envに入っていて、バックアップが取れている ENVCHECK=<値>を実測で示せている- 一時 hook が外れていて、再走で全 hook
exit 0 - 「開いているセッションには効かない」を伝えている
よくある質問
+「Claude Code の邪魔なUI面を公式スイッチで消し、効いたことを実測する」とは何ですか?
アンケートバナー等のUI面は配布バイナリに CLAUDE_CODE_DISABLE_* の公式スイッチがある。grep で switch と gate を取り出し、settings.json の env に入れ、一時 SessionStart hook で env 到達を実測する。A/B が取れない面はコード読みで確定させ、実測と分けて報告する
+どれくらいトークン(費用)を節約できますか?
ゼロから開発すると約4.5万トークンかかりますが、この巻物を使えば約5,000トークンで済みます。差し引き約4万トークン(API料金換算で約60円)・89%の節約です。
+どうやって使いますか?
無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。
+どのAIツールに対応していますか?
claude-code、cursor、codex-cli に対応しています。
+商用利用できますか?
ライセンスは「商用利用可 (再販不可)」です。
🤝 自分でAIを動かすのは、まだ不安…という方へ
この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。
関連する巻物
ドキュメント駆動開発プロセス CLAUDE.md — 作るものを固めてから書かせる
「AIが暴走して意図と違うものを作る」を根絶する開発プロセス指示書。UI仕様→機能設計→実装の順をAIに強制し、1ファイルごとに承認ゲートを挟む。受託開発・チーム開発向け。
AIに指示書マーケットを自動参照させ、終了時に自動出品させるMD
開発依頼を受けた瞬間にマーケットの完成済み指示書を検索してAIに読ませ、セッション終了時には汎用ノウハウを自動出品させる仕組みの作り方。全台配布・秘密情報スキャン・実際に踏んだ配布バグ3つの回避込み。
「そのPCにしか直せない障害」をAIに自分で気付かせて着手させる
特定の1台にしかリポジトリが無い機能は、修正手順を書いても誰にも実行されず放置される。SessionStart hook で当該PCのAIだけに指示を出し、完了後は指示書へ状態を書き戻して再実装事故を防ぐ型。走査の時間予算とセッション跨ぎの再開、メール一致だけの自動承認がなりすまされる理由と署名キー方式、状態問い合わせAPI、鍵の自動配布、no-op通知の抑止まで、実際に94件の滞留を解消した実例に基づく手順。
この巻物、誰かのトークンも救えます
𝕏 で節約レシートをシェア