すべてのページ
このページの内容

Claude API 0.9.18 で追加

Claude API プロバイダーは、Claude のチャットを、Claude のサブスクリプションではなく Claude Console の API キーで実行します。エージェントは同じです。リレーのマシン上の Claude Code で、ツール、モード、質問カード、サブエージェント、軌道修正、バックグラウンドタスクも同じです。変わるのは請求先だけです。ターンは、キーが属する Console の組織に課金されます。

Claude API はサブスクリプションに取って代わるものではなく、サブスクリプションと並んで使うものです。キーでチャットを始めることも、サブスクリプションでチャットを始めることもでき、Claude のチャットをターンの合間に一方から他方へ、セッションを保ったまま移すこともできます。任意の月間上限を設定すると、このリレーの推定額が上限に達した時点で、キーでの支出が止まります。すべてのプロバイダーの一覧表はプロバイダーの概要にあります。

API キー #

Claude Console の API キーが必要です。platform.claude.com の API keys(API キー)で発行します。キーはワークスペースの中に作成してください。制限を参照してください。Settings → Providers → Claude API(設定 → プロバイダー → Claude API)を開きます。Claude の次にあるサブタブです。

コントロール 既定値 内容
Enable Claude API for New Chat and the billing switch(新しいチャットと課金の切り替えで Claude API を有効にする) キーを保存するとオン New Chat(新しいチャット)で Claude API を選べるようにし、Claude のチャットに課金の切り替えを表示します。キーを保存する前はチェックできません。切り替えるとすぐに適用されます。
キーの入力欄(Claude Console API key…) 空 自分のキーです。キーを保存すると、入力欄には Saved API key (enter to replace)(保存済みの API キー、入力すると置き換え)と表示されます。保存済みのキーをそのまま使うときは、空のままにします。
Default model(既定のモデル) キーで使える場合は Claude タブの既定のモデル、なければ最初の Sonnet 新しい Claude API チャットが最初に使うモデルです。モデルを参照してください。
Monthly cap in US dollars (optional)(米ドルでの月間上限、任意) 空:No cap(上限なし) 今月の推定額が上限に達すると、キーでの新しいターンを止めます。月間上限を参照してください。
Save Claude API settings(Claude API の設定を保存) 上の各欄を保存します。キーを初めて保存すると、Claude API もオンになります。
Refresh models(モデルを再読み込み) キーで使えるモデルを Anthropic にもう一度問い合わせます。
Remove saved key(保存したキーを削除) Remove the saved Claude API key? と確認した後、キー、キーのモデル一覧、Select Models(モデルを選択)での選択を削除し、Claude API をオフにします。
Claude tab(Claude タブ) Claude サブタブを開きます。両方で共有する設定はそこにあります。Claude と共有するものを参照してください。

入力欄の下の行に、現在の状態が表示されます。

状態 意味
No API key saved. Claude chats run on the relay host's Claude login. キーが保存されていません。
API key saved, Claude API is off. Switch it on to offer it in New Chat. キーは保存されていますが、スイッチがオフです。
API key saved. Claude API is on: pick it in New Chat, or switch a Claude chat to the API key. 準備ができています。
API key saved, but Anthropic refused it: … キーを保存したとき、またはモデルを再読み込みしたときに、Anthropic がキーを受け付けませんでした。キーは保存されたままです。保存か Refresh models が成功するまで、この行が表示されます。

あとはいつもどおり会話を始めます。New Chat で Claude API を選びます。会話を始めるを参照してください。Claude API のチャットには金色の Claude API ラベルが付き、入力欄のロックの注記は 🔒 Session locked to Claude API models. になります。

