Skip to main content
Dodo CLI は、ターミナルから Dodo Payments のリソースを管理し、組み込み AI assistant でアカウントに関する質問に回答し、checkout session を作成し、webhook をテストできます。インタラクティブな TUI を使用することも、スクリプトから直接 subcommand を実行することもできます。

機能

  • インタラクティブ TUI: 引数なしで dodo を実行すると、command palette、履歴、ライブ通知を備えたインタラクティブインターフェースが開きます。
  • 組み込み AI assistant: /ai を使って、自然な英語で質問したり操作を実行したりできます。assistant はローカルで dodopayments-mcp を実行するため、追加設定は不要です。
  • 暗号化された認証情報: API keys は ~/.dodopayments/config.json に保存され、マシンから派生したキーで AES-256-GCM により暗号化されます。ディスク上に平文の認証情報は保存されません。
  • 自動更新: CLI は起動時に新しいバージョンを確認し、TUI で通知します。npm または Bun でインストールした場合は、/update を実行してその場で更新できます。
  • Webhook ツール: test mode の webhook をローカルサーバーに転送したり、オフラインで mock webhook payload を送信したりできます。
  • Scaffolding: dodo init を使って、Next.js、Express、Better Auth のプロジェクトに billing route を追加できます。

インストール

macOS または Linux では、インストールスクリプトを使って最新リリースの binary をインストールします。
このスクリプトは、リリースの SHA-256 checksum に対して binary を検証します。dodo は、/usr/local/bin、~/.local/bin、~/bin のうち、最初に書き込み可能なディレクトリにインストールされます。いずれも書き込み可能でない場合は ~/.local/bin にインストールされます。特定のリリースをインストールするには、DODO_VERSION environment variable にその tag を設定します。ディレクトリを選択するには、DODO_INSTALL_DIR を設定します。

NPM または Bun でのインストール

Node.js または Bun がある場合は、dodopayments-cli package を global にインストールします。package manager によるインストールでは、公開済みの最新バージョンが取得されます。
dodo login などの直接 subcommand は Node.js 18 以降で実行されます。package manager 経由でインストールした場合、インタラクティブ TUI には Bun も必要です。リリース binary にはどちらの runtime も必要ありません。

手動インストール(Node / Bun 不要)

remote script を実行せずにインストールするには、binary を自分でダウンロードします。
1

Download the Binary

最新の GitHub Release から、使用する platform 用の binary をダウンロードします。
2

Rename the Binary to dodo

3

Move It to a Directory on Your PATH

Windows では、ファイルを C:\Windows\System32 に移動するために administrator privileges が必要です。
4

(Optional) Verify the Download

各リリースでは SHA256SUMS.txt file が公開されます。binary の隣にダウンロードしてから、binary を検証します。

Authentication

アカウントを読み取ったり変更したりする command を実行する前に、API key でログインします。直接 subcommand でログインするには、key とその mode(test または live)を渡します。
または、インタラクティブ TUI の内部から実行します。
TUI のログインフロー:
  1. ブラウザで dashboard の Developer → API Keys ページを開きます。
  2. API key の貼り付けを求めます。
  3. Test Mode または Live Mode の選択を求めます。
どちらの command も API への request で key を検証してから、~/.dodopayments/config.json に暗号化して保存します。
暗号化キーはマシンから派生するため、保存された認証情報はそのマシンでのみ機能します。OS keychain に key を保存していた v3.0.x からアップグレードする場合は、dodo login をもう一度実行してください。以前の平文 ~/.dodopayments/api-key file にある key は自動的に移行され、その file は削除されます。

Mode の切り替えとログアウト

test mode key と live mode key をそれぞれ 1 つずつ、同時にログインした状態にできます。TUI で active mode を切り替えるには /switch を実行します。保存された key を削除するには、次を実行します。
direct mode では test、live、または all を渡します。TUI では /logout が All accounts、Test Mode、Live Mode の選択を求め、その後確認を求めます。

Usage

CLI は 2 つの mode で使用できます。

1. インタラクティブ TUI(推奨)

引数なしで dodo を実行すると、インタラクティブインターフェースが開きます。
/ と入力すると command palette が開きます。/ で始まらないテキストは AI assistant に送られます。

2. 直接 Subcommand

TUI を開かずに command を実行します。
例:
以下の reference table には、direct-mode 形式のすべての command が記載されています。TUI では、dodo を / に置き換えます(例:/payments list 1)。TUI only と記された command はインタラクティブ wizard です。direct mode では、TUI を開くよう案内する message が表示されます。

AI Assistant

アカウントについて質問したり、自然な英語で操作を実行したりできます。assistant はマシン上で dodopayments-mcp を実行するため、追加設定や OAuth flow は不要です。保存された key を使ってマシンから Dodo Payments API を呼び出し、prompt を language model に送信します。 direct mode では dodo ai に続けて質問を入力します。TUI での例:
assistant は active mode(test mode または live mode)を使用し、その mode のデータのみを扱います。

