Claude Media
Claude Codeでmarketplace addが失敗する原因と対処法

Claude Codeでmarketplace addが失敗する原因と対処法

anthropics/skillsのmarketplace add失敗について、owner/repo形式でSSHが失敗してもHTTPSに切り替わる仕組みと、エラー文言別の切り分け、回避策をまとめます。

claude plugin marketplace add anthropics/skillsがError: Failed to clone marketplace repositoryで失敗する報告があります。現行のClaude Codeでは、owner/repo形式のaddはSSHのクローンに失敗してもHTTPSに切り替わります。公開リポジトリのanthropics/skillsはHTTPSなら認証なしで取れるため、SSHの失敗だけがaddの失敗原因になることは考えにくく、疑う先はリポジトリ名・認証情報・タイムアウトです。

Issue当時(2.0.21)の経路の選び方は分かっていません。確実に回避したいときは、CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1を設定するか、フルのHTTPS URLでaddし直します。

anthropics/skillsのaddでclone失敗が起きる

anthropics/skillsは、ドキュメント作成系スキル(xlsx / docx / pptx / pdf)とサンプルスキル集を配るAnthropic公式のプラグインマーケットプレイスです。リポジトリのREADMEでも、Claude Codeへの登録方法として/plugin marketplace add anthropics/skillsが案内されています。

この手順どおりに実行すると失敗する、という報告が2025年10月にGitHub Issueへ上がりました。報告者の環境はClaude Code 2.0.21、Linux 5.15、Git 2.25.1です。コマンドを叩くとgit cloneの途中でError: Failed to clone marketplace repository: Cloning into...が返り、以降マーケットプレイスは登録されません。

報告者は、同じ場所への手動のgit cloneは成功しており、ネットワーク自体は疎通していると書いています。報告には2件のコメントが付きました。Mac(M1)のClaude Code 2.0.22でも同じ症状で、手動cloneの回避策が効いたという追記と、「git cloneの権限エラーのようだ」という指摘です。

Issueは2025年10月21日のコメントを最後に、オープンのまま止まっています。Anthropic側の恒久的な修正コミットは付いていません。

症状から原因を切り分ける

Failed to clone marketplace repositoryという文言は、原因が1つとは限りません。トラブルシューティングのページは、この文言の後ろに続く行ごとに対処を分けています。次の順に確かめると、遠回りが減ります。

手順

エラー文言を見たときの切り分け順

  1. 1

    リポジトリ名と存在を確かめる

    綴りの誤り、存在しないリポジトリ、見えないプライベートリポジトリも同じ文言で終わります。ブラウザーで開くか、git ls-remote <url>で確かめます。

  2. 2

    認証情報が非対話で通るかを確かめる

    Claude Codeはgitを対話プロンプトなしで動かします。パスワードや鍵のパスフレーズを聞かれる状況では、terminal prompts disabledなどが原文に出ます。

  3. 3

    経路を固定して再実行する

    公開リポジトリなら、フルのHTTPS URLでaddします。判定を省くならCLAUDE_CODE_PLUGIN_PREFER_HTTPS=1を設定します。

  4. 4

    タイムアウトの文言なら待ち時間を延ばす

    Git clone timed out after 120sと出る場合は、CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MSをミリ秒で指定します。

文言ごとの意味(公式のトラブルシューティングより)

Failed to clone marketplace repository:の後ろに続く行で、疑う先が変わります。

原文の一部起きていること対処
SSH authentication failed / HTTPS authentication failed起きていること綴りの誤り・存在しない・見えないリポジトリの場合もある。そうでなければ認証情報の問題対処git ls-remote <url>が通るかを確認
SSH host key is not in your known_hosts file起きていることknown_hostsに無いホストへSSHで接続した。ホスト鍵を自動では受け入れない対処端末でssh -T git@github.comを1度実行。公開リポジトリならhttps URLでadd
SSH host key has changed起きていること記録済みのホスト鍵と違う対処ssh-keygen -R <host>の案内に従う
Command 'git' not found or is in an unsafe location起きていることWindowsでgitが見つからない、またはカレントディレクトリにだけある対処Git for Windowsを入れてPATHに通す
Git clone timed out after 120s起きていること大きなリポジトリか低速回線対処CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MSを延長