受け付けるキー #

  • Console の API キー。sk-ant- で始まり、空白を含まない 8 文字以上 512 文字以下のキーです。
  • Claude のサインイン用トークンやセッショントークン、Admin キーは保存時に拒否され、貼り付けたものが何かを示すメッセージが表示されます。例:This is an Anthropic Admin API key (it manages an organisation and cannot run models), not an API key. 他のベンダーのキーには This does not look like a Claude API key. と表示されます。どのメッセージにもキーそのものは含まれません。
  • Anthropic がキーを受け付けるかどうかは、リレーがモデルを問い合わせたときにわかります(モデルを参照)。拒否されたキーも保存されたままで、状態の行に理由が表示されます。

キーの保存、変更、削除 #

  • 別のキーを保存すると、キーのモデル一覧がクリアされ、実行中の Claude API ワーカーが停止します。ターンの途中のワーカーも止まるので、キーはターンの合間に変更してください。次のメッセージで、新しいキーを使ってワーカーが起動します。
  • いずれかの Claude API チャットがメッセージを送信済みか、メッセージをキューに入れている間は、キーの削除は拒否されます:Cannot remove the Claude API key while N Claude API conversation(s) still exist. Switch Claude API off for new conversations instead. キーでまだワーカーが動いている間も拒否されます。
  • キーを削除するか Claude API をオフにすると、まだメッセージを送っていない Claude API チャットは Copilot に戻ります。キーで開始済みのチャットは課金の切り替えを保つので、サブスクリプションに移せます。Claude API がオフの間、そのチャットのキーでのターンは実行されません。

サブスクリプションとキーの間でチャットを切り替える #

