ステップは 2 つに分かれています。新しい OpenRouter の支払いリンクを作ることと、そのリンクを支払うことです。CLI は既存のリンクの支払いを自動化できますが、次の OpenRouter チャージ用リンクを作ることはありません。
このページでは、まずその制約を説明し、次に実務で本当に機能する回避策を取り上げます。ROZO Checkout は独立した第三者のチェックアウトであり、OpenRouter とは提携関係にありません。

支払いリンクの作成と支払いを分けて考える
auto top-up は、あらかじめ保存しておいた支払い手段に請求することで動きます。あなたがその場にいなくても、誰かがあなたのお金を動かせる必要があるのです。カードの場合、保存済みカードはまさにそのために存在します。
自己管理型ウォレットは、支払いごとに対話的に署名することも、あなたが使用を許可した鍵でローカルソフトウェアに署名させることもできます。自己管理であること自体が自動化を排除するわけではありません。
無人で支払うには、署名者に支出権限が必要です。たとえば、任意の CLI --send モードで使う専用のローカルホットウォレットです。これは、カストディアルサービスがあなたの残高を保有することや、トークンの許可枠でコントラクトに支出を認めることとは異なります。
署名者を許可しても、支払いリンクの作成は解決しません。cron ジョブが新しい OpenRouter の請求を作れると決めつけず、このステップは明示的に扱ってください。
残高がゼロになると実際に何が壊れるか
ここは具体的に見ておく価値があります。壊れ方が穏やかではないからです。
長時間実行のジョブは、行儀よく一時停止して資金を待ってはくれません。リクエストが失敗し始め、クライアント側のエラー処理次第で、失敗の連続、途中までしか終わっていないバッチ、あるいは空の残高に対して時間を浪費するリトライループが発生します。人が気づいて手動で入金するまで、すべてが壊れたままです。
コストが高くつくのは top-up そのものではありません。やり直しになる実行と、残高がゼロになってからあなたがそれに気づくまでの時間です。
実際に使える回避策
どれも気の利いた手ではありません。この問題が持ち上がる頻度を減らすからこそ機能します。
- バッファは最低額ではなく、自分の消費量に合わせて確保する。重い日にかかる金額が分かっているなら、その数日分を残高に持っておきます。最低額を何度も入れ直すより、多めに、少ない回数でチャージするほうが確実に優れています。
- 長時間の実行中ではなく、その前にチャージする。バッチが高くつくと分かった瞬間が、資金を足すのに最も安上がりなタイミングです。
- 残高は普段から目に入る場所で確認する。決して見ない数字は、いずれあなたを驚かせる数字です。どうせ通る場所に置いておきましょう。
- バッファ戦略が成り立つ程度に、チャージを速く保つ。ここは私たちが力になれる部分です。リンクを貼り付け、ウォレットで承認するだけで、クレジットは通常、支払いがオンチェーンで確認されてから約 2 分で反映されます。手動が苦痛なのは、手動が遅いときだけです。
CLI や cron で自動化する
OpenRouter には以前、スクリプトから呼べる暗号資産クレジット API がありました。2026 年 10 月時点でこのエンドポイント(POST /api/v1/credits/coinbase)は 410 Gone を返すため、支払いリンク自体は OpenRouter の Credits ページで作成する必要があります。
リンクさえあれば、支払いはスクリプト化できます。ROZO Checkout の CLI は 1 コマンドで見積もりと支払いを行い、エージェントや cron から実行できます。
- npx @rozoai/checkout quote <link>
- npx @rozoai/checkout pay <link> --with usdt-solana --yes
デフォルトの手順は秘密鍵も環境変数も不要です。一回限りの入金注文を作り、アドレスと正確な金額を表示して、請求が決済されるまで待ちます。コインは引き続きあなた自身のウォレットから送るので、上で述べたセルフカストディの原則は変わりません。完全に無人で動かしたい場合は、--send オプションが EVM チェーンや Solana でローカルの鍵を使って署名します。ローカルの署名者はその資金を使えるので、残高の少ない専用ホットウォレットを使ってください。
支払いを確認するには、npx @rozoai/checkout receipt <rozoPaymentId> --json を実行します。Coinbase が請求の支払い済みを報告したときだけ終了コード 0 を返します。v3 では CAPTURE_SUCCEEDED を意味します。終了コード 3 は処理中または不明、終了コード 1 は未払いのまま期限切れ、または人による確認が必要であることを意味します。status コマンドの終了コード 0 はチェックが実行されたことを示すだけなので、state、paymentOutcome、nextAction を読んでください。クレジットは OpenRouter で別途確認してください。
最新のコマンドと、対応している 2 つの Coinbase URL 形式(payment link と payment session)については ROZO Checkout CLI README を参照してください。AI エージェント向けガイドでは、CLI、MCP サーバー、Claude Code の skill を紹介しています。
それでも完全に自動化したい場合
支払いの承認方法を選び、新しい支払いリンクの入手方法は別に決めてください。
ローカル署名なら、カストディアルな残高なしで準備済みの支払いを自動化できます。その署名者が使える資金を制限し、権限を与える前に見積もりを確認し、再試行の前に receipt を確認してください。カストディアルサービスを使う場合は、アクセス、出金、返金の条件を確認してください。
エージェントを動かしている多くの人にとっては、バッファ+30 秒の手動チャージのほうが、よそに残高を置きっぱなしにするより運用リスクは小さい、という結論になります。