インストールとログイン
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 |
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つのチャンネルがあります。
# 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
# 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
# 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#
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で無効にできます
{
"env": {
"CLAUDE_CODE_GIT_BASH_PATH": "C:\\Program Files\\Git\\bin\\bash.exe"
}
}
Alpine などの musl 系ディストリビューションでは、インストールに bash と curl、実行時に libgcc・libstdc++・ripgrep が要ります。入れてから USE_BUILTIN_RIPGREP を 0 にします。
apk add bash curl libgcc libstdc++ ripgrep
{
"env": {
"USE_BUILTIN_RIPGREP": "0"
}
}
ripgrep が見つからないときは、/etc/apk/repositories に community リポジトリを足して apk update を実行します。
動作を確認する#
claude --version
claude doctor
claude doctor は、セッションを始めずに、インストールの状態・設定ファイルの検証エラー・警告と対処案を表示します(読み取り専用)。
ログインする#
- プロジェクトで
claudeを起動します - ブラウザが開くので、アカウントでログインします。開かないときは c でログイン URL をコピーして、ブラウザに貼ります
- ログイン完了のあと、ターミナルに
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 キーが別になります。
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 が「どのアカウントか」を決めるのに対し、こちらは「どのサービスか」を決めます。
{
"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 用の長期トークンを作る#
claude setup-token
/login と同じブラウザの認可を経て、1年有効の OAuth トークンが端末に表示されます。どこにも保存されないので、控えて、認証したい環境に CLAUDE_CODE_OAUTH_TOKEN として設定します。
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週間前の版を使い、大きな不具合のあるリリースは飛ばす |
{
"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 チャンネルに移ります。
自動更新を止める#
{
"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 鍵で署名されています。
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/ に書き込むため、残っていればディレクトリが作り直されます。完全に消すには、先にそれらをアンインストールします。
# ユーザーの設定と状態
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 から取得します。
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 を設定します。
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 に置きます。
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 に足す |
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
Windows の PowerShell では、ユーザーの PATH に足して、ターミナルを再起動します。
$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 はありません。ターミナルから使うにはスタンドアロンのインストールを実行します。
競合するインストール#
複数のインストールがあると、版の食い違いや予期しない動作が起きます。
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 を設定していると、グローバルの設定ファイルはホームディレクトリではなくそのディレクトリの下に置かれます。
主な場所が書き込めるかは、次のコマンドで確かめます。
test -w ~/.local/bin && echo "writable" || echo "not writable"
test -w ~/.claude && echo "writable" || echo "not writable"
書き込めないときは、ディレクトリを作り、所有者を自分にします。
sudo mkdir -p ~/.local/bin
sudo chown -R $(whoami) ~/.local
バイナリが動くか#
claude --version は出るのに起動で落ちる・固まるときは、次を試します。
ls -la "$(command -v claude)"
ldd "$(command -v claude)" | grep "not found"
claude --version
Linux では ldd で足りない共有ライブラリを確認します。Windows では Get-Command claude | Select-Object Source で場所を確認します。
インストールの問題と対処#
インストールスクリプトが HTML を返す#
次のような出力になります。
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 の索引が古いときに出ます。
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 のハンドシェイクの失敗です。
- システムの CA 証明書を更新します。Ubuntu・Debian では
sudo apt-get update && sudo apt-get install ca-certificates。macOS の curl は Keychain の信頼ストアを使うので、macOS を更新すれば更新されます - Windows では、インストーラの前に PowerShell で TLS 1.2 を有効にします
- 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 リクエストにも信頼させます - Windows で
CRYPT_E_NO_REVOCATION_CHECK (0x80092012)やCRYPT_E_REVOCATION_OFFLINE (0x80092013)が出るのは、サーバーには届いたが証明書の失効確認がネットワークで遮断されている状態です。自分で実行するcurlに--ssl-revoke-best-effortを付けるか、PowerShell のインストーラやwingetを使います(スクリプト自身のダウンロードは自動で再試行されます)
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
irm https://claude.ai/install.ps1 | iex
export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem
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)はスクリプトファイルではないので影響しません。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserを実行して、再試行する.cmdのランチャー(npm.cmd・claude.cmd)を使う- 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 ウィンドウを閉じ、スキャンが終わるのを待ってから、ダウンロードのフォルダーを消して再実行します。
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. と数字のタイムスタンプが続くファイルです。
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 以上)。
- スワップを足します:
sudo fallocate -l 2G /swapfile、sudo chmod 600 /swapfile、sudo mkswap /swapfile、sudo swapon /swapfile。そのあとインストールを再実行します - ほかのプロセスを閉じてメモリを空けます
- 可能なら大きなインスタンスを使います
Docker でインストールが固まる#
root で / からインストールすると固まることがあります。
- インストールの前に作業ディレクトリを設定します(
/から実行すると、インストーラがファイルシステム全体を走査して大量にメモリを使うため) - Docker Desktop では、Settings > Resources でメモリの上限を上げます
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)を調べます。そのパスのどれかがディレクトリだと、古い版では固まります。
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 と誤検出されたときに起きます。
ldd --version 2>&1 | head -1で、GNU libcやGLIBCなら glibc、muslなら musl と分かります- glibc なのに musl 版が入ったなら、削除して再インストールします。
https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.jsonから正しいバイナリを手動で取ることもできます。ldd --versionとls /lib/libc.musl*の出力を添えて GitHub の issue に報告します - 実際に 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 がバイナリの対応より古いという意味です。
- macOS のバージョンを確認します(Claude Code は macOS 13.0 以上)
- 古ければ macOS を更新します。Homebrew などの別の方法も同じバイナリなので、解決しません
WSL1 の Exec format error#
WSL で cannot execute binary file: Exec format error が出るのは、WSL1 でのネイティブバイナリの既知の不具合(issue #38788)です。バイナリのプログラムヘッダーの変更を、WSL1 のローダーが扱えません。いちばん確実なのは、PowerShell で WSL2 に変換することです。
wsl --set-version <DistroName> 2
WSL1 のままなら、動的リンカー経由で起動する関数を WSL 内の ~/.bashrc に足し(ホームディレクトリが違えばパスを直す)、source ~/.bashrc で読み込みます。
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 のパスを先頭に足します
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 コマンドの位置へコピーします。どちらかが飛ばされると、次のエラーになります。
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-* のディレクトリを消します。
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-*" を使います。
ログインの問題と対処#
ログインをやり直す#
原因がはっきりしないログインの失敗は、きれいに認証し直すと多くが解決します。
/logoutで完全にサインアウトする- Claude Code を閉じる
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 が許可されていない状態です。
- 組織の Owner に、Claude Code を許可するカスタムロールをグループへ割り当てるか、ロールを Custom から User などの標準ロールへ変えてもらう(Owner は組織のロール設定で管理する)
- 変更されたら、
claudeを実行してログインし直す
This organization has been disabled#
有効なサブスクリプションがあるのに API Error: 400 ... "This organization has been disabled" が出るのは、ANTHROPIC_API_KEY がサブスクリプションを上書きしています。前の職場やプロジェクトの古い API キーが、シェルのプロファイルに残っている場合によくあります。承認済みなら、サブスクリプションの OAuth の代わりにそのキーが使われます。-p では、キーがあれば常に使われます。
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 に戻す手順です。
claude doctorを実行します。Keychain が書き込みを拒否していると、macOS Keychain is not writableで始まる警告と対処案が出ます。警告がなければ Keychain は書き込めるので、最後の手順へ進みますsecurity unlock-keychain ~/Library/Keychains/login.keychain-dbを実行し、Keychain のパスワードを入れて、もう一度claude doctorを実行します- ロック解除で直らなければ、Keychain Access で
loginキーチェーンを選び、「Edit > Change Password for Keychain "login"」でアカウントのパスワードに合わせて再同期します。そのあとclaude doctorで警告が消えたことを確認します - 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 が現在のシェルで認証されていない可能性が高いです。
# 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 を見てください。
それでも解決しないとき#
- Claude Code の GitHub リポジトリで既知の issue を探すか、OS・実行したインストールコマンド・エラーの全文を添えて新しく起票する
claude --versionは動くのにほかが変なら、claude doctorで自動診断の報告を取る- セッションを始められるなら、Claude Code の中で
/feedbackで報告する - ログインのループ・サブスクリプションが認識されない・組織が無効化されているなど、インストールでなくアカウントの問題なら、Anthropic のサポートへ連絡する(claude.ai にサインインし、左下のイニシャルから「Get help」を選ぶ。Console のユーザーは platform.claude.com から)
公式ドキュメント(英語)
2026年10月5日時点の内容をもとに、日本語でまとめています。