Claude Media
CLAUDE_CODE_HIDE_CWDとは — 起動ロゴの作業ディレクトリを隠す環境変数

CLAUDE_CODE_HIDE_CWDとは — 起動ロゴの作業ディレクトリを隠す環境変数

CLAUDE_CODE_HIDE_CWDは起動ロゴの作業ディレクトリ表示を隠す環境変数です。設定方法、切り替えのタイミング、隠れない箇所、似た用途の変数との使い分けをまとめます。

CLAUDE_CODE_HIDE_CWDは、Claude Codeが起動時に表示するロゴから作業ディレクトリのパスを取り除く環境変数です。1を設定するだけで有効になり、画面共有や録画でパスに含まれるOSのユーザー名を映したくない場面で使います。隠せるのは起動ロゴだけで、ステータスラインなど他の画面には効きません。

CLAUDE_CODE_HIDE_CWDが隠すのは起動ロゴだけ

CLAUDE_CODE_HIDE_CWD: Set to 1 to hide the working directory in the startup logo. Useful for screenshares or recordings where the path exposes your OS username

Claude Codeは対話セッションを開始するたびに、ロゴと一緒に現在の作業ディレクトリを表示します。macOSやLinuxのホームディレクトリは/Users/<ユーザー名>/home/<ユーザー名>のように組み立てられているため、プロジェクトのパスをそのまま画面に映すとOSのログイン名が読み取れてしまいます。カンファレンスでのデモ配信や、チュートリアル動画の録画、サポート対応での画面共有では、この一行だけで意図せず個人を特定できる情報が流出します。

CLAUDE_CODE_HIDE_CWDはこの一点だけを解決する変数です。値を1にすると起動ロゴのパス部分が省かれ、それ以外の起動時の表示や動作は変わりません。オン・オフを切り替える多くのClaude Code環境変数と同じく、1trueで有効、0falseで無効という一般則がそのまま当てはまります。DISABLE_TELEMETRYのように「空でない値を入れた時点で有効になり0を入れても止まらない」という例外的な変数もありますが、CLAUDE_CODE_HIDE_CWDはその特例リストには含まれていません。元に戻したいときは値を0にするか、変数そのものを未設定にすれば起動ロゴにパスが戻ります。

設定前は、起動ロゴの下に現在の作業ディレクトリの絶対パス(例: /Users/example/projects/my-app)がそのまま表示されます。WindowsであればC:\Users\example\projects\my-appのように、こちらもユーザー名を含む形です。CLAUDE_CODE_HIDE_CWD=1を設定して起動すると、このパスの行そのものが表示されなくなり、ロゴの他の部分(バージョン表示やモデル名など)は変わりません。

この変数が役に立つ場面は、パスが画面に映って困るケース全般です。

  • カンファレンスやミートアップでのライブデモ配信
  • チュートリアル・使い方解説動画の録画
  • サポート対応での画面共有(問い合わせ元に自分の端末のユーザー名を見せたくない場合)
  • OSSのペアプログラミング配信で、個人のホームディレクトリ構成を見せたくない場合

いずれも「パスの中身」自体が必要な情報ではなく、たまたま起動ロゴに含まれてしまう副産物という共通点があります。

設定方法

シェルの環境変数として渡すか、設定ファイルのenvキーに書きます。録画や配信の直前に一度だけ使うなら、シェルでの一時設定で十分です。

export CLAUDE_CODE_HIDE_CWD=1
claude

毎回exportし直すのが面倒であれば、~/.bashrc~/.zshrcに同じ行を追記しておく方法もあります。新しいターミナルを開くたびにシェルの起動処理で自動的に設定され、以降は何もしなくてもClaude Codeの起動ロゴにパスが表示されなくなります。

配信用の端末やデモ環境でいつも隠したい場合は、シェルの設定ファイルに頼るより、Claude Code側の設定ファイルのenvキーに書いておくほうが一元管理しやすくなります。シェルの種類や乗り換えに関わらず、毎回のClaude Code起動時に確実に適用されます。

{
  "env": {
    "CLAUDE_CODE_HIDE_CWD": "1"
  }
}

書き込む設定ファイルによって、この設定が適用される範囲が変わります。

ファイル適用範囲
~/.claude/settings.json適用範囲自分が使う全プロジェクトで隠す
.claude/settings.json適用範囲このプロジェクトで作業する全員(バージョン管理に含める)
.claude/settings.local.json適用範囲自分だけ、このプロジェクトだけで隠す(gitignore対象)
管理設定(managed settings)適用範囲組織の全メンバーで隠す

デモ用に用意した特定のプロジェクトだけで常に隠したいなら.claude/settings.json、自分の端末では常にパスを隠したいが同僚のリポジトリ設定には影響させたくないなら~/.claude/settings.jsonが向いています。

起動後に切り替えても効かない

設定ファイルのenv値は、保存すると実行中のセッションにもすぐ反映される変数がほとんどです。ただし、起動時に一度だけ変数を読み込んで動作を決める機能は例外で、次回起動まで元の値のまま動き続けます。起動ロゴはまさにこの例外に当たります。ロゴはセッションが始まる瞬間に一度だけ描画されるため、画面共有を始めてから設定ファイルを書き換えたり、開いたままの端末でシェルの変数をexportし直したりしても、すでに表示済みのロゴは書き変わりません

隠れないもの

