本文へ移動
Claude Tips

インストールとログイン

Claude Code のインストール、更新、アンインストール、ログインと認証の設定、インストールやログインで出るエラーの対処をまとめています。

Claude Code のインストールからログインまでの手順と、つまずいたときの対処をまとめたページです。ターミナルで使うネイティブインストールを中心に、パッケージマネージャー、npm、認証の優先順位、チーム向けの認証設定まで扱います。使い始めの流れは Claude Code の全体像 も見てください。

  • ネイティブインストールが推奨で、バックグラウンドで自動更新されます
  • 初回の claude 起動でブラウザのログインが始まります。ANTHROPIC_API_KEY を設定済みなら、ログインの代わりにキーの承認を求められます
  • 複数の認証情報があるときは決まった順で選ばれます。/status で確認できます
  • エラーは「見えた文言」から該当の節を探せます(このページ後半の表)

始める前に#

  • ターミナルまたはコマンドプロンプトと、作業するコードのプロジェクトを用意します
  • Claude のサブスクリプション(Pro・Max・Team・Enterprise)、Claude Console のアカウント、または対応するクラウドプロバイダー経由のアクセスが必要です。無料の claude.ai プランには Claude Code は含まれません

システム要件#

項目 要件
OS macOS 13.0 以上、Windows 10 1809 以上または Windows Server 2019 以上、Ubuntu 20.04 以上、Debian 10 以上、Alpine Linux 3.19 以上
ハードウェア RAM 4 GB 以上、x64 または ARM64 のプロセッサ
ネットワーク インターネット接続が必要
シェル Bash、Zsh、PowerShell、CMD
場所 Anthropic の対応国

ripgrep は通常 Claude Code に含まれます。検索が失敗するときは トラブルシューティング を見てください。ネットワークの要件は ネットワークと LLM ゲートウェイ にあります。

インストールする#

ネイティブインストール(推奨)#

環境 コマンド
macOS・Linux・WSL curl -fsSL https://claude.ai/install.sh | bash
Windows PowerShell irm https://claude.ai/install.ps1 | iex
Windows CMD curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
bash
curl -fsSL https://claude.ai/install.sh | bash

終わったら新しいターミナルを開き、claude --version を実行します。バージョン番号と (Claude Code) が出れば成功です。

  • PowerShell で && のエラーが出たら CMD 用のコマンドを使っています。CMD で irm が認識されないなら PowerShell 用のコマンドを使っています。PowerShell のプロンプトは PS C:\、CMD は PS が付きません
  • Windows のネイティブ環境では、Git for Windows があれば Bash ツールが使われ、無ければ PowerShell がシェルツールになります。Git for Windows が提供する Git Bash は、Bash ツールと Monitor ツールが必要とします。WSL では不要です

Homebrew・WinGet・Linux のパッケージマネージャー#

方法 コマンド 自動更新
Homebrew(stable) brew install --cask claude-code なし。brew upgrade claude-code で更新
Homebrew(latest) brew install --cask claude-code@latest なし。brew upgrade claude-code@latest で更新
WinGet winget install Anthropic.ClaudeCode なし。winget upgrade Anthropic.ClaudeCode で更新
apt・dnf・apk 下記 なし。システムの更新手順で更新

claude-code の cask は stable チャンネルを追い、通常 latest より約1週間遅れ、大きな不具合のあるリリースは飛ばします。claude-code@latest は出た直後に更新されます。Homebrew は更新後に古い版を残すので、brew cleanup で空き容量を戻せます。

ヒント

Homebrew と WinGet は、環境変数 CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE を 1 にすると、新版が出たときに Claude Code がバックグラウンドでアップグレードを実行し、成功すると再起動を促します。WinGet は実行中に実行ファイルがロックされて失敗することがあり、その場合は手動のコマンドが表示されます。apt・dnf・apk は管理者権限が要るため手動のままです。

Linux のリポジトリは署名付きで、stable と latest の2つのチャンネルがあります。

bash
# apt(Debian・Ubuntu): 鍵を取得して stable を登録
sudo apt install curl gnupg
sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc \
  -o /etc/apt/keyrings/claude-code.asc
gpg --show-keys /etc/apt/keyrings/claude-code.asc
echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" \
  | sudo tee /etc/apt/sources.list.d/claude-code.list
sudo apt update
sudo apt install claude-code
  • apt の latest を使うときは、URL のパスとスイート名が変わります:.../claude-code/apt/latest latest main
  • apt の鍵の指紋は 31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE です。鍵の取得に失敗すると、あとで apt update が NO_PUBKEY BAA929FF1A7ECACE で失敗します
  • 更新は sudo apt update && sudo apt upgrade claude-code
ini
# dnf(Fedora・RHEL): /etc/yum.repos.d/claude-code.repo
[claude-code]
name=Claude Code
baseurl=https://downloads.claude.ai/claude-code/rpm/stable
enabled=1
gpgcheck=1
gpgkey=https://downloads.claude.ai/keys/claude-code.asc
  • sudo dnf install claude-code で入れ、baseurl を https://downloads.claude.ai/claude-code/rpm/latest にすると latest になります
  • 初回のインストールで指紋の確認を求められるので、31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE と一致するか確かめてから承認します
  • 更新は sudo dnf upgrade claude-code
sh
# apk(Alpine)
wget -O /etc/apk/keys/claude-code.rsa.pub \
  https://downloads.claude.ai/keys/claude-code.rsa.pub
echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories
apk add claude-code
  • 鍵は sha256sum /etc/apk/keys/claude-code.rsa.pub が 395759c1f7449ef4cdef305a42e820f3c766d6090d142634ebdb049f113168b6 になるか確かめます
  • latest に切り替えるには、stable の行を sed -i '\|downloads.claude.ai/claude-code/apk/stable|d' /etc/apk/repositories で消して、https://downloads.claude.ai/claude-code/apk/latest を追記します
  • 更新は apk update && apk upgrade claude-code

npm#

bash
npm install -g @anthropic-ai/claude-code
  • Node.js 22 以上が必要です。古い Node.js では EBADENGINE の警告が出ますが、インストールは完了し claude も動きます(npm パッケージはネイティブバイナリを取得するため、実行時に Node.js は使いません)
  • 中身はスタンドアロンのインストーラと同じネイティブバイナリで、プラットフォームごとの optional dependency(例:@anthropic-ai/claude-code-darwin-arm64)として取得されます。パッケージマネージャーで optional dependency を許可しておく必要があります
  • 対応するプラットフォームは darwin-arm64、darwin-x64、linux-x64、linux-arm64、linux-x64-musl、linux-arm64-musl、win32-x64、win32-arm64 です
  • 更新は npm install -g @anthropic-ai/claude-code@latest。npm update -g は元の semver の範囲に従うため、最新に進まないことがあります

注意

sudo npm install -g は使わないでください。権限の問題やセキュリティ上の危険につながります。権限エラーの対処は、このページ後半の「権限エラー」を見てください。

特定のバージョン・チャンネルを入れる#

ネイティブのインストーラは、バージョン番号またはチャンネル(latest・stable)を受け取ります。インストール時に選んだチャンネルが、自動更新の既定になります。

入れたいもの macOS・Linux・WSL Windows PowerShell
最新(既定) curl -fsSL https://claude.ai/install.sh | bash irm https://claude.ai/install.ps1 | iex
stable curl -fsSL https://claude.ai/install.sh | bash -s stable & ([scriptblock]::Create((irm https://claude.ai/install.ps1))) stable
特定の版(例:2.1.89) curl -fsSL https://claude.ai/install.sh | bash -s 2.1.89 & ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 2.1.89

CMD では、install.cmd の後ろに stable や 2.1.89 を付けます(例:curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd stable && del install.cmd)。入った版は claude --version で確認でき、渡した番号がそのまま出ます。

Windows と Alpine での注意#

選択肢 必要なもの サンドボックス 使いどころ
ネイティブ Windows なし(Git for Windows は任意) 非対応 Windows ネイティブのプロジェクトやツール
WSL 2 WSL 2 対応 Linux のツールチェーン、サンドボックス実行
WSL 1 WSL 1 非対応 WSL 2 が使えないとき
  • ネイティブ Windows は PowerShell か CMD で実行します(管理者権限は不要)。WSL では、WSL のディストリビューションの中で Linux 用のインストーラを実行し、WSL のターミナルから claude を起動します
  • Git Bash が見つからないときは、settings.json で CLAUDE_CODE_GIT_BASH_PATH を指定します
  • Git for Windows があるとき、PowerShell ツールも併用できます。claude.ai と Console のアカウントでは既定でオンです。Amazon Bedrock・Google Cloud の Agent Platform・Microsoft Foundry では CLAUDE_CODE_USE_POWERSHELL_TOOL=1 で有効になり、0 で無効にできます
json
{
  "env": {
    "CLAUDE_CODE_GIT_BASH_PATH": "C:\\Program Files\\Git\\bin\\bash.exe"
  }
}