Failed to cloneではなく、入力した書式を拒否されるエラーもあります。Invalid marketplace source format. Try: owner/repo, https://..., or ./pathは、claude-plugins-officialのような素の名前や素のホスト名で出ます。'<source>' is not a valid GitHub owner/repo shorthandは、github.com/owner/repoのようにホスト名や余分なパスを足したときです。owner/repoの略記はGitHub専用で、他のホストにはフルのクローンURLを渡します。

owner/repo形式ではSSHが失敗してもHTTPSに切り替わる

公式ドキュメントによると、GitHubのowner/repo略記でaddすると、SSH鍵がgithub.com向けに設定されていそうな場合はSSHでクローンします。SSHのクローンに失敗した場合は、HTTPSでクローンし直します。CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1を設定すると、SSHを試さずに最初からHTTPSでクローンします。

Claude Codeはパスフレーズ入力などの対話的なプロンプトを出せません。トラブルシューティングには、SSHならssh -T git@<host>がプロンプトなしで通り、ホストがknown_hostsに入っている必要がある、と書かれています。この前提が欠けた環境は、SSH側で失敗します。ただしaddの失敗原因にはなりにくく、HTTPSへの切り替わりに回る条件です。

Issueの報告者が手動で成功させたgit clone https://github.com/anthropics/skills.gitは、URLを明示したHTTPSクローンです。SSHを経由しないため、SSH鍵の有無に関係なく通ります。報告当時のバージョン(2.0.21)がSSHとHTTPSをどう選んでいたかは、Issueからは分かりません。手動cloneとaddの食い違いは、経路の違いで説明できる可能性がある、という程度に読むのが安全です。

GitHubのSSHとHTTPSでは、匿名アクセスの扱いが違います。公開リポジトリでもSSH経由のクローンは、GitHubアカウントに紐づく鍵での認証を要求します。HTTPSでの公開リポジトリcloneは認証不要です。anthropics/skillsのような公開リポジトリは、SSHが使えない環境でもHTTPSで取れます。

なお、CLAUDE_CODE_PLUGIN_PREFER_HTTPSという環境変数自体は、報告があった2025年10月にはまだ存在していませんでした。Claude CodeのCHANGELOGによると、この環境変数はv2.1.141で追加されています。/plugin marketplace addとupdateが従うようになったのはv2.1.144からです。報告当時に使える回避策は、Issueにある手動cloneだけでした。

addが失敗したときの回避策

v2.1.144以降のClaude Codeなら、環境変数を1つ設定するだけでSSHの判定を省けます。

export CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1
claude plugin marketplace add anthropics/skills

バージョンを問わず使えるのは、owner/repo形式ではなくフルのHTTPS URLでaddする方法です。SSHの判定を通らないため、環境変数の対応バージョンに関係なく効きます。sourceの書式ごとの取得方法はmarketplace addの3フラグ解説にあります。

/plugin marketplace add https://github.com/anthropics/skills.git

すでに失敗した状態から復旧したい場合は、Issueにある手動cloneのワークアラウンドも有効です。報告者は、先に手動でcloneを済ませてからaddし直すと登録に成功したと書いています。

cd ~/.claude/plugins/marketplaces/
git clone https://github.com/anthropics/skills.git anthropics-skills
claude plugin marketplace add anthropics/skills

なぜ効くのか、内部の判定ロジックは公式ドキュメントに明記がありません。Issueの報告だけが根拠なので、効かない環境もありえます。

CLAUDE_CODE_PLUGIN_PREFER_HTTPSが対象にするのは/plugin marketplace addだけではありません。env-varsのページには、プラグインのinstallとupdate、およびmarketplaceのaddとupdateに適用されると書かれています。SSH鍵を持たないCIランナーやコンテナで使う想定です。

SSH接続そのものを切り分ける

SSHが通るかを確かめると、addがどちらの経路でクローンするかが分かります。ただしaddの失敗原因を探すなら、先にフルHTTPS URLで試すほうが早く済みます。

git ls-remote git@github.com:anthropics/skills.git

ここでPermission denied (publickey)のようなエラーが返った場合、GitHub向けのSSH鍵がその端末で使える状態になっていません。この結果は、addがSSHのクローンを試すかどうかの確認材料として読みます。

HTTPS側で認証エラーが出る場合は、gh auth loginのあとにgh auth setup-gitを実行する対処が案内されています。他のホストなら、個人用アクセストークンをgitのcredential helperに保存します。