Claude のチャットには、どちらの課金でも、ロックの注記の下に切り替えがあります:Subscription | API key(サブスクリプション | API キー)。これは、キーが保存されていて Claude API がオンの間に表示されます。キーで動いているチャットは、Claude API をオフにした後もキーのままなので、元に戻せます。

  • 次のターンから。 実行中のターンは、開始したときの課金のまま終わります。すでにキューに入っているメッセージは、新しい課金で実行されます。
  • セッションは保たれます。 リレーはターンの合間にチャットの Claude Code を再起動し、同じセッションを再開します。実行中のターン、未回答の質問、コンパクト化、バックグラウンドタスクの終了を待ち、切り替えにはどれを待っているかが表示されます。例:Moves to the API key after the running turn.
  • キーでの最初のターンは割高です。 プロンプトキャッシュがないためです。切り替えにもそう表示されます:The first turn on the API key has no prompt cache and costs more.
  • 切り替えのたびにトランスクリプトに記録されます。 例:💳 Billing: this chat runs on the Claude API key from the next turn. 該当する場合は (switched by an agent) や (switched at the usage limit) が付きます。
  • 一方を選べないときは、そのボタンがグレー表示になり、ツールチップに理由が表示されます。切り替えが拒否されるのは、Claude API にキーがないかオフのとき、今月の上限に達したとき(切り替えには This month's Claude API cap is reached: the chat stays on the subscription. と表示されます)、サブスクリプションに戻そうとして Claude がオフのとき(CLAUDE_NOT_CONFIGURED)、またはチャットのモデルが相手側のモデル一覧にないときです。
  • 表示が古いページ。 古い課金を表示したままのページから送ったメッセージは、新しい課金では送信されません。そのテキストは下書きに戻ります。

チャットを切り替えるものは、ほかにはありません。切り替えの方法は、切り替えのボタン、使用量の上限のバナー、エージェントの send の 3 つです。

  • 使用量の上限で。 サブスクリプションのチャットが Claude の使用量の上限で一時停止したとき、チャットを移せる場合は、バナーに Switch this chat to API key(このチャットを API キーに切り替え)が表示されます。押すと、一時停止したターンはすぐにキーで続行します。上限に達しているときは、バナーに No switch to the API key: this month's Claude API cap is reached. と表示されます。
  • エージェントから。 relay_tool の send は、Claude のセッションに対して provider(claude または claude-api)を受け取り、メッセージと一緒にセッションを切り替えます。このとき承認カードには Switches billing to API key と表示されます。

課金についてフォルダーごとの設定はありません。各チャットが自分の課金を持ち、New Chat で選び、切り替えで変更します。フォルダーが設定するもの、つまりコミットの帰属表示は、どちらの課金にも適用されます。

月間上限 #

Monthly cap in US dollars (optional) は、このリレーが暦月の間にキーで使う額を、リレー自身の推定に基づいて制限します。0 より大きく 1,000,000 以下の額を、小数点以下 2 桁まで指定できます。上限なしにするには空のままにします。

今月の推定額が上限に達すると、次のようになります。

  • キーでの新しいターンは実行されません。 チャットには Error code: relay.claude-api-cap-reached. で終わるメモと、Claude API settings(Claude API の設定)ボタン(上限の欄を表示してタブを開きます)、Switch to subscription(サブスクリプションに切り替え)ボタンが表示されます。
  • キーへの切り替えは拒否されます。 切り替えのボタンからも、使用量の上限のバナーからも、エージェントからも同じです。
  • New Chat は Claude API チャットを拒否します。 ダイアログは開いたままで、理由、Claude API settings、Start on subscription(サブスクリプションで開始)が表示されます。Start on subscription は同じチャットを Claude で開始します(Claude がオンの間に表示されます)。スマートフォンでは、ダイアログがそこまでスクロールします。
  • エージェントも拒否されます。 キーで動くセッションへのエージェントの send と、Claude API チャットを作る create_session は拒否されます。リレーは 409 CLAUDE_API_CAP_REACHED を返し、何もキューに入らず、何も作成されません。
  • Claude Code が自分で開始するターン(キーでバックグラウンドタスクが報告してきたとき)にはメモが表示され、チャットのバックグラウンドタスクは停止します。報告のたびに同じようなターンが始まってしまうためです。そのターンの最初のリクエストは、すでに課金されている場合があります。このメモは、上限が解除されるか、Claude API の設定が保存されるか、そのチャットのターンが再びキーで実行されるまで、チャットごとに 1 回だけ表示されます。

すでに実行中のターンは最後まで実行されます。ターンの費用は終了時に計上されるので、実行中だったターンによって月の支出が上限を超えることがあります。上限が数えるのは、推定のうち料金がわかっている部分だけです(制限を参照)。上限を設定していて支出を読み取れない間は、上限に達したものとして扱われます。月はリレーの月です。リレーのタイムゾーンで 1 日の午前 0 時にリセットされます。Console で設定した支出の上限も、これとは別に適用されます。

Claude API にキーがないとき(relay.claude-api-not-configured)やオフのときも、同じメモとボタンが表示され、ターンは実行されません。このときも New Chat は CLAUDE_API_NOT_CONFIGURED で Claude API チャットを拒否します。

使用状況カード #

📊 Check Usage(使用状況の確認)には、キーが保存されている間、Claude API がオフでも Claude API タブがあるので、その月の支出を確認し続けられます。このリレーのキーでのターンに、どれだけ費用がかかったかの推定を表示します。

部分 内容
Monthly cap(月間上限)のバー 上限を設定したときだけ表示されます。今月の推定額を上限と比べて estimated(推定)として示し、いつリセットされるかも表示します。
Estimated today(今日の推定)、Estimated this month(今月の推定) その日と、その月のこれまでの支出です。
Estimated spend by model, this month(モデル別の推定支出、今月) モデルごとの行で、今日かかった費用も表示します。
Tokens by model, this month(モデル別のトークン、今月) モデルごとのキャッシュ読み取り、その他の入力(プロンプトキャッシュへの書き込みを含む)、出力と、入力のうちどれだけがキャッシュから来たかです。
推定についての注記 数値の出どころです。

バーは、ほかのすべてのバーと同じく、上限の 50% と 75% で色が変わり、90% で赤になります。カードの読み方を参照してください。カードには Console billing(Console の課金)と Console limits(Console の上限)へのリンクがあります。

数値の出どころ。 このリレーで保存済みのキーを使ったターンについて、Claude Code 自身が料金表から出した推定です。そのため、サブエージェント、コンパクト化、Web 検索も含まれます。OAR は独自の料金表を持ちません。日と月は、リレーの時計とタイムゾーンに従います。Max プランや Team プランに付く API クレジットから支払われたターンも数えられます。OAR からはそのクレジットも Console の残高も見えません。実際の数値と残高は、Console の課金ページにあります。

料金のないトークン。 Claude Code が料金を持たないモデルでは、金額の代わりに no price known と表示され、$0 と表示されることはありません。そうしたトークンを除いた合計には (estimate incomplete) と表示されます。

エージェントは、relay_tool の usage アクションで同じカードを読めます。

モデル #

リレーは、キーを保存したとき、Claude API を再びオンにしたとき、そしてタブの Refresh models か 🤗 Select Models の Refresh(再読み込み)を押したときに、キーで使えるモデルを Anthropic に問い合わせます(GET /v1/models)。リクエストは 10 秒でタイムアウトします。

  • 最初の応答があるまで、タブは Claude タブのモデルを表示し、Not listed by Anthropic yet: these are the Claude tab's models until the key's list is read. という注記が付きます。
  • リクエストが失敗したときは、リレーが持っていた一覧がそのまま残ります。Refresh models には Claude API model discovery failed. The stored models were kept: … と表示されます。
  • 長いコンテキスト。 ウィンドウが 1M トークン以上のモデル、または Claude タブがその 1M 版を一覧に載せているモデルには、[1m] 版も追加されます。Claude と同じく、Context window(コンテキストウィンドウ)のドロップダウンで選べます。
  • 表示するモデル。 🤗 Select Models → Claude API(モデルを選択 → Claude API)で、入力欄に表示するモデルを選びます。Default model は常に表示されます。
  • メッセージごと。 Claude と同じく、チャットはターンの合間にモデルを変更できます。

Reasoning effort #

effort の選択欄は、Claude と同じように動作します。レベルは Anthropic のモデル一覧から取得します。none とモデルが報告するレベルで、xhigh を持つモデルには Ultracode も加わります。effort に対応していないと報告するモデルでは、none だけが選べます。キーの一覧を読み取る前は、各モデルに Claude タブでのレベルが使われます。🧠 ダイアログには、Claude と同じ Thinking(思考)のコントロールがあります。

Claude と共有するもの #

コミットの帰属表示、バックグラウンドコマンドの上限、effort のレベル、コンパクト化のウィンドウは Claude タブのものを使います。そのため、切り替えで変わるのは支払う人だけです。

Claude の設定フォルダーは 1 つです。 Claude API のチャットは、サブスクリプションのチャットと同じ Claude Code のフォルダー(~/.claude、または CLAUDE_CONFIG_DIR)を使います。スキル、プラグイン、MCP サーバー、トランスクリプトも同じです。だからこそ、チャットは切り替えてもセッションを保てます。このフォルダーやチャットのフォルダーの .claude/ にある設定で、キーの送り先を変えることはできません。リレーは Anthropic のアドレスとキーを、それらの設定より優先して固定します。

キーでは使われないもの。 Claude のプランのメーターと使用量の上限での一時停止は適用されません。Anthropic が拒否したターンは、メモを付けて失敗します。Claude API のチャットは、すべてのフックとステータスラインをオフにして実行されます。セキュリティを参照してください。

それ以外は Claude のページを参照してください。 ほかのページで Claude のチャットの動作として説明していること(サブエージェント、バックグラウンドタスク、コンパクト化、プランボード、質問カード、ターン中の送信ボタンなど)は、Claude API のチャットでも同じです。

制限 #

  • ワークスペース外のキーには HTTP 400 が返ります。 Anthropic は、ワークスペースに結び付いていないキーに HTTP 400 を返し、タブには API key saved, but Anthropic refused it: … と表示されます。Claude Console でワークスペースの中にキーを作成し、そのキーを保存してください。OAR でワークスペースを指定できるようにする予定です。
  • 料金のないモデル。 Claude Code が料金を持たないモデル(現在は Claude Haiku 5.5)は、カードに no price known と表示されます。そのトークンは推定にも上限にも含まれません。
  • 推定はこのリレーのものです。 キーのほかの用途は含まれません。すべてのリクエストは Console にあります。
  • 残高は表示されません。 OAR は Console の残高も、プランの API クレジットも読み取りません。
  • ベース URL はありません。 キーは https://api.anthropic.com にだけ送られます。別のエンドポイントを指定する設定はありません。
  • エージェントはキーを読み取れます。 セキュリティを参照してください。

エラーコード #

失敗した Claude API の返信は Error code: relay.<code>. で終わり、コードによっては、すぐに対処できるボタンが付きます。

コード 発生する状況 ボタン
relay.claude-api-cap-reached 今月の推定額が上限に達しました。ターンは実行されませんでした。 Claude API settings(上限の欄を表示)、Switch to subscription
relay.claude-api-not-configured Claude API にキーがないか、オフになっているか、リレーが確認できませんでした。ターンは実行されませんでした。 Claude API settings、Switch to subscription
relay.claude-api-key Anthropic がキーを受け付けませんでした(HTTP 401 または 403)。 Claude API settings
relay.claude-api-key-source Claude Code が保存済みのキー以外の認証情報で起動したため、ターンを停止しました。セキュリティを参照してください。 Claude API settings
relay.claude-api-credit アカウントのクレジット残高が不足しています。 Add funds(入金)、Claude API settings
relay.claude-api-billing Anthropic が課金上の理由でリクエストを拒否しました(HTTP 402)。 Console billing
relay.claude-api-spend-limit アカウントが Console で設定した支出の上限に達しました。 Console limits
relay.claude-api-rate-limit Anthropic がキーにレート制限をかけているか、過負荷です(HTTP 429 または 529)。 Console limits

Claude API settings は Settings → Providers → Claude API を開きます。Add funds と Console billing は Console の課金ページを、Console limits は上限のページを開きます。Switch to subscription は、次のターンからチャットをサブスクリプションに移します。メッセージをもう一度送信してください。

リレー自身による拒否にもコードがあります。

コード 発生する場所 意味
CLAUDE_API_CAP_REACHED New Chat、課金の切り替え、エージェントの send または create_session 上限に達しています。
CLAUDE_API_NOT_CONFIGURED New Chat、課金の切り替え Claude API にキーがないか、オフになっています。
CLAUDE_NOT_CONFIGURED New Chat、課金の切り替え Claude プロバイダー(サブスクリプション)がオフです。Claude のチャットを開始できず、キーで動くチャットをサブスクリプションに戻せません。Settings → Providers → Claude(設定 → プロバイダー → Claude)で Claude をオンにしてください。
CLAUDE_BILLING_MODEL_UNAVAILABLE 課金の切り替え チャットのモデルが相手側の一覧にありません。相手側にあるモデルを選んでから切り替えてください。
CLAUDE_BILLING_SWITCH_REQUIRED、CLAUDE_BILLING_CHANGED メッセージの送信 メッセージがもう一方の課金を指定しているか、古い課金を表示したままのページから送られました。何も送信されず、テキストは下書きに戻ります。

トラブルシューティング #

問題 対処法
New Chat に Claude API がない、または切り替えで API key を選べない Settings → Providers → Claude API でキーを保存し、Enable Claude API for New Chat and the billing switch にチェックが入っていること、その月の支出が上限に達していないことを確認してください。切り替えのツールチップに理由が表示されます。
400 を伴う API key saved, but Anthropic refused it: …、またはすべてのターンが HTTP 400 で失敗する キーがワークスペースに結び付いていません。Claude Console でワークスペースの中にキーを作成し、保存してください。
relay.claude-api-key キーが間違っているか、取り消されています。ターンの合間に有効なキーを貼り付けて保存してください。
relay.claude-api-credit、relay.claude-api-billing、relay.claude-api-spend-limit Add funds、Console billing、Console limits のいずれかを押し、Claude Console で問題を解決してから、メッセージをもう一度送信してください。
relay.claude-api-cap-reached Switch to subscription を押すか、Claude API settings で上限を引き上げてください。上限は毎月 1 日にリセットされます。
New Chat で上限に達したと表示される Start on subscription を押すか、上限を引き上げてください。
カードにモデルの no price known が表示される Claude Code にそのモデルの料金がまだありません(現在は Claude Haiku 5.5)。トークンは一覧に載りますが、推定にも上限にも含まれません。
カードの支出が Console より少ない カードが数えるのは、このリレーのキーでのターンだけです。
relay.claude-api-key-source リレーのマシンにある Claude Code の設定(settings.json)から apiKeyHelper やその他の認証情報を削除し、タブでキーを確認してから、メッセージをもう一度送信してください。
Cannot remove the Claude API key while … それらのチャットをアーカイブまたは削除するか、サブスクリプションに移すか、代わりに Claude API をオフにしてください。

セキュリティ #

キーの保管場所。 キーはリレーのマシン上にあるリレーのデータベースに保存され、ブラウザーには送られません。タブには、キーが保存されていることだけが表示されます。リレー自身がキーを使うのはモデル一覧の取得という 1 種類のリクエストだけで、送り先は https://api.anthropic.com だけです。キーが届くのは Claude API チャットのワーカーだけです。セッションが tmux で動く場合は、リレーのユーザーだけが読めるファイルを通して渡されます。ワーカーの中では、キーは環境変数と標準入力で渡す設定を通して Claude Code に届きます。マシンのほかのユーザーが読めるコマンドラインには載りません。リレー自身の環境にあるキー(ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN)は、どのチャットにも届きません。

エージェントから見えるもの。 CLI が持つほかのキーと同じく、エージェント自身のコマンドは環境変数からキーを読み取れます。リレーは、キーが保存された時点から、ワーカーが送るすべての内容とワーカーのログで、キーを [redacted] に置き換えます。これは DeepSeek と同じです。これにより、OAR が保存し表示する内容にはキーが含まれません。ただし、エージェントに対する防御にはなりません。

認証情報は確認されますが、モデルへのリクエストが 1 回先に出ることがあります。 Claude API のチャットは、Claude のサインイン情報がある Claude Code のフォルダーを共有します。リレーは、そのフォルダーやチャットのフォルダーの設定にあるどの認証情報よりも、保存済みのキーを優先して固定します。そして Claude Code の起動レポートがキーの出どころとして別のものを示すと、リレーはすぐにターンを停止します(relay.claude-api-key-source)。Claude Code はこの確認を待ちません。レポートの約 50~90 ms 後に最初のモデルへのリクエストを送るため、停止が効く前に、別の認証情報(たとえば Claude のサインイン)でモデルへのリクエストが 1 回出てしまうことがあります。この確認は、誤った認証情報をその 1 回のリクエストまでに抑えるものであり、防ぐものではありません。サブスクリプションのチャットでも、逆向きに同じ確認が行われます。Claude を参照してください。

フックはありません。 Claude API チャットの Claude Code は、すべてのフックをオフにして起動します。自分のフック(~/.claude)も、チャットのフォルダーのフック(.claude/settings.json、settings.local.json)も、プラグインのフックも実行されず、ステータスラインのコマンドも実行されません。これらはキーを環境変数に持ったまま、リレーのユーザーとして実行されてしまうためです。この設定は Claude Code のコマンドラインにあるので、設定ファイルで再びオンにすることはできません。マシンの管理者による管理設定(managed settings)のフックは、引き続き実行されます。サブスクリプションのチャットでは、フックとステータスラインはそのまま使えます。

Anthropic に送られるもの。 サブスクリプションのチャットと同じく、ターンの間にエージェントが読み書きするすべての内容です。

詳しくはセキュリティを参照してください。