ZedでClaude Agentを使う手順 — Zed Agentとの認証・課金の違い
ZedにClaude AgentをACP Registryから入れる手順と、Zed AgentのAnthropic APIキーが引き継がれない点、Terminal ThreadsでCLIを動かす方式との課金の違いを解説します。
ZedでClaudeを使う経路は3つあります。Zed AgentにAnthropic APIキーを設定する方法、ACP経由のExternal AgentとしてClaude Agentを入れる方法、Terminal ThreadsでClaude Code CLIをそのまま動かす方法です。認証も課金も別々で、Zed Agentに入れたAPIキーはClaude Agentには効きません。
Claude AgentはZedのExternal Agentとして動く
Claude Agentは、Agent Client Protocol(ACP)でZedにつながるExternal Agentです。Zedはスレッドの表示先(Agent PanelとThreads Sidebar)を提供します。実行環境・認証・モデル選択・ツール・ネイティブ設定は、多くの場合External Agent側が持ちます。
つまりClaude Agentのスレッドは、Zed組み込みのZed Agentとは別プロセスです。課金・法的条件・データの保持と扱いは、利用者とエージェント提供元の間の話です。ZedはExternal Agentに課金しません。
ACP RegistryからClaude Agentを入れる手順
導入はACP Registry経由が基本です。Zedのコマンドパレットで zed: acp registry を実行すると、レジストリが開きます。
設定画面から入る場合は、次の4手順です。
設定画面からClaude Agentを入れる
- 1
Agent Settingsを開く
コマンドパレットで
agent: open settingsを実行します。 - 2
External Agentsページへ移る
Agent Settingsの中にあるページです。
- 3
レジストリから追加する
Add Agentを押し、Install from Registryを選びます。 - 4
Claudeを選ぶ
一覧からClaudeを選んでインストールします。
インストール後、Claude AgentはAgent PanelとThreads Sidebarの新規スレッドメニューに並びます。メニューまたはエージェントセレクターから選べば、Claude Agentのスレッドが始まります。特定のエージェント用のキーバインドを作りたいときは、agent: new external agent thread アクションが使えます。
ACP Registryの公開データ(registry.json)では、このエージェントは id が claude-acp、name が Claude Agent の項目です。配布方式は npx で、起動するパッケージは @agentclientprotocol/claude-agent-acp、リポジトリは agentclientprotocol/claude-agent-acp にあります。authors にはAnthropic、Zed Industries、JetBrainsが並びます。
レジストリの一覧は絞り込まれたもので、網羅ではありません。Claudeのほか、Codex、OpenCode、Copilot、Cursor、Pi Coding Agentなどが「よく使われるExternal Agent」として挙がっています。最新の一覧はZed内のACP Registryで確認します。
Zed Agentに入れたAPIキーは引き継がれない
ここが最も混同しやすい点です。Zed Agentの設定にAnthropic APIキーを入れても、Claude Agentには自動で設定されません。Claude Agentは自前の認証と課金を持つためです。
Zed Agent側でAPIキーを使う手順は、Agent SettingsのAnthropic欄にキーを入れる形です。AnthropicアカウントにAPIクレジットがあることが前提で、Zedはローカルのプロセス環境変数 ANTHROPIC_API_KEY も読みます。この経路の請求はAnthropic APIの従量課金です。
Claude Agentの認証は、これとは独立して行います。Claude Agentのスレッドを開き、/login を実行します。選べるのはAPIキーでの認証か、対応している環境でのClaude Code認証です。どちらを選ぶかが、そのまま課金方法の選択になります。
リモートプロジェクトでは、さらに注意が要ります。External Agentは資格情報をローカル、リモート、または自前のサインインフローのどれかで読みます。Zedのキーチェーンに保存したLLMプロバイダーのAPIキーが、External Agentの資格情報と同じになるわけではありません。SSHや開発コンテナで使うときは、Claude Agent側でどこに資格情報を置くかを確かめておくと、認証エラーの切り分けが早くなります。
Claudeのログイン方法そのもの(claude.ai、APIキー、OAuthトークン)の違いは、Claude Codeログイン方法3種の使い分けで扱っています。
3つの経路を認証・課金で並べる
Zedの公式ドキュメントは、Claude関連の経路を次の3つに分けています。
Claudeにつながる3経路
Anthropic API(Zed Agent)
Zedの設定でAPIキーを入れます。請求はAnthropic APIの従量課金です。
Claude Agent(ACP)
External Agentのスレッドで動き、課金とアカウントはClaude/Anthropic側が管理します。
Claude Code CLI(Terminal Thread)
ターミナルでCLIを動かします。課金はClaudeサブスクリプション、またはClaude Code認証です。
Claude ProとMaxのサブスクリプションは、Anthropic APIクレジットとは別物です。ZedのドキュメントはClaudeのProとMaxについて「Zedに直接のLLMプロバイダー経路はない」と書き、サブスクリプションの上限に沿った挙動が欲しいときはClaude AgentかClaude Codeを使う、と案内しています。
Zed ProやZed Businessのサブスクリプションは、Zedがホストするモデルにだけ使えます。ここにClaude Agentは含まれません。
Terminal ThreadsでClaude Code CLIを動かす方式との選び分け
Terminal Threadsは、ACPを通さずに、CLIやTUIをそのままターミナルで動かすスレッドです。Threads Sidebarに並ぶ点はExternal Agentと同じですが、中身はネイティブのコマンドラインツールです。
Claude AgentとTerminal Threadの違い
Claude Agent(ACP)
Zedのエージェントスレッドとして表示され、履歴はThread Historyに入ります。認証と課金はClaude Agent側が持ち、Zed側のMCPサーバーは転送されることがあります。
Terminal Thread
ターミナルでClaude Code CLIが動き、認証と課金はCLI側が持ちます。閉じるとアーカイブされず、Thread Historyにも入りません。Zed Agentのプロファイル・権限・Skills・MCP設定は自動では効きません。
Terminal ThreadでClaude Codeを毎回起動するなら、agent.terminal_init_command が使えます。Terminal Threadのシェルが作られるたびに、指定したコマンドを自動で流す設定です。
{
"agent": {
"terminal_init_command": "claude"
}
}コマンドは、自分で打ったかのようにシェルへ送られます。実行後もターミナルは通常の対話シェルのままです。設定画面の「Terminal Thread Init Command」欄からも同じことができます。
Terminal Threadの中のCLIは、Claude Code自身のログインで課金先が決まります。v2.1.289の claude auth login --help には、--claudeai(Claudeサブスクリプション。既定)と --console(Anthropic Console。APIの従量課金)の2つが並びます。claude auth の下にあるのは login logout status の3つです。ZedはLLMプロバイダー設定のAPIキーをTerminal Threadへコピーしないので、CLI側でこの選択をすることになります。
Claude Codeの完了通知をZedで受け取りたいときは、Claude Codeのユーザー設定で preferredNotifChannel を "terminal_bell" にします。Claude Codeがデスクトップ通知を既定で送るのはGhostty、Kitty、iTerm2だけで、それ以外のターミナルではこの設定でベルを鳴らす形です。ZedはTerminal Threadがフォーカス外でベルを受けると、エージェントの完了時と同じ通知を出します。Claude Code内で /config を開き、Local Notifications から Terminal Bell を選んでも同じです。tmuxの中でClaude Codeを動かすと、ベルが外側のターミナルまで届かないことがあります。その場合は ~/.tmux.conf に set -g allow-passthrough on を足します。
{
"preferredNotifChannel": "terminal_bell"
}サブスクリプションで使いたいとき、どちらを選ぶか
現状、Claude Agent(ACP)でもサブスクリプションの上限で使えます。ZedのドキュメントはClaude Pro / Maxの対応先として、Claude AgentとClaude Codeの両方を挙げています。Claude Agentでは、スレッドで /login を実行してClaude Code認証を選ぶ形です(「対応している環境で」という条件つき)。Terminal ThreadでCLIを動かす場合は、CLI側のログインがそのまま課金先になります。別枠のAgent SDKクレジットは存在せず、サブスクリプションの上限も変わっていません。
分かれ目になるのは、Anthropicが予告した請求変更です。Zedのブログによると、ACP経由のClaude Code利用をサブスクリプションの上限から切り離し、プランごとの月次クレジット(Proは20ドル、Max 5xは100ドル、Max 20xは200ドル)で扱う計画でした。ただしブログ冒頭の注記のとおり、Anthropicはこの変更がまだ有効になっていないと購読者に伝えています。計画は改訂中で、有効にする前に事前告知があるとされています。
この変更が有効になった場合に限り、公式CLIをTerminal Threadの中で動かす方式が、サブスクリプションの上限に残る経路になります。ブログはCLIの利用分を、新クレジットではなくサブスクリプションの上限から引かれると説明しています。
判断の軸は次のとおりです。
- 従量のAPI課金で使うなら、Zed AgentにAPIキーを入れるか、Claude Agentの
/loginでAPIキーを選ぶ - サブスクリプションの上限で使うなら、今はClaude Agent(
/loginでClaude Code認証)もTerminal ThreadのCLIも選べる。請求変更が有効になったら、CLI方式に寄せる選択肢が出てくる - Agent Panelでの操作に寄せたいなら、Claude Agent
請求の扱いは変わる可能性があるので、実際の消費は自分のClaude側の使用量画面で確かめるのが確実です。「サブスクリプションが有効なのに使用量クレジットを求められる」ときの切り分けは、Usage credits requiredが出る原因と対処にあります。
CLAUDE.mdはClaude Agentが直接読む
Zedのドキュメントによると、CLAUDE.md のようなClaude固有のファイルは、Claude Agentが直接読むことがあります。つまりZedの「Instructions」機能にルールを重複して書かなくても、リポジトリの CLAUDE.md が効く構成にできます。
ここでZed側の設定との境界を押さえておきます。External Agentの設定の持ち主は次のように分かれます。
| 項目 | External Agentスレッドでの扱い |
|---|---|
| モデル・プロバイダー設定 | External Agentスレッドでの扱い多くはExternal Agentが持つ |
| 認証・APIキー・サブスクリプション | External Agentスレッドでの扱い多くはExternal Agentが持つ |
| Zed Agentのプロファイル | External Agentスレッドでの扱いエージェント側が明示しない限り効かない |
| Zed Skills | External Agentスレッドでの扱いZed Skillsとしては効かない |
| エージェント独自のスキル・指示 | External Agentスレッドでの扱いエージェント次第 |
| Zed側のMCPサーバー | External Agentスレッドでの扱いACP経由で転送されることがある |
| エージェント独自のMCP設定 | External Agentスレッドでの扱いエージェント側が読むこともある |
| ツール権限 | External Agentスレッドでの扱いZedのACP転送の権限が効くことがある。独自の権限はエージェント次第 |
Claude Agentに守らせたい規約は、CLAUDE.md に置きます。次はその一例です。
# プロジェクト規約
- テストは `pnpm test` で実行し、失敗したら修正してから報告する
- 型エラーは `pnpm typecheck` で確認する
- 公開APIの変更は必ずCHANGELOG.mdに追記するこのように、実行コマンドと完了条件を書いておく形です。Claude Code側の CLAUDE.md の読み込み順や置き場所は、Claude Code全体像から辿れます。
MCPを使うときは、ツールが見えないと感じたら両方を疑います。Zedで設定したMCPサーバーがACP経由で転送されているか、Claude Agent側のネイティブなMCP設定が読まれているか、の2か所です。
つまずいたときの確認先
Claude Agentのスレッドで想定と違う挙動が出たときは、Zedとエージェントのやり取りを直接見られます。コマンドパレットで dev: open acp logs を実行すると、ZedとExternal Agentの間のACPメッセージが開きます。不具合を報告するときも、このログを添えるよう案内されています。
過去のスレッドをZedに取り込むこともできます。Threads Sidebarを cmd-alt-j(WindowsとLinuxは ctrl-alt-j)で開き、Thread HistoryのImport Threadsから、設定済みのExternal Agentを選びます。作業ディレクトリのないセッションは飛ばされ、すでに履歴にあるスレッドは重複して入りません。取り込まれたスレッドはアーカイブ扱いで、開くと復元されて続きから作業できます。
まとめ
Zed AgentのAPIキーはClaude Agentに引き継がれないため、Claude Agentを入れたら最初のスレッドで /login を実行し、課金先を選び直します。サブスクリプションの上限で使いたい人は、Anthropicの請求変更の続報が出たときに、ACPとTerminal Threadのどちらが対象かをZedのブログで確かめておくと迷いません。
Terminal ThreadsでCLIを使う場合の認証は、CLI側の話になります。VS Codeでの使い方はClaude Code VS Code拡張機能の使い方、JetBrainsでの使い方はClaude Code JetBrainsプラグインの導入と設定で扱っています。