CLAUDE_CODE_HIDE_CWDが隠すのは起動ロゴの表示だけです。ステータスラインをカスタムスクリプトで表示している場合、そのスクリプトが受け取るJSON入力にはcwdworkspace.current_dirという作業ディレクトリのフィールドが常に含まれます。両者は同じ値を持ち、workspace.current_dirworkspace.project_dir(起動時のディレクトリ)との対比で名付けられていますが、スクリプト側でこのフィールドを画面に描画していれば、CLAUDE_CODE_HIDE_CWDを設定していてもパスは表示され続けます。ステータスラインからもパスを消したい場合は、スクリプトの実装を変えるか、そもそもcwd系フィールドを描画しない構成にする必要があります。

画面共有の前に気になるのは起動ロゴだけではありません。Claude Codeは.claudeディレクトリにセッション履歴や設定を残すため、録画用の環境をまっさらな状態に戻したい場合はClaude Codeの.claudeディレクトリに残るデータの消し方も合わせて確認しておくと安心です。

似た目的の環境変数との使い分け

画面共有や録画で情報を隠したい場面では、対象が違う複数の変数が候補になります。

変数・設定キー隠す対象効く範囲
CLAUDE_CODE_HIDE_CWD隠す対象起動ロゴの作業ディレクトリパス効く範囲セッション開始時の1回だけ
CLAUDE_CODE_DISABLE_TERMINAL_TITLE隠す対象会話内容から自動生成されるターミナルタブのタイトル更新効く範囲セッション中ずっと
sandbox.credentials(設定キー)隠す対象サンドボックス内の認証情報ファイル・環境変数のマスク効く範囲サンドボックス実行中

CLAUDE_CODE_DISABLE_TERMINAL_TITLEは、Claude Codeが会話の内容からターミナルタブのタイトルを自動生成して更新する挙動そのものを止める変数です。Agent SDKやclaude -pのセッションでは、タイトル生成のためにバックグラウンドで小型モデルへリクエストを送る処理まで一緒にスキップされます。作業ディレクトリのパスとは無関係に、タブのタイトルに会話の要約が出るのを避けたいときに使います。

sandbox.credentialsはサンドボックス機能の設定キーで、サンドボックス内で実行するコマンドから認証情報ファイルや環境変数を隠す・マスクする用途です。対象は認証情報であって作業ディレクトリのパスではないため、CLAUDE_CODE_HIDE_CWDの代わりにはなりません。録画で複数の懸念が重なる場合は、それぞれの変数・設定を個別に組み合わせる必要があります。

隠す対象が画面表示ではなくネットワーク送信なら、選ぶ変数はさらに別物です。利用状況メトリクスの送信そのものを止めたいときはDISABLE_TELEMETRYとは、業界共通のオプトアウト慣習に合わせたいときはDO_NOT_TRACKとはが対象になります。どちらも画面上のパス表示には関与しません。

組織で配布する場合

サポートチームやカンファレンス登壇者など、画面共有の機会が多いメンバーに一律で適用したい場合は、管理者が配布する管理設定(managed settings)のenvブロックに書きます。

{
  "env": {
    "CLAUDE_CODE_HIDE_CWD": "1"
  }
}

設定ファイル間で同じ変数が重複した場合は設定の優先順位に従い、管理設定のエントリーがユーザー設定やプロジェクト設定より優先されます。個々のメンバーが自分の~/.claude/settings.jsonで上書きしようとしても、管理設定側の値が勝ちます。デモ環境や配信専用マシンをまとめて管理している場合、個々の端末で毎回設定させるより確実に運用できます。

よくある質問

Windows PowerShellやコマンドプロンプトでも設定できますか

できます。Claude Codeの環境変数はシェルの種類を問わず同じ仕組みで読み込まれるため、PowerShellでは$env:CLAUDE_CODE_HIDE_CWD = "1"、コマンドプロンプトではset CLAUDE_CODE_HIDE_CWD=1と実行してからclaudeを起動すれば同じ効果になります。常に有効にしたい場合は、[Environment]::SetEnvironmentVariableで永続化するより、前述の設定ファイルのenvキーに書くほうがプロジェクトをまたいで管理しやすくなります。

隠しても動作そのものに影響はありませんか

ありません。CLAUDE_CODE_HIDE_CWDが変えるのは起動ロゴの表示だけで、実際の作業ディレクトリの値やそこを起点にしたファイル操作の範囲は変わりません。たとえばサンドボックス機能は既定で作業ディレクトリへの書き込みを許可しますが、この許可範囲はCLAUDE_CODE_HIDE_CWDの設定に関係なく実際のパスで判定されます。隠れるのは画面上の見た目だけで、Claude Codeが内部で使うパスそのものではありません。

この変数はいつから使えますか

公式の環境変数リファレンスには、他の多くの変数にある「Claude Code v2.1.X以降が必要」といったバージョン要件の注記がありません。手元のバージョンで動作しない場合は、まずclaude updateで最新版に更新してから試すのが確実です。

まとめ

CLAUDE_CODE_HIDE_CWDは、Claude Codeの起動ロゴに表示される作業ディレクトリのパスを隠す環境変数です。1で有効、0または未設定で元に戻ります。シェルでの一時設定はそのセッション限り、設定ファイルのenvキーに書けば毎回のClaude Code起動時に適用されます。効果が及ぶのは起動時に一度だけ描画されるロゴの表示のみで、すでに開いているセッションで設定を変えても反映されません。ステータスラインをカスタムスクリプトで運用している場合はそちらのパス表示には影響しないため、画面共有の前には起動ロゴ以外の表示も別途確認しておく必要があります。ターミナルタブのタイトルを隠したいならCLAUDE_CODE_DISABLE_TERMINAL_TITLE、サンドボックス内の認証情報を隠したいならsandbox.credentialsと、隠したい対象に応じて別の設定を選びます。組織で一律に適用したい場合は、管理設定のenvブロックに書けばメンバー側の上書きより優先されます。

この記事を共有:XはてブLinkedIn