addが成功したかを確認する

addが正常終了しても、登録の状態は別に確認できます。v2.1.287で、読み取りだけのコマンドを実機で確かめました。

claude plugin marketplace list --json

出力は次のようなJSON配列でした。公式マーケットプレイスだけが入った環境の例で、パスは~に置き換えています。

[
  {
    "name": "claude-plugins-official",
    "source": "github",
    "repo": "anthropics/claude-plugins-official",
    "installLocation": "~/.claude/plugins/marketplaces/claude-plugins-official"
  }
]

addした名前のエントリがあり、installLocationにローカルのパスが入っていれば、クローンとカタログ登録は完了しています。この時点ではプラグイン本体はまだ入っていません。目的のスキルを使うには、続けて/plugin install <name>@anthropic-agent-skillsのようにインストールします。

addが拒否されたときの実物の出力

存在しないローカルパスをaddすると、ネットワークに出る前に拒否されます。v2.1.287でこの出力を確かめました。

claude plugin marketplace add ./no-such-dir --scope local

出力は✘ Path does not exist: <絶対パスに解決された値>の1行で、終了コードは1でした。相対パスは、コマンドを実行したディレクトリを基準に解決されます。トラブルシューティングのページにも、同じ文言の項目があります。

claude plugin marketplace add --helpで確かめたオプションは次の4つです。

  • --scope <scope>: 登録先をuser(既定)・project・localから選ぶ
  • --sparse <paths...>: モノレポの一部のディレクトリだけをチェックアウトする
  • --json: 最終行に機械可読な結果を1行出力する
  • --claudeai: claude.aiがホストするマーケットプレイスを、一覧の名前かローカルの名前で追加する

--jsonを付ければ、スクリプトからaddの成否を終了コードと合わせて判定できます。

ほかに考えられる原因の早見表

クローンそのものの失敗ではない、よくある取り違えも並べます。

症状原因確認・対処
owner/repo形式のaddだけ失敗する原因SSHはHTTPSへ切り替わる確認・対処フルHTTPS URLでaddして切り分ける
プライベートリポジトリだけ失敗する原因git認証情報が未設定・未反映確認・対処gh auth setup-gitを実行し、git ls-remote <url>で単体確認
バックグラウンドの自動更新だけ失敗する原因自動更新はプロンプトを出せないため、入力を求めるcredential helperでは失敗する確認・対処CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1で既存チェックアウトを維持
addは通るがプラグインが見当たらない原因addはカタログ登録のみで、installは別コマンド確認・対処/plugin install <name>@<marketplace>を追加で実行

最後の行は失敗ではなく仕様です。/plugin marketplace addが行うのはカタログの登録だけで、個別プラグインの導入には/plugin installが別途必要になります。marketplaceとpluginの関係やコマンド全体はClaude Codeプラグイン完全ガイドにまとめています。

CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILUREは、再クローンを省いて既存のチェックアウトを使い続ける設定です。オフラインやエアギャップの環境で、再クローンが同じ理由で失敗する場面を想定しています。

関連する別のエラーとの違い

マーケットプレイス関連のエラーには、クローンの失敗以外に名前の衝突を理由に読み込みが止まるケースもあります。Marketplace "<name>" is registered from an untrusted sourceというエラーは、クローン自体は成功しているのに、マーケットプレイス名がAnthropic専用の予約語と重なっていることが原因です。症状も対処もまったく別物になるため、「untrusted source」エラーの対処を参照して見分けてください。

公式マーケットプレイス(anthropics/claude-plugins-official)は、対話型のターミナルセッションを初めて起動したときにClaude Codeが自動で追加します。管理ポリシーかCLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALLで止めている場合は追加されません。上の実機の出力も、この公式マーケットプレイスだけが入った環境でした。収録プラグインをカテゴリ別に確認したい場合はClaude Code公式マーケットプレイスのプラグイン一覧をカテゴリ別に見るが参考になります。

まとめ

SSHの失敗は、Failed to cloneの主因として疑う順位が低い項目です。先にリポジトリ名と認証情報を確かめ、経路を固定したいときはフルのHTTPS URLを使うと、原因を1つずつ外せます。環境変数を使う場合は、claude --versionでv2.1.144以降かどうかも先に見ておくと、設定したのに効かないという遠回りを避けられます。

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