Alpine などの musl 系ディストリビューションでは、インストールに bash と curl、実行時に libgcc・libstdc++・ripgrep が要ります。入れてから USE_BUILTIN_RIPGREP を 0 にします。

bash
apk add bash curl libgcc libstdc++ ripgrep
json
{
  "env": {
    "USE_BUILTIN_RIPGREP": "0"
  }
}

ripgrep が見つからないときは、/etc/apk/repositories に community リポジトリを足して apk update を実行します。

動作を確認する#

bash
claude --version
claude doctor

claude doctor は、セッションを始めずに、インストールの状態・設定ファイルの検証エラー・警告と対処案を表示します(読み取り専用)。

ログインする#

  1. プロジェクトで claude を起動します
  2. ブラウザが開くので、アカウントでログインします。開かないときは c でログイン URL をコピーして、ブラウザに貼ります
  3. ログイン完了のあと、ターミナルに Login successful と出るので Enter を押します

ブラウザがコードを表示するだけで戻ってこないときは、そのコードをターミナルの Paste code here if prompted に貼ります。WSL2・SSH・コンテナで起きやすい挙動です。

アカウントの種類 補足
Claude Pro・Max claude.ai のアカウントでログインする
Claude for Teams・Enterprise 管理者に招待された claude.ai アカウントでログインする
Claude Console 管理者の招待が必要。API キーを作る・作らないを選べる。初回のログインで、コスト管理用の「Claude Code」ワークスペースが Console に自動で作られる
クラウドプロバイダー 環境変数を設定して claude を起動する。またはログイン画面で「3rd-party platform」を選ぶ(Bedrock と Vertex AI は対話式のセットアップが始まる)。ブラウザのログインは不要
クラウドゲートウェイ 組織が運用するゲートウェイでは、管理者がゲートウェイの URL を設定済みで、/login がゲートウェイの画面から直接開き、社内 SSO でサインインする。ゲートウェイが発行したトークンがそのセッションの唯一の認証情報になる
  • ログイン後の認証情報は保存され、再ログインは要りません
  • /logout でログアウトでき、初回起動の設定状態もリセットされます。次の claude でログインとセットアップがやり直されます
  • アカウントの切り替えや再認証は、セッション内で /login を実行します
  • 管理者は、ログイン方法を指定したり、claude.ai のログインを特定の組織に限定したりできます(下の節)

複数のアカウントを使い分ける#

アカウントごとに設定ディレクトリを分けます。CLAUDE_CONFIG_DIR が指すディレクトリごとに、設定・セッション履歴・ログインまたは API キーが別になります。

bash
alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'

初めて claude-work を実行すると、そのディレクトリのログインとセットアップが始まります。キーなしの Console ログイン(下記)は、設定ディレクトリの外に保存されるため、ディレクトリを分けても2つを区別できません。

最初のセッションで使うもの#

ログインできたら、プロジェクトのディレクトリで claude を起動し、まず質問から始めます。

  • 質問:what does this project do?、where is the main entry point? のようにプロジェクトのことを聞く。ファイルは必要に応じて Claude が読む
  • 変更:add a hello world function to the main file のように頼む。確認が出たら「Yes」で承認する。開始時の権限モードは v2.1.283 以降は auto モードで、以前の版は Pro・Max・Team のプランだけ(Shift+Tab で切り替え。権限モード)
  • git:what files have I changed?、commit my changes with a descriptive message のように会話で操作する
  • バグ修正や機能追加:自然な言葉で頼むと、関連するコードを探し、文脈を読み、実装し、あればテストを動かす

詳しい進め方は よくある作業の進め方 を見てください。

コマンド 内容
claude 対話モードを始める
claude "task" 最初のプロンプトつきで対話モードを始める(例:claude "fix the build error")
claude -p "query" 1回だけ質問して終了する
claude -c 現在のディレクトリの直近の会話を続ける
claude -r 以前の会話を選んで再開する
/clear 会話の履歴を消す
/help 使えるコマンドを表示する
/exit か Ctrl+D を2回 終了する

全コマンドは CLI のコマンドとフラグ と スラッシュコマンド一覧 にあります。

ヒント

頼み方のコツは4つです。「fix the bug」でなく症状や場所まで具体的に書く。複雑な作業は手順に分けて番号で渡す。変更の前に analyze the database schema のように先に調べさせる。/ でコマンドとスキルの一覧、Tab で補完、↑ でコマンド履歴、Shift+Tab で権限モードの切り替えができる。

チーム向けの認証#

方法 向いている組織
Claude for Teams 小さめのチーム向けのセルフサービスのプラン。共同作業・管理ツール・SSO・課金管理・組織全体の設定配布(サーバー管理設定)がある
Claude for Enterprise 大きな組織向け。ドメインキャプチャ・ロールベースの権限・コンプライアンス API が加わる
Claude Console API ベースの課金を好む組織
Claude apps gateway 自前のゲートウェイで IdP を使ってサインインさせ、設定したクラウドプロバイダーへ推論を回す(Claude apps gateway)
Amazon Bedrock・Google Cloud の Agent Platform・Microsoft Foundry Bedrock・Vertex AI・Foundry
  • Teams・Enterprise の流れは、購読(または営業へ連絡)→ 管理画面でメンバーを招待 → メンバーがインストールして claude.ai アカウントでログイン、です
  • Console の流れは、アカウントを用意 → Settings → Members → Invite で一括招待するか SSO を設定 → ロールを割り当て → 各ユーザーが招待を承認してインストールしログイン、です。ロールは「Claude Code」(Claude Code 用の API キーだけを作れる)と「Developer」(あらゆる API キーを作れる)です
  • クラウドプロバイダーでは、プロバイダーの手順に従い、環境変数と認証情報の作り方をユーザーへ配り、ユーザーがインストールします

API キーなしで Console にサインインする#

Claude Code v2.1.242 以降で、組織が API キーの作成を認めていなくても、キーを作らずに Console にサインインできます。/login で Anthropic Console のアカウントを選ぶと、方法を聞かれます。

選択肢 保存されるもの
Sign in with your Console account(推奨) OAuth トークンを Anthropic のプロファイルとして保存する。API キーは作らない
Create an API key(legacy) Console の API キーを作って、ほかの認証情報と一緒に保存する

次の場合は、選択肢が出ずに API キーが作られます。

  • Bedrock・Vertex AI・Foundry・Claude Platform on AWS などのクラウドプロバイダーを使っている

  • どれかの設定ファイルに forceLoginOrgUUID があるか、forceLoginMethod が "claudeai" か "console" になっている

  • 管理設定のソース(管理設定ファイル・MDM プロファイル・キャッシュされたサーバー管理設定)が存在するのに読めず、ほかに方針を与えるソースもない

  • キーなしでサインインする前に ANTHROPIC_API_KEY を unset します

  • 書き込まれるのは、ANTHROPIC_PROFILE が指すプロファイル、なければ有効なプロファイル、なければ default です。それがフェデレーションのプロファイルなら、上書きせずサインインを拒否します

  • 端末に保存された claude.ai のログインはサインアウトされます。取り消すには /logout を実行します(この操作で書かれた認証情報を削除して失効させます)

  • 組織が使うサーバー管理設定は、v2.1.257 以降でこのサインインにも適用されます

  • プロファイルの更新に失敗すると、サインインし直すまでリクエストが「Anthropic profile login expired」で失敗します(エラー一覧)

組織にログインを限定する#

マネージド設定(組織への導入と管理設定)で forceLoginMethod と forceLoginOrgUUID を設定します。forceLoginOrgUUID には、claude.ai の管理設定に出る組織 ID を入れます。

  • 別の組織の claude.ai ログインはエラーになり、使っている claude.ai の認証情報が別の組織のものだと、起動時に終了します
  • Console では、forceLoginOrgUUID に Console の組織 ID を1つ入れると、サインイン画面でその組織が選ばれます。ログイン時にも起動時にも、得られた認証情報がどの組織のものかは検査しません
  • forceLoginOrgUUID を設定すると、そのセッションではキーなしの Console サインインが出なくなり、API キーが作られます。claude.ai のサインインに誘導するには forceLoginMethod を "claudeai" にします
  • v2.1.212 以降は、すべてのログイン経路が forceLoginMethod を適用します。ただし、端末の対話式のログイン画面(/login と初回のオンボーディング)は、方法を事前に選ぶだけで強制しないので、"claudeai" でも Console のログインを完了できます
  • forceLoginOrgUUID の扱いは経路で違います。端末・VS Code 拡張・Agent SDK のログインは claude.ai アカウントで検証します。claude setup-token と /install-github-app は forceLoginMethod だけを適用するため、別の組織でトークンを作れます。ゲートウェイのサインインは forceLoginMethod: "gateway" で選ぶもので、Anthropic の組織には認証しないので forceLoginOrgUUID は適用されません
  • サーバー管理設定は、組織に認証済みのアカウントにしか届かないため、最初のログインを誘導できません。デバイス管理ツールで配ります。サーバー管理設定も配るなら、両方に同じキーを設定します(管理設定のソースは統合されません)
  • ゲートウェイの運用では、ゲートウェイが配る設定に forceLoginMethod と forceLoginOrgUUID を入れません