Project Scaffolding

dodo init は既存の project に Dodo Payments の billing route を追加します。route file を作成し、対応する @dodopayments/* adapter package をインストールし、不足している DODO_PAYMENTS_* variable を placeholder value とともに .env file に追加します。既存の file と variable はスキップし、ログインなしで実行されます。
Better-Auth scaffold では、生成する plugin を comma-separated list で渡せます:checkout、portal、usage、webhooks。list を指定しない場合は 4 つすべてが生成されます。
project に src/ directory がある場合、scaffolder はその内部に file を書き込みます。project の lock file(bun、pnpm、または yarn)から install command を選択し、見つからない場合は npm を使用します。

Command Reference

これらの command にはログイン済みの API key が必要です。list command では任意の page number を指定できます。デフォルトは 1 で、1 page あたり最大 100 item が表示されます。

Products

product catalog を管理します。

Payments

payment transaction を表示します。

Customers

customer を管理します。

Discounts

discount code を管理します。

Licenses

license key を表示します。command の表記は licences です。

Addons

product add-on を管理します。

Refunds

refund information を表示します。

Checkout

hosted checkout session を作成します。

Webhooks

CLI には development 用の webhook tool が 2 つあります。test mode の webhook をローカルサーバーに転送する listener と、任意の endpoint に mock webhook payload を送信する trigger です。 direct mode では argument が必須です。TUI では /wh listen または /wh trigger を引数なしで実行すると、インタラクティブ wizard が開きます。

Webhook を Listen

Dodo Payments account からローカルの development server に webhook をリアルタイムで転送します。
dodo wh listen には Test Mode API key が必要です。Live Mode key は listen flow ではサポートされません。
1

Enter Your Local Endpoint URL

webhook を受信する local URL を渡します(例:http://localhost:3000/webhook)。TUI wizard では CLI が入力を求めます。
2

Automatic Setup

account に CLI の relay server 用 webhook endpoint がない場合、CLI が作成します。endpoint は Developer → Webhooks に表示されます。その後 CLI は relay への WebSocket connection を開き、event をリアルタイムで受信します。
3

Receive and Forward

webhook event が発生すると(test payment や subscription change など)、CLI は payload と header を POST request として local endpoint に転送します。event type と endpoint の response を log に記録し、response を relay に返します。
listener は local endpoint への転送時に元の webhook header(webhook-id、webhook-signature、webhook-timestamp)を保持するため、signature verification logic をテストできます。
relay と CLI は JSON body を解析し、転送する前に再度 serialize します。転送された body が元の内容とバイト単位で異なる場合(たとえば number のフォーマットが異なる場合)、headers がそのままでも signature verification は失敗します。

Test Webhook を Trigger

実際の transaction を作成せずに、任意の endpoint へ mock webhook payload を送信します。
trigger された event には 署名がありません。request には webhook-id、webhook-signature、webhook-timestamp header は含まれません。テスト中は unwrap の代わりに、未検証 method(TypeScript では unsafeUnwrap、Python では unsafe_unwrap、Go では UnsafeUnwrap)で parse し、本番開始前に unwrap に戻してください。
direct mode では、payload に placeholder ID と customer detail が使用されます。TUI の /wh trigger wizard では、次の手順を案内します。
  1. 宛先の endpoint URL を設定します。
  2. payload の Business ID、Product ID、Metadata(JSON object)、Customer email、Customer ID を任意で入力します。空欄には placeholder value が使用されます。
  3. インタラクティブ menu から送信する event を選択します。複数の event を続けて送信できます。終了するには exit を選択します。
dodo wh trigger にはログインは不要です。ローカルで動作するオフライン webhook payload generator です。

サポートされる Webhook Event

dodo wh trigger は、Dodo Payments が配信する 48 種類の event type のうち 46 種類の mock payload を送信できます。subscription.past_due と subscription.unpaused はサポートしていません。event name は次の一覧と完全に同じ形式で渡してください。 3 つの trigger name は、送信する payload 内の event type と異なります。payment.success は payment.succeeded を、refund.success は refund.succeeded を、licence.created は license_key.created を送信します。
Mock payload の shape は、API reference の対応する schema に従います。各 event の意味と、production で Dodo Payments がいつ emit するかについては、Webhook Events を参照してください。
payout.created は payout が not_initiated status のままの間に emit されるため、mock payload もそれを反映します。payout の lifecycle 全体については、Payout Events を参照してください。

Environment Variables

この variable は dodo wh listen の接続方法を変更します。

Updates

CLI は起動時に新しい version を確認し、利用可能な場合は status bar に notification を表示します。TUI から npm または Bun の install を upgrade するには、次を実行します。
/update では release binary を upgrade できません。binary install(install script によるものを含む)では、代わりに最新の GitHub release への link が表示されます。shell から upgrade するには、インストール時に使用した command をもう一度実行します。

Resources

GitHub Repository

source code と release。

npm Package

npm registry の dodopayments-cli package。

Support

最終更新日 2026年9月28日