forceLoginOrgUUID の下では、次のものが起動時にブロックされます。

  • ANTHROPIC_API_KEY・ANTHROPIC_AUTH_TOKEN・apiKeyHelper(環境の認証情報は組織への所属を検証できず、forceLoginMethod の下では必須のサインインの代わりになってしまうため)
  • クラウドプロバイダーのセッションは、これらの認証情報か、以前の Console ログインで保存された API キーが端末に残っているあいだだけブロックされます。取り除くと起動します
  • Anthropic のプロファイルとフェデレーションの認証情報は、同じ認証情報が端末にあるときを除いてブロックされません。プロファイルがどの組織のものかは検査しません

使える API プロバイダーを限定する#

マネージド設定の allowedProviders(v2.1.285 以降)に、端末が Claude にアクセスしてよいサービスを並べます。forceLoginMethod・forceLoginOrgUUID が「どのアカウントか」を決めるのに対し、こちらは「どのサービスか」を決めます。

json
{
  "forceLoginMethod": "claudeai",
  "forceLoginOrgUUID": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"],
  "allowedProviders": ["anthropic", "bedrock"]
}
  • 上の設定では、組織の claude.ai にサインインした開発者か Amazon Bedrock を設定した開発者は普通に起動します。それ以外のプロバイダーを設定したセッションは起動時に拒否され、実行中に切り替えたセッションは次のリクエストで拒否されます(エラー一覧 の「Managed settings don't allow this API provider」)
  • LLM ゲートウェイやプロキシを許可するには、"customEndpoint" を並べ、同じソースのマネージドの env ブロックでゲートウェイの URL を指定します
  • サーバー管理設定だけに置いた一覧は、組織の設定を取得するセッションにしか届かないので、強制ではなく便宜として扱います

認証情報の保存と管理#

環境 保存先
macOS 暗号化された macOS Keychain。書き込みが拒否されたとき(SSH セッションでロックされているときなど)は ~/.claude/.credentials.json(ファイルモード 0600)に保存する
Linux ~/.claude/.credentials.json(ファイルモード 0600)
Windows %USERPROFILE%\.claude\.credentials.json(ユーザープロファイルのアクセス制御を引き継ぐ)
  • CLAUDE_CONFIG_DIR を設定すると、.credentials.json はそのディレクトリの下に置かれ、macOS の Keychain のエントリもそのディレクトリごとになります
  • .credentials.json は /login と /logout が管理します。API の送り先を変えるには ANTHROPIC_BASE_URL を使います
  • 対応する認証の種類は、claude.ai の認証情報、Claude API の認証情報、Microsoft Foundry・Bedrock・Vertex の認証、Anthropic のプロファイルと Workload Identity Federation の認証情報、Claude apps gateway のセッショントークンです
  • apiKeyHelper 設定で、API キーを返すシェルスクリプトを指定できます。実行が10秒を超えると、プロンプトバーに経過時間の警告が出ます。スクリプトがエラー終了・タイムアウト・空出力だと、3回以内に「Your apiKeyHelper script is failing」でリクエストが失敗します
  • apiKeyHelper・ANTHROPIC_API_KEY・ANTHROPIC_AUTH_TOKEN は、CLI とそれを包む画面(VS Code 拡張・Agent SDK・GitHub Actions)に効きます。Claude Desktop とクラウドセッションは、これらを使わず OAuth を使います(サードパーティの推論構成のデスクトップセッションは、その構成の認証情報を使います)

ログインの期限が近いとき#

/login で作ったログインの期限まで3日を切ると、起動時に Your login expires in 3 days · run /login to renew と出ます。この警告は情報提供で、認証は期限が切れるまで動き続けます。/login で更新します。

  • 期限が切れて更新できないと、リクエストごとに Login expired · Please run /login で失敗します
  • /status の Login の行に Expired — log in again と、保存されている組織とメールが出ます(v2.1.210 以降。claude.ai のログインが有効な認証情報のときだけ)
  • 警告が出るのは claude.ai のログインが有効な認証情報のときだけです。クラウドプロバイダー・ANTHROPIC_API_KEY・ANTHROPIC_AUTH_TOKEN・apiKeyHelper が認証情報のときは出ません
  • 無人で動かすセッション(エージェントビュー のバックグラウンドセッションや リモートコントロール)は、ログインが切れると進まなくなり、サインインし直すまで回復しません

認証の優先順位#

認証情報が複数あるときは、次の順で選ばれます。

順位 認証情報 補足
1 クラウドプロバイダーの認証情報 CLAUDE_CODE_USE_BEDROCK・CLAUDE_CODE_USE_VERTEX・CLAUDE_CODE_USE_FOUNDRY のいずれかが設定されているとき
2 ANTHROPIC_AUTH_TOKEN Authorization: Bearer ヘッダーで送る。ベアラートークンで認証する LLM ゲートウェイやプロキシ向け
3 ANTHROPIC_API_KEY X-Api-Key ヘッダーで送る。対話モードでは一度だけ承認か拒否を聞かれ、選択は記憶される。あとから変えるには /config の「Use custom API key」(ANTHROPIC_API_KEY が設定されているときだけ出る)。-p では設定があれば常に使う
4 apiKeyHelper の出力 動的・ローテーションする認証情報(保管庫から取る短命のトークンなど)向け
5 CLAUDE_CODE_OAUTH_TOKEN claude setup-token で作る長期トークン。CI やスクリプト向け。変数が設定されたまま /login を実行すると、そのセッションは新しいログインに切り替わるが、新しいセッションでは変数が再び読まれる
6 Anthropic のプロファイルとフェデレーションの認証情報 ant auth login が書いたプロファイルは、ANTHROPIC_PROFILE で名指ししたときだけこの順位。それ以外は /login より下
7 /login のサブスクリプション OAuth 認証情報 Pro・Max・Team・Enterprise の既定
  • ログイン済みのゲートウェイのセッションは、この一覧の外にあり、クラウドプロバイダーより優先されます。ゲートウェイのトークンで認証し、上の順位の認証情報は使われません
  • マネージド設定の forceLoginMethod が "gateway"、または forceLoginGatewayUrl が設定されていて、CLAUDE_CODE_USE_BEDROCK などでクラウドプロバイダーを選んでいないときは、ゲートウェイのサインインだけが使われます
  • 有効なサブスクリプションがあるのに ANTHROPIC_API_KEY が設定されていると、承認したあとはそのキーが使われます。キーが無効化・期限切れの組織のものだと認証に失敗します。unset ANTHROPIC_API_KEY でサブスクリプションに戻し、/status で有効な方法を確認します。ログインと API キーが両方あると、/status が使われていないほうに印を付けます
  • クラウドセッションは常にサブスクリプションの認証情報を使い、クラウド環境に ANTHROPIC_API_KEY や ANTHROPIC_AUTH_TOKEN を設定しても上書きされません

Anthropic のプロファイルとフェデレーション#

プロファイルは、Anthropic の設定ディレクトリ(macOS・Linux では既定で ~/.config/anthropic、Windows では %APPDATA%\Anthropic)にある、名前付きの認証情報の設定ファイルです。認証モードは、Workload Identity Federation(WIF)用に作ると oidc_federation、ant auth login が書いたかキーなしの Console サインインだと user_oauth です。

参照元 設定するもの /login との順位
名前付きプロファイル ANTHROPIC_PROFILE 上。認証モードを問わない
フェデレーション変数 ANTHROPIC_FEDERATION_RULE_ID と ANTHROPIC_ORGANIZATION_ID の両方 上
有効なプロファイル 設定ディレクトリの active_config ファイル、または default という名前のプロファイル oidc_federation なら上。user_oauth なら、動作する /login の認証情報より下
  • 上から順に調べ、最初に設定されているもので止まります。どれが選ばれたかは /status の Profile の行で分かります(Login method の行の代わりに出る)
  • ベアモード・Claude Desktop・クラウドセッションでは、プロファイルもフェデレーション変数も読まれません
  • これらが選ばれているあいだは、claude.ai のログインが要る機能(claude.ai のコネクタや /schedule)は使えません。選ばれないようにするには、名前付きプロファイルやフェデレーション変数を unset するか、有効なプロファイルについて /logout(キーなしの Console サインインで書いたもの)、ant auth logout(ant auth login で書いたもの)、またはプロファイルのファイルを configs/ から消します

CI 用の長期トークンを作る#

bash
claude setup-token

/login と同じブラウザの認可を経て、1年有効の OAuth トークンが端末に表示されます。どこにも保存されないので、控えて、認証したい環境に CLAUDE_CODE_OAUTH_TOKEN として設定します。

bash
export CLAUDE_CODE_OAUTH_TOKEN=your-token
  • Pro・Max・Team・Enterprise のサブスクリプションが必要です
  • このトークンはモデルへのリクエストだけに使えます。リモートコントロール のセッションの確立や、claude.ai のコネクタの取得はできません(ローカルで設定した MCP サーバーは動きます)
  • ベアモード(--bare)はこの変数を読みません。ANTHROPIC_API_KEY か apiKeyHelper で認証します(ヘッドレス実行(-p))

更新する#

方法 更新のしかた
ネイティブ 自動更新(起動時と実行中に定期的に確認。バックグラウンドでダウンロードし、次回の起動から有効)
Homebrew・WinGet・Linux のパッケージ 手動(上の表)
手動で今すぐ claude update

claude update が成功すると Successfully updated from <old version> to version <new version> と出ます。最新のときは Claude Code is up to date (<version>)、Homebrew・WinGet・apk では Claude is up to date! と出ます。直近の更新の結果は claude doctor で見られます。

リリースチャンネルと最小バージョン#

autoUpdatesChannel で、自動更新と claude update が追うチャンネルを決めます。/config の「Auto-update channel」からも変えられます。

値 内容
"latest"(既定) 出た直後に新機能を受け取る
"stable" 通常約1週間前の版を使い、大きな不具合のあるリリースは飛ばす
json
{
  "autoUpdatesChannel": "stable",
  "minimumVersion": "2.1.100"
}
  • minimumVersion は下限です。バックグラウンドの自動更新と claude update は、この値より低い版を入れません。すでに新しい latest を使っている場合に、stable へ切り替えても下がりません
  • /config で latest から stable に切り替えると、いまの版にとどまるか、ダウングレードを許すかを聞かれます。とどまると minimumVersion がその版に設定され、latest に戻すと解除されます
  • マネージド設定の minimumVersion は、組織全体の下限になり、ユーザーやプロジェクトの設定では上書きできません
  • 範囲の外では起動させたくないときは、マネージド設定の requiredMinimumVersion と requiredMaximumVersion を使います。更新も requiredMaximumVersion の上限を守ります
  • Homebrew はチャンネルを cask の名前で選びます
  • apt・dnf・apk のリポジトリから入れた場合は、この設定ではなくリポジトリでチャンネルを選びます。切り替えるには「Homebrew・WinGet・Linux のパッケージマネージャー」の手順に従います

新しく出たモデルが、stable チャンネルが配る版より新しい Claude Code を必要とすることがあります。そのモデルをすぐ使うには、latest チャンネルに移ります。

自動更新を止める#

json
{
  "env": {
    "DISABLE_AUTOUPDATER": "1"
  }
}
  • DISABLE_AUTOUPDATER が止めるのはバックグラウンドの確認だけで、claude update と claude install は動きます。claude doctor の Auto-updates の行が disabled (set by env: DISABLE_AUTOUPDATER) になれば有効です
  • 手動の更新も含めてすべての経路を止めるには DISABLE_UPDATES を使います(独自の経路で配るときに、利用者を指定の版にとどめられます)

自前のランチャーを使うとき#

macOS と Linux では、ネイティブのインストーラが ~/.local/bin/claude を ~/.local/share/claude/versions/ へのシンボリックリンクとして管理します。このパスを自前のスクリプトやシンボリックリンクに置き換えると、自動更新と claude update はそれをそのままにします(新しい版は versions/ に入り、どの版を動かすかはランチャーが決める)。v2.1.207 より前は、更新のたびに独自のランチャーを置き換えていました。

  • ランチャーがどの版を要るか分からないため、インストールした版はすべてディスクに残ります。claude doctor はネイティブのインストーラが作っていないランチャーを報告します
  • 再び Claude Code に管理させるには、~/.local/bin/claude を削除して claude update を実行します
  • npm のグローバルディレクトリに書き込めず自動更新できないときは、起動時に一度だけ通知され、claude doctor が対処を一覧します

ネットワークストレージに入れる#

動いているセッションは、起動時だけでなく作業中も、Claude Code の実行ファイルの一部をディスクから読みます。ネットワークストレージ上でファイルが切り詰められたり消されたりして読めなくなると、セッションがクラッシュします。Linux ではシェルが Bus error と報告します。

複数のマシンにマウントした NFS のホームのように、ホームディレクトリがネットワークストレージにあるときは、各セッションの実行ファイルがセッションの終わりまで読めるように配置します。

  • ローカルディスクに入れる:Linux のパッケージマネージャーや自前の配布の仕組みで、各マシンのローカルのファイルシステムにバイナリを置く。ユーザーごとの npm のプレフィックスも、ネイティブのインストーラの既定の ~/.local/share/claude/versions/ も、ホームディレクトリの中にある
  • 版ごとに別のディレクトリに入れる:npm install -g で npm のインストールをその場でアップグレードすると、前のバイナリが消える。複数のマシンが共有するストレージでは、ほかのマシンのセッションがまだ動かしているファイルを消すことになる。新しい版は古い版の隣に入れ、利用者を移す
  • 古い版を消すのは、どのマシンでも動いていないときだけ:ほかのマシンのプロセスは見えないので、消す前に動いているプロセスを調べるだけでは足りない
  • Claude Code 自身の更新を止める:DISABLE_UPDATES を設定し、新しい版は自前の仕組みで入れる。そうしないと、あるマシンでの npm インストールの自動更新が同じその場のアップグレードを行い、ほかのマシンのセッションのバイナリを消す。DISABLE_AUTOUPDATER だけでは、claude update と claude install が使えるので足りない

ネイティブのインストーラは、~/.local/share/claude/versions/ の古い版を自分で削除します。共有ストレージではこれが問題になります。ランチャーが指す版と、同じマシンのセッションが動かしている版を除き、新しい2つの版を残して、残りを削除します。削除された版を動かしているほかのマシンのセッションは、バイナリを失います。自前のランチャー(上の「自前のランチャーを使うとき」)を使うと、Claude Code は入れた版をすべて残し、掃除は利用者に任せます。

バイナリの検証#

各リリースは、全プラットフォームのバイナリの SHA256 チェックサムを持つ manifest.json を公開します。manifest は Anthropic の GPG 鍵で署名されています。

bash
curl -fsSL https://downloads.claude.ai/keys/claude-code.asc | gpg --import
gpg --fingerprint security@anthropic.com
REPO=https://downloads.claude.ai/claude-code-releases
VERSION=2.1.89
curl -fsSLO "$REPO/$VERSION/manifest.json"
curl -fsSLO "$REPO/$VERSION/manifest.json.sig"
gpg --verify manifest.json.sig manifest.json
  • 鍵の指紋は 31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE です。署名が正しければ Good signature from "Anthropic Claude Code Release Signing <security@anthropic.com>" と出ます。新しく取り込んだ鍵に出る WARNING: This key is not certified with a trusted signature! は想定どおりです
  • 手順は POSIX シェルと gpg・curl が前提です(Windows では Git Bash か WSL)
  • バイナリのチェックサムは、manifest.json の platforms.<platform>.checksum と比べます。Linux は sha256sum claude、macOS は shasum -a 256 claude、Windows は (Get-FileHash claude.exe -Algorithm SHA256).Hash.ToLower() です。インストール済みのバイナリは ~/.local/share/claude/versions/VERSION を対象にします
  • manifest の署名は 2.1.89 以降のリリースで使えます。それ以前はチェックサムだけです
  • macOS は「Anthropic PBC」の署名と Apple の公証があり、codesign --verify --verbose ./claude で確認します。Windows は「Anthropic, PBC」の署名で、Get-AuthenticodeSignature .\claude.exe で確認します。Linux のバイナリは個別には署名されておらず、manifest の署名で確認します(apt・dnf・apk は、パッケージマネージャーが自動で検証します)

アンインストールする#

インストール方法 削除のしかた
ネイティブ(macOS・Linux・WSL) rm -f ~/.local/bin/claude と rm -rf ~/.local/share/claude
ネイティブ(Windows) Remove-Item -Path "$env:USERPROFILE\.local\bin\claude.exe" -Force と、"$env:USERPROFILE\.local\share\claude" の再帰削除
Homebrew brew uninstall --cask claude-code(latest の cask なら claude-code@latest)
WinGet winget uninstall Anthropic.ClaudeCode
apt sudo apt remove claude-code、/etc/apt/sources.list.d/claude-code.list と /etc/apt/keyrings/claude-code.asc を削除
dnf sudo dnf remove claude-code、/etc/yum.repos.d/claude-code.repo を削除
apk apk del claude-code、/etc/apk/repositories の該当行と /etc/apk/keys/claude-code.rsa.pub を削除
npm npm uninstall -g @anthropic-ai/claude-code

削除しても claude が動くときは、別のインストールか、古いインストーラが残したシェルのエイリアスがあります(下の「競合するインストール」)。

注意

設定ファイルを消すと、設定・許可したツール・MCP サーバーの設定・セッション履歴がすべて消えます。VS Code 拡張・JetBrains プラグイン・デスクトップアプリも ~/.claude/ に書き込むため、残っていればディレクトリが作り直されます。完全に消すには、先にそれらをアンインストールします。

bash
# ユーザーの設定と状態
rm -rf ~/.claude
rm ~/.claude.json
# プロジェクトの設定(プロジェクトのディレクトリで実行)
rm -rf .claude
rm -f .mcp.json

Windows では $env:USERPROFILE\.claude と $env:USERPROFILE\.claude.json、プロジェクトの .claude と .mcp.json を Remove-Item で削除します。

エラーから探す#

出た文言に合う行から、後続の節へ進んでください。

見えたもの 対処
command not found: claude・'claude' is not recognized PATH を通す
syntax error near unexpected token '<'、curl: (22) ... 403、iex の解析エラー インストールスクリプトが HTML を返している
curl: (23)・curl: (56) Failure writing output to destination 接続を確認するか別の方法で入れる
Killed、Installation was killed before it could finish (exit code 137) メモリを空けるかスワップを足す
Raw mode is not supported インストーラを再実行する
インストール中の EACCES: permission denied インストール先のディレクトリの権限を直す
セッション中の Bus error・oh no: Bun has crashed 実行ファイルを読める状態に保つ
TLS connect error・SSL/TLS secure channel・unable to get local issuer certificate CA 証明書を更新する
Failed to fetch version・ダウンロードサーバーに届かない ネットワークとプロキシを確認する
irm is not recognized・The token '&&' is not a valid statement separator・'bash' is not recognized as the name of a cmdlet・A parameter cannot be found that matches parameter name 'fsSL' シェルに合うコマンドを使う
Cask 'claude-code' is unavailable: No Cask with this name exists Homebrew を更新する
Claude Code on Windows requires either Git for Windows (for bash) or PowerShell シェルを入れる
Claude Code does not support 32-bit Windows x86 でない PowerShell を開く
The process cannot access the file ... because it is being used by another process ダウンロードフォルダーを空にして再実行する
Error loading shared library musl と glibc のバイナリの取り違え
Illegal instruction アーキテクチャか CPU 命令セットの不一致
cannot execute binary file: Exec format error(WSL) WSL1 の問題
dyld: Symbol not found・dyld: cannot load・Abort trap(macOS) バイナリの非互換
claude update が Checking for updates で止まる、claude doctor が無出力で止まる シェルの設定ファイルのパスがディレクトリ
running scripts is disabled on this system・PSSecurityException 実行ポリシーを変える
Error: claude native binary not installed npm のインストールを完了させる
npm error code ENOTEMPTY 残ったパッケージのディレクトリを消す
更新の直後に Windows で 'claude' is not recognized claude.exe をバックアップから戻す
App unavailable in region 対応国の外
OAuth error・403 Forbidden 認証の節
Claude Code access has not been granted for this account Claude Code を含むロールが要る
Could not load the default credentials・Could not load credentials from any providers・ChainedTokenCredential authentication failed・CredentialUnavailableError クラウドプロバイダーの認証情報
Unable to connect to Anthropic services エラー一覧 を見る
API Error: 500・529 Overloaded・429 などの 4xx・5xx エラー一覧 を見る

載っていないときは、次の診断を順に実行して原因を絞ります。ランタイムの問題は トラブルシューティング、設定が効かない・フックが動かないなどは 設定のデバッグ を見てください。

診断の手順#

ネットワークの接続#

インストーラは downloads.claude.ai から取得します。

bash
curl -sI https://downloads.claude.ai/claude-code-releases/latest

Windows の PowerShell では curl が Invoke-WebRequest の別名のため、curl.exe -sI ... と書きます。1行目が 200(macOS・Linux は HTTP/2 200、Windows の curl.exe は HTTP/1.1 200 OK)ならサーバーに届いています。

結果 原因の目安
403 プロキシやネットワークフィルターが止めている、または対応国の外
5xx 一時的なサービスの問題。数分待って再試行する
出力なし・Could not resolve host・接続タイムアウト ネットワークがブロックしている(社内ファイアウォールやプロキシ、地域の制限、TLS の問題、HTTPS_PROXY の設定)

プロキシの内側では、インストールの前に HTTP_PROXY と HTTPS_PROXY を設定します。

bash
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
curl -fsSL https://claude.ai/install.sh | bash

PowerShell では $env:HTTP_PROXY = '...' と $env:HTTPS_PROXY = '...' を設定してから irm https://claude.ai/install.ps1 | iex を実行します。

PATH#

インストーラは、macOS・Linux では ~/.local/bin/claude、Windows では %USERPROFILE%\.local\bin\claude.exe に置きます。

bash
echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"

出力がなければ、シェルの設定に足します。

シェル 設定ファイル
Zsh(macOS の既定) ~/.zshrc
Bash(Linux) ~/.bashrc
Bash(macOS) ~/.bash_profile(~/.bash_login か ~/.profile だけがあるときは、そのファイルに書く)
fish・Nushell など そのシェルの書き方で ~/.local/bin を PATH に足す
bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Windows の PowerShell では、ユーザーの PATH に足して、ターミナルを再起動します。

powershell
$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')

CMD では、システム設定の環境変数で、ユーザーの PATH に %USERPROFILE%\.local\bin を足します。直ったかは claude --version で確認します。

補足

VS Code 拡張は、自分のチャットパネル用に CLI の私的なコピーを拡張のディレクトリの中に持ち、PATH には足しません。拡張だけ入れた場合は ~/.local/bin/claude はありません。ターミナルから使うにはスタンドアロンのインストールを実行します。

競合するインストール#

複数のインストールがあると、版の食い違いや予期しない動作が起きます。

bash
which -a claude
ls -la ~/.local/bin/claude
ls -la ~/.claude/local/
npm -g ls @anthropic-ai/claude-code 2>/dev/null
  • ネイティブのインストールは ~/.local/share/claude/versions/ へのシンボリックリンクです。自分で作ったスクリプトやリンクはカスタムランチャーで、自動更新はそのままにします
  • ~/.claude/local/ は、古い版が作ったローカルの npm インストールです。No such file or directory は、その場所に何もないという意味でエラーではありません
  • Windows では where.exe claude と Test-Path "$env:USERPROFILE\.local\bin\claude.exe" を使います
  • 複数あれば、macOS・Linux の ~/.local/bin/claude、Windows の %USERPROFILE%\.local\bin\claude.exe のネイティブだけを残します。余分なものは npm uninstall -g @anthropic-ai/claude-code、~/.claude/local の削除(Windows は $env:USERPROFILE\.claude\local)、brew uninstall --cask claude-code、winget uninstall Anthropic.ClaudeCode で外します

ディレクトリの権限#

インストールが権限で失敗すると、作れなかった・書けなかったパスが表示されます。Windows では %USERPROFILE% の下に書き込み、既定でユーザーが書き込めるので、この節が当てはまることはまれです。

macOS と Linux では、インストールは次の場所に書き込みます。

  • ~/.claude/downloads/:インストールのコマンドがダウンロードしたバイナリを置く場所
  • ~/.local/bin/:claude のランチャー
  • ~/.local/share/claude/:ダウンロードした各バージョン
  • ~/.local/state/claude/:ロックファイル
  • ~/.cache/claude/:ステージングされたダウンロード
  • ~/.claude.json:グローバルの設定ファイル。インストーラがインストール方法を記録する

XDG_DATA_HOME・XDG_STATE_HOME・XDG_CACHE_HOME を設定していると、~/.local/share・~/.local/state・~/.cache の代わりにそれが使われます。CLAUDE_CONFIG_DIR を設定していると、グローバルの設定ファイルはホームディレクトリではなくそのディレクトリの下に置かれます。

主な場所が書き込めるかは、次のコマンドで確かめます。

bash
test -w ~/.local/bin && echo "writable" || echo "not writable"
test -w ~/.claude && echo "writable" || echo "not writable"

書き込めないときは、ディレクトリを作り、所有者を自分にします。

bash
sudo mkdir -p ~/.local/bin
sudo chown -R $(whoami) ~/.local

バイナリが動くか#

claude --version は出るのに起動で落ちる・固まるときは、次を試します。

bash
ls -la "$(command -v claude)"
ldd "$(command -v claude)" | grep "not found"
claude --version

Linux では ldd で足りない共有ライブラリを確認します。Windows では Get-Command claude | Select-Object Source で場所を確認します。

インストールの問題と対処#

インストールスクリプトが HTML を返す#

次のような出力になります。

text
bash: line 1: syntax error near unexpected token `<'
bash: line 1: `<!DOCTYPE html>'

PowerShell では、iex が HTML や CSS を実行しようとして Missing argument in parameter list.・Missing expression after unary operator '--'・ParserError・ParseException などが出ます。-OutFile install.ps1 で保存しても中身は同じ Web ページです。本文なしの curl: (22) The requested URL returned error: 403 になることもあります。

  • インストール URL がスクリプトの代わりに HTML かエラー状態を返しています。HTML が「App unavailable in region」なら、その国では使えません
  • 本文なしの 403 は同じ原因のことが多いですが、社内プロキシやファイアウォールのこともあります。対応国にいて 403 が続くときは、別のインストーラを試す前に接続の診断を実行します(別のインストーラも同じホストに届くため)
  • 対処は、別の方法で入れる(macOS は brew install --cask claude-code、Windows は winget install Anthropic.ClaudeCode)か、数分待って同じコマンドをもう一度実行することです。インストール後に claude が見つからなければ、新しいターミナルを開きます(インストールしたセッションは古い PATH のままです)

command not found: claude#

環境 エラーメッセージ
macOS zsh: command not found: claude
Linux bash: claude: command not found
Windows CMD 'claude' is not recognized as an internal or external command
PowerShell claude : The term 'claude' is not recognized as the name of a cmdlet

インストールディレクトリが PATH に無い状態です。上の「PATH」の手順で直します。

curl: (56) Failure writing output to destination#

curl ... | bash が、スクリプトを最後まで Bash に渡せなかった状態です。56 はダウンロード自体の中断、23 は curl が受け取った内容をパイプに書けなかった(多くは Bash が先に終了した)ことを示します。downloads.claude.ai に届くかを確認し、届くなら一時的な失敗の可能性が高いので再実行します。別のインストール方法も使えます。

Homebrew の cask が見つからない・古い#

Error: Cask 'claude-code' is unavailable: No Cask with this name exists は、手元の cask の索引が古いときに出ます。

bash
brew update
brew install --cask claude-code

想定より古い版が入るのも、同じ原因が多いです。claude-code は stable を追うので、最新版が要るなら brew install --cask claude-code@latest を使います。

TLS・SSL の接続エラー#

curl: (35) TLS connect error、schannel: next InitializeSecurityContext failed、Could not create SSL/TLS secure channel、Could not establish trust relationship for the SSL/TLS secure channel は、TLS のハンドシェイクの失敗です。

  1. システムの CA 証明書を更新します。Ubuntu・Debian では sudo apt-get update && sudo apt-get install ca-certificates。macOS の curl は Keychain の信頼ストアを使うので、macOS を更新すれば更新されます
  2. Windows では、インストーラの前に PowerShell で TLS 1.2 を有効にします
  3. TLS を検査する社内プロキシは、unable to get local issuer certificate や SELF_SIGNED_CERT_IN_CHAIN を起こします。インストールでは、社内プロキシの CA を信頼させます(curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash)。PowerShell のインストーラは .NET 経由で Windows の証明書ストアを使うので、IT 担当にプロキシの CA をストアへ追加してもらいます。インストール後の Claude Code 本体は、NODE_EXTRA_CA_CERTS に同じ CA ファイルを指定して、API リクエストにも信頼させます
  4. Windows で CRYPT_E_NO_REVOCATION_CHECK (0x80092012) や CRYPT_E_REVOCATION_OFFLINE (0x80092013) が出るのは、サーバーには届いたが証明書の失効確認がネットワークで遮断されている状態です。自分で実行する curl に --ssl-revoke-best-effort を付けるか、PowerShell のインストーラや winget を使います(スクリプト自身のダウンロードは自動で再試行されます)
powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
irm https://claude.ai/install.ps1 | iex
bash
export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem
batch
curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

Failed to fetch version from downloads.claude.ai#

ダウンロードサーバーに届かない状態で、多くはネットワークが downloads.claude.ai を遮断しています。上の「ネットワークの接続」を実行します。

Windows で違うインストールコマンドを使った#

出たもの 原因と対処
'irm' is not recognized CMD にいる。PowerShell を開くか、CMD 用のインストーラを使う
The token '&&' is not a valid statement separator PowerShell で CMD 用のコマンドを実行した。irm https://claude.ai/install.ps1 | iex を使う
A parameter cannot be found that matches parameter name 'fsSL' PowerShell で macOS・Linux 用の curl -fsSL を実行した(curl は Invoke-WebRequest の別名)。PowerShell 用を使う
'bash' is not recognized as the name of a cmdlet Windows で macOS・Linux 用のインストーラを実行した。PowerShell 用を使う
スクリプトの文章が表示されるだけで入らない ダウンロードの半分だけ実行している。irm ... | iex までを、CMD は -o を含む完全なコマンドを実行する

どちらでも、新しいターミナルで claude --version を実行して確かめます。

running scripts is disabled on this system#

Windows で npm 経由のインストールや実行をすると、npm.ps1 や claude.ps1 について SecurityError(PSSecurityException)が出ます。PowerShell の実行ポリシーが、npm が作る .ps1 のランチャーを止めています。PowerShell のインストーラ(irm ... | iex)はスクリプトファイルではないので影響しません。

  1. Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser を実行して、再試行する
  2. .cmd のランチャー(npm.cmd・claude.cmd)を使う
  3. npm の代わりに PowerShell のインストーラを使う

Windows のインストールで The process cannot access the file#

Failed to download binary: The process cannot access the file ... because it is being used by another process は、%USERPROFILE%\.claude\downloads に書けなかった状態です。前回の試行がまだ動いているか、ウイルス対策ソフトがダウンロード途中のバイナリをスキャンしています。ほかの PowerShell ウィンドウを閉じ、スキャンが終わるのを待ってから、ダウンロードのフォルダーを消して再実行します。

powershell
Remove-Item -Recurse -Force "$env:USERPROFILE\.claude\downloads"
irm https://claude.ai/install.ps1 | iex

Windows で更新後に claude.exe が無い#

更新後すぐ 'claude' is not recognized になったら、%USERPROFILE%\.local\bin に claude.exe が残っているか確かめます(ディレクトリが PATH に無いなら「PATH」を見る)。更新では、既存の claude.exe をバックアップへ名前変更して退避します。バックアップは同じディレクトリの claude.exe.old. と数字のタイムスタンプが続くファイルです。

powershell
Get-ChildItem "$env:USERPROFILE\.local\bin\claude.exe.old.*" | Sort-Object Name | Select-Object -Last 1 | Rename-Item -NewName claude.exe

そのあと claude --version で確認します。バックアップが無いか、名前を戻しても直らないときは irm https://claude.ai/install.ps1 | iex で再インストールします。v2.1.281 より前は、claude.exe が無いまま Claude Code がバックアップを消すことがありました。

低メモリの Linux サーバーで Killed#

OOM killer が claude install を止めています。スクリプトは終了コード 137 で、Installation was killed before it could finish (exit code 137). This usually means the system ran out of memory. と報告します。インストールに空きメモリが約 512 MB 要り、実行にはさらに必要です(RAM は 4 GB 以上)。

  1. スワップを足します:sudo fallocate -l 2G /swapfile、sudo chmod 600 /swapfile、sudo mkswap /swapfile、sudo swapon /swapfile。そのあとインストールを再実行します
  2. ほかのプロセスを閉じてメモリを空けます
  3. 可能なら大きなインスタンスを使います

Docker でインストールが固まる#

root で / からインストールすると固まることがあります。

  1. インストールの前に作業ディレクトリを設定します(/ から実行すると、インストーラがファイルシステム全体を走査して大量にメモリを使うため)
  2. Docker Desktop では、Settings > Resources でメモリの上限を上げます
dockerfile
WORKDIR /tmp
RUN curl -fsSL https://claude.ai/install.sh | bash

インストール中の Raw mode is not supported#

組織のサーバー管理設定にセキュリティ承認が要る変更があると、v2.1.246 より前は claude install の最中に承認のダイアログを出そうとします。ダイアログは stdin が端末であることを要しますが、インストーラがパイプ経由で claude install を呼ぶと端末ではありません。v2.1.246 以降は、claude install と claude update ではダイアログを出さず、最後に承認した設定で動き、次の対話セッションでダイアログが出ます。それ以外の構成では、インストーラの再実行で通ります(スクリプトは、古い版を指定しても、最新リリースの install コマンドを実行するため)。

claude update や claude doctor が固まる#

この2つは、古い claude エイリアスを探して、シェルの設定ファイル(~/.zshrc・~/.bashrc・~/.config/fish/config.fish、macOS ではさらに ~/.bash_profile・~/.bash_login・~/.profile のうち最初に存在するもの。ZDOTDIR を設定していれば $ZDOTDIR/.zshrc)を調べます。そのパスのどれかがディレクトリだと、古い版では固まります。

bash
ls -ld ~/.zshrc ~/.bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.config/fish/config.fish

出力の行頭が d のパスがディレクトリです。No such file or directory は無いだけで原因ではありません。ディレクトリを移すか、v2.1.214 以降へ更新します。claude update が固まるので、インストールスクリプトの再実行で更新します。

Claude Desktop が Windows で claude を横取りする#

古い Claude Desktop が WindowsApps に Claude.exe を登録し、PATH で CLI より先に解決されて、claude でデスクトップアプリが開きます。Claude Desktop を最新に更新します。

Claude Code on Windows requires either Git for Windows (for bash) or PowerShell#

Git Bash が無ければ PowerShell ツールが使われるので、このエラーはどちらのシェルも見つからないという意味です。

  • PowerShell が PATH に無いなら、既定の場所 C:\Windows\System32\WindowsPowerShell\v1.0\ を PATH に足すか、pwsh を提供する PowerShell 7 を入れます
  • Git for Windows を入れるなら、セットアップで「Add to PATH」を選び、ターミナルを再起動します。入れると Bash ツールと Monitor ツールが使えます
  • 入っているのに見つからないときは、CLAUDE_CODE_GIT_BASH_PATH が未設定の場合、Claude Code は次の順で bash.exe を探します:(1) C:\Program Files\Git と C:\Program Files (x86)\Git の既定の場所、(2) PATH 上の git の bin\bash.exe
  • (2) では、起動したフォルダーにある git、node_modules を含むパスや仮想環境のフォルダー(.venv・env など)の下にある git は飛ばされます(プロジェクトが置いた実行ファイルを動かさないため)
  • 特定の Git を指すには、PowerShell の where.exe git で見つけ、その bin\bash.exe を、settings.json の env で CLAUDE_CODE_GIT_BASH_PATH に設定します
  • CLAUDE_CODE_GIT_BASH_PATH が正しいのに使われないときは、ファイル名を確認します。受け付けるのは bash.exe・sh.exe・bash・sh だけで、Git for Windows の git-bash.exe のランチャーのような名前は無視され、未設定のように自動検出されます(警告が記録される)
  • ファイル名が正しければ、AppLocker・グループポリシーのソフトウェア制限・EDR などが邪魔しているかもしれません。IT 担当に、claude.exe とそれが起動する cmd.exe・bash.exe を許可リストに入れてもらいます

Claude Code does not support 32-bit Windows#

スタートメニューの Windows PowerShell (x86) は32ビットのプロセスで、64ビットの機械でもこのエラーを起こします。エラーの出た同じウィンドウで [Environment]::Is64BitOperatingSystem を実行します。True なら OS は問題なく、Windows PowerShell(x86 の付かないほう)を開いてもう一度実行します。False なら32ビット版の Windows で、Claude Code は64ビットの OS が必要です。

Linux の musl と glibc の取り違え#

インストール後に Error loading shared library libstdc++.so.6: No such file or directory のように、libstdc++.so.6 や libgcc_s.so.1 のエラーが出る状態です。musl のクロスコンパイル用パッケージが入った glibc のシステムで、musl と誤検出されたときに起きます。

  1. ldd --version 2>&1 | head -1 で、GNU libc や GLIBC なら glibc、musl なら musl と分かります
  2. glibc なのに musl 版が入ったなら、削除して再インストールします。https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json から正しいバイナリを手動で取ることもできます。ldd --version と ls /lib/libc.musl* の出力を添えて GitHub の issue に報告します
  3. 実際に musl(Alpine など)なら、apk add libgcc libstdc++ ripgrep で必要なパッケージを入れます

Illegal instruction#

ネイティブバイナリが、プロセッサの非対応の CPU 命令を使っています。原因は2つです。

  • アーキテクチャの不一致:ARM のサーバーに x86 が入った場合など。macOS・Linux では uname -m、PowerShell では $env:PROCESSOR_ARCHITECTURE で確認し、受け取ったバイナリと合わなければ GitHub に報告します
  • AVX 命令セットが無い:アーキテクチャが合っているのに出る場合、CPU が AVX などを持っていません。おおむね2013年より前の Intel・AMD のプロセッサと、ハイパーバイザーがゲストに AVX を渡さない仮想マシンが該当します。VPS や VM では grep -m1 -ow avx /proc/cpuinfo を実行し、空なら AVX が使えません

ネイティブバイナリには回避策がありません。状況は issue #50384 を追い、報告するときは CPU のモデルを添えます(Linux は grep -m1 "model name" /proc/cpuinfo、macOS は sysctl -n machdep.cpu.brand_string)。別のインストール方法も同じバイナリを使うので、どちらの原因も解決しません。

セッション中の Bus error#

動いていたセッションが終了し、シェルが Bus error と表示したときは、Claude Code が自分の実行ファイルをディスクから読めなくなったことが原因の1つです。たとえば、セッションの動作中にファイルが切り詰められたり、ネットワークストレージ上で削除されたりした場合です。

シェルのメッセージの前に、Claude Code のランタイムが panic(main thread): Bus error at address と oh no: Bun has crashed. This indicates a bug in Bun, not your code. を含むクラッシュレポートを出すことがあります。実行ファイルが読めなくなったのが原因のときは、クラッシュの原因は読めなくなったファイルで、Bun のバグではありません。レポートを出すコードも読めなくて、レポートが出ないこともあります。

続けるには、新しいセッションを始めます。Claude Code をネットワークストレージに入れているなら、アップグレードで動作中のセッションが必要とするバイナリが消えないよう、上の「ネットワークストレージに入れる」に従います。

macOS の dyld: cannot load#

インストール中の dyld: Symbol not found・dyld: cannot load・Abort trap: 6 は、バイナリが macOS のバージョンやハードウェアに合わない状態です。libicucore を指す Symbol not found(例:dyld: Symbol not found: _ubrk_clone)や、load command 0x80000034 is unknown は、macOS がバイナリの対応より古いという意味です。

  1. macOS のバージョンを確認します(Claude Code は macOS 13.0 以上)
  2. 古ければ macOS を更新します。Homebrew などの別の方法も同じバイナリなので、解決しません

WSL1 の Exec format error#

WSL で cannot execute binary file: Exec format error が出るのは、WSL1 でのネイティブバイナリの既知の不具合(issue #38788)です。バイナリのプログラムヘッダーの変更を、WSL1 のローダーが扱えません。いちばん確実なのは、PowerShell で WSL2 に変換することです。

powershell
wsl --set-version <DistroName> 2

WSL1 のままなら、動的リンカー経由で起動する関数を WSL 内の ~/.bashrc に足し(ホームディレクトリが違えばパスを直す)、source ~/.bashrc で読み込みます。

bash
claude() {
  /lib64/ld-linux-x86-64.so.2 "$(readlink -f "$HOME/.local/bin/claude")" "$@"
}

WSL の npm インストールの問題#

WSL 内で npm install -g した場合の話です(ネイティブのインストーラなら対象外)。

  • プラットフォームの不一致:Windows の npm を拾っている可能性があります。npm config set os linux を実行してから、npm install -g @anthropic-ai/claude-code --force を実行します(sudo は使わない)
  • exec: node: not found:WSL が Windows の Node.js を使っています。which npm と which node で、/mnt/c/ から始まれば Windows のバイナリ、/usr/ なら Linux です。Linux のパッケージマネージャーか nvm で Node を入れます
  • nvm のバージョンの競合:WSL と Windows の両方に nvm があると、WSL の PATH に Windows の nvm が先に来ることがあります。多くは nvm が読み込まれていないのが原因なので、~/.bashrc か ~/.zshrc に nvm のローダーを足します。それでも Windows のパスが優先されるなら、Linux 側の Node のパスを先頭に足します
bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
export PATH="$HOME/.nvm/versions/node/$(node -v)/bin:$PATH"

注意

appendWindowsPath = false で Windows の PATH の取り込みを無効にしないでください。WSL から Windows の実行ファイルを呼べなくなります。Windows で Node.js を使っているなら、Windows の Node.js もアンインストールしないでください。

インストール中の権限エラー#

ネイティブのインストーラが権限エラーで失敗するときは、対象のディレクトリが書き込み不可の可能性があります(上の「ディレクトリの権限」)。以前 npm で入れて npm 特有の権限エラーが出ているなら、ネイティブのインストーラに切り替えます。

npm のあとでネイティブバイナリが見つからない#

npm パッケージは、ネイティブバイナリをプラットフォームごとの optional dependency として取得し、postinstall が claude コマンドの位置へコピーします。どちらかが飛ばされると、次のエラーになります。

text
Error: claude native binary not installed.
Either postinstall did not run (--ignore-scripts, some pnpm configs)
or the platform-native optional dependency was not downloaded
(--omit=optional).
Run the postinstall manually (adjust path for local vs global install):
  node node_modules/@anthropic-ai/claude-code/install.cjs
Or reinstall without --ignore-scripts / --omit=optional.

Windows では bin/claude.exe が同じシェルスクリプトの代用品で、実行ファイルではないため、PowerShell と CMD はこのメッセージの代わりにファイルを実行できないと報告します。

  • optional dependency が無効:npm の --omit=optional、pnpm の --no-optional、yarn の --ignore-optional を外し、.npmrc に optional=false が無いか確認して、再インストールします。ネイティブバイナリは optional dependency でしか届かず、JavaScript の代替はありません
  • インストールスクリプトが無効:--ignore-scripts や一部の pnpm の構成が postinstall を飛ばします。node node_modules/@anthropic-ai/claude-code/install.cjs を実行するか、フラグを外して再インストールします
  • 非対応のプラットフォーム:バイナリがあるのは darwin-arm64・darwin-x64・linux-x64・linux-arm64・linux-x64-musl・linux-arm64-musl・win32-x64・win32-arm64 です。FreeBSD では、インストーラが非対応と報告します
  • 社内の npm ミラーにプラットフォームのパッケージが無い:メタパッケージのほか、@anthropic-ai/claude-code-* の8つのプラットフォームのパッケージもミラーします

npm の ENOTEMPTY#

既存のインストールの上から npm install -g @anthropic-ai/claude-code すると、古いパッケージのディレクトリを移すところで npm error code ENOTEMPTY(syscall rename、errno -39、directory not empty, rename)が出ることがあります。npm error path の行にあるディレクトリと、その隣に残った .claude-code-* のディレクトリを消します。

bash
rm -rf "$(npm root -g)/@anthropic-ai/claude-code"
rm -rf "$(npm root -g)/@anthropic-ai/.claude-code-"*
npm install -g @anthropic-ai/claude-code

npm error path が npm root -g の下になければ、そのパスを使います。Zsh で no matches found と出たら、消す対象が無かったという意味です。Windows では Remove-Item -Recurse -Force "$(npm root -g)/@anthropic-ai/claude-code", "$(npm root -g)/@anthropic-ai/.claude-code-*" を使います。

ログインの問題と対処#

ログインをやり直す#

原因がはっきりしないログインの失敗は、きれいに認証し直すと多くが解決します。

  1. /logout で完全にサインアウトする
  2. Claude Code を閉じる
  3. claude で再起動して、認証をやり直す

ブラウザが自動で開かないときは、c で OAuth の URL をコピーしてブラウザに貼ります。幅の狭い端末や SSH で URL が折り返されてクリックできないときも使えます。

OAuth error: Invalid code#

OAuth error: Invalid code. Please make sure the full code was copied は、ログインコードが期限切れか、コピーで途切れたときに出ます。

  • Enter で再試行し、ブラウザが開いたらすぐログインを済ませます
  • ブラウザが開かないときは c で URL 全体をコピーします
  • リモート・SSH のセッションでは、ブラウザが別のマシンで開くことがあります。端末に出た URL をコピーして、手元のブラウザで開きます

ログイン後の 403 Forbidden#

API Error: 403 Request not allowed が出るときの確認先です。

  • Claude Pro・Max:claude.ai/settings でサブスクリプションが有効か
  • Anthropic Console:アカウントに「Claude Code」か「Developer」のロールがあるか(管理者が Console の Settings → Members で割り当てる)
  • プロキシの内側:社内プロキシが API リクエストを妨げることがある(ネットワークと LLM ゲートウェイ)

Claude Code access has not been granted for this account#

Claude Code からログインしたあと、サインインページが Authorization failed と Claude Code access has not been granted for this account. Contact your administrator. を表示するのは、Claude Enterprise の組織があなたのロールを Custom にしていて、グループに割り当てられたどのカスタムロールにも Claude Code が許可されていない状態です。

  1. 組織の Owner に、Claude Code を許可するカスタムロールをグループへ割り当てるか、ロールを Custom から User などの標準ロールへ変えてもらう(Owner は組織のロール設定で管理する)
  2. 変更されたら、claude を実行してログインし直す

This organization has been disabled#

有効なサブスクリプションがあるのに API Error: 400 ... "This organization has been disabled" が出るのは、ANTHROPIC_API_KEY がサブスクリプションを上書きしています。前の職場やプロジェクトの古い API キーが、シェルのプロファイルに残っている場合によくあります。承認済みなら、サブスクリプションの OAuth の代わりにそのキーが使われます。-p では、キーがあれば常に使われます。

bash
unset ANTHROPIC_API_KEY
claude
  • PowerShell では Remove-Item Env:ANTHROPIC_API_KEY です
  • 恒久的に直すには、~/.zshrc・~/.bashrc・~/.profile の export ANTHROPIC_API_KEY=... の行を消します。Windows では、PowerShell のプロファイル($PROFILE)とユーザーの環境変数を確認します
  • 有効な認証方法は、Claude Code の中で /status を実行して確かめます

WSL2・SSH・コンテナで OAuth ログインが失敗する#

ブラウザが別のホストで開き、リダイレクトが Claude Code のローカルのコールバックサーバーに届かないため、ログイン後にブラウザがコードを表示します。そのコードを Paste code here if prompted に貼ります。

  • WSL2 でブラウザがまったく開かないときは、BROWSER 環境変数に Windows のブラウザのパスを設定します(例:export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe")
  • 対話式のログインで c を押して OAuth の URL をコピーするか、claude auth login が表示する URL を、手元のマシンのブラウザで開きます
  • 対話式のプロンプトに貼っても反応しないときは、端末の貼り付けが入力欄に届いていません。端末の別の貼り付けのショートカット(Windows Terminal では右クリックや Shift+Insert が多い)を試すか、標準入力から貼ったコードを読む claude auth login を使います。ネイティブ Windows など、対話式のプロンプトへの貼り付けが失敗する端末でも同じです

ログインが切れた・トークンの期限切れ#

セッションのあとで再ログインを求められたら、OAuth トークンの期限切れの可能性があります。/login で認証し直します。頻発するなら、システムの時計が正確か確認します(トークンの検証は正しいタイムスタンプに依存するため)。

  • 同じマシンの並列セッションは、保存されたログインを共有し、更新を調整して、同時に更新するプロセスが1つだけになるようにしています。1つのセッションでサインインし直したあとにほかのセッションがどうなるかは、エラー一覧の「Not logged in」を見てください。v2.1.211 より前は、スリープから復帰したときに2つのセッションが同じトークンで更新して、保存されたログインが失効し、開いている全セッションが同時に再ログインを求められることがありました
  • macOS では、ログインの Keychain に認証情報を保存します。Keychain が書き込みを拒否したとき(SSH セッションでロックされている、パスワードがアカウントのパスワードとずれているなど)は、平文の ~/.claude/.credentials.json に保存します。その間、API キーを作る Console のログインは、Keychain が再び書き込めるようになるまで失敗します

Keychain を書き込める状態に戻して、ログインを暗号化された Keychain に戻す手順です。

  1. claude doctor を実行します。Keychain が書き込みを拒否していると、macOS Keychain is not writable で始まる警告と対処案が出ます。警告がなければ Keychain は書き込めるので、最後の手順へ進みます
  2. security unlock-keychain ~/Library/Keychains/login.keychain-db を実行し、Keychain のパスワードを入れて、もう一度 claude doctor を実行します
  3. ロック解除で直らなければ、Keychain Access で login キーチェーンを選び、「Edit > Change Password for Keychain "login"」でアカウントのパスワードに合わせて再同期します。そのあと claude doctor で警告が消えたことを確認します
  4. Keychain が書き込めるようになれば、次に認証情報を書くときに戻ります。すぐ戻すには /logout のあとに /login を実行します。ログアウトすると、平文のファイルの中身・保存された MCP サーバーのログイン・プラグインの機密値を含む、保存済みのすべての認証情報が消えるので、MCP サーバーの再認可とプラグインの秘密の再入力が必要です

Bedrock・Agent Platform・Foundry の認証情報が読み込まれない#

クラウドプロバイダーを設定していて、Amazon Bedrock で Could not load credentials from any providers、Google Cloud の Agent Platform で Could not load the default credentials、Microsoft Foundry で ChainedTokenCredential authentication failed が出るときは、プロバイダーの CLI が現在のシェルで認証されていない可能性が高いです。

bash
# Amazon Bedrock:AWS の認証情報が有効か
aws sts get-caller-identity

# Google Cloud の Agent Platform:ANTHROPIC_VERTEX_PROJECT_ID と CLOUD_ML_REGION を設定済みか確認してから
gcloud auth application-default login

# Microsoft Foundry:ANTHROPIC_FOUNDRY_API_KEY を設定するか、Azure CLI でサインイン
az login

ターミナルでは動くのに VS Code や JetBrains の拡張で動かないときは、IDE のプロセスがシェルの環境を引き継いでいない可能性があります。IDE 自身の設定にプロバイダーの環境変数を設定するか、変数を export 済みのターミナルから IDE を起動します。詳しくは Bedrock・Vertex AI・Foundry を見てください。

それでも解決しないとき#

  1. Claude Code の GitHub リポジトリで既知の issue を探すか、OS・実行したインストールコマンド・エラーの全文を添えて新しく起票する
  2. claude --version は動くのにほかが変なら、claude doctor で自動診断の報告を取る
  3. セッションを始められるなら、Claude Code の中で /feedback で報告する
  4. ログインのループ・サブスクリプションが認識されない・組織が無効化されているなど、インストールでなくアカウントの問題なら、Anthropic のサポートへ連絡する(claude.ai にサインインし、左下のイニシャルから「Get help」を選ぶ。Console のユーザーは platform.claude.com から)

公式ドキュメント(英語)

2026年10月5日時点の内容をもとに、日本語でまとめています。

ページの一覧