> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dodo CLI

> Dodo Payments の公式コマンドラインインターフェース — リソース管理、AI 対応クエリの実行、チェックアウトセッションの作成、ターミナルからの Webhook テストを行います。

Dodo Payments のリソースを管理し、アカウントに対して AI 対応クエリを実行し、チェックアウトセッションを作成し、Webhook をテストします — すべてターミナルから実行可能です。CLI にはインタラクティブな TUI、MCP によって駆動される組み込み AI アシスタント、オフラインでの Webhook テストが含まれています。

<Frame>
  <iframe className="w-full aspect-video rounded-md" src="https://www.youtube.com/embed/gwtvQsANbW4" title="Dodo CLI | Dodo Payments" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</Frame>

## 機能

* **インタラクティブな TUI** — コマンドパレット、履歴、ライブ通知を備えたフルインタラクティブインターフェースを開くには、引数なしで `dodo` を起動します。
* **組み込み AI アシスタント** — `/ai` を使用して、プレーンな英語で質問やアクションを実行します。追加のセットアップは不要で、`dodopayments-mcp` がローカルで実行されます。
* **デフォルトで安全** — API キーは OS の秘密ストア (macOS キーチェーン、Windows Credential Vault、Linux libsecret) に保存されます。ディスク上にプレーンテキストの設定はありません。
* **自動アップデート** — CLI は起動時に新しいバージョンをチェックし、アプリ内で通知します。`/update` を実行してその場でアップグレードできます。
* **Webhook ツール** — ライブ Webhook のリッスンまたはローカル開発用にオフラインでペイロードをトリガーします。

## インストール

macOS または Linux で CLI をワンライナーでインストールします:

```bash theme={null}
curl -fsSL https://dodopayments.com/install.sh | sh
```

### npm または Bun を使用してインストール

すでに Node または Bun をお持ちの場合、パッケージマネージャーのインストールは常に最新バージョンを取得します:

<CodeGroup>
  ```bash npm theme={null}
  npm install -g dodopayments-cli
  ```

  ```bash Bun theme={null}
  bun install -g dodopayments-cli
  ```
</CodeGroup>

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

リモートスクリプトを `sh` にパイプするのが嫌な場合は、バイナリを自分でダウンロードしてください。

<Steps>
  <Step title="Download the binary">
    最新の [GitHub Release](https://github.com/dodopayments/dodopayments-cli/releases) からプラットフォーム用のバイナリをダウンロードします。

    | プラットフォーム              | バイナリ                       |
    | --------------------- | -------------------------- |
    | macOS (Apple Silicon) | `dodo-cli-darwin-arm64`    |
    | macOS (Intel)         | `dodo-cli-darwin-x64`      |
    | Linux (x86\_64)       | `dodo-cli-linux-x64`       |
    | Linux (arm64)         | `dodo-cli-linux-arm64`     |
    | Windows (x86\_64)     | `dodo-cli-windows-x64.exe` |
  </Step>

  <Step title="Rename the binary to `dodo`">
    <CodeGroup>
      ```bash Linux / macOS theme={null}
      mv ./dodo-cli-* ./dodo && chmod +x ./dodo
      ```

      ```powershell Windows theme={null}
      ren .\dodo-cli-windows-x64.exe .\dodo.exe
      ```
    </CodeGroup>
  </Step>

  <Step title="Move it to a directory on your PATH">
    <CodeGroup>
      ```bash Linux / macOS theme={null}
      sudo mv ./dodo /usr/local/bin/
      ```

      ```powershell Windows theme={null}
      move .\dodo.exe C:\Windows\System32\dodo.exe
      ```
    </CodeGroup>

    <Info>
      Windows では、`C:\Windows\System32` に移動するには管理者権限が必要です。
    </Info>
  </Step>

  <Step title="(Optional) Verify the download">
    各リリースには `SHA256SUMS.txt` が公開されます。ダウンロードを確認するには:

    ```bash theme={null}
    shasum -a 256 -c SHA256SUMS.txt
    ```
  </Step>
</Steps>

## 認証

認証されたコマンドを使用する前に、API キーでログインしてください:

```bash theme={null}
dodo login
```

または、インタラクティブな TUI 内で:

```text theme={null}
/login
```

ログインフローは次のようになります:

1. Dodo Payments API キーのページをブラウザで開く。
2. API キーを貼り付けるように求められる。
3. 環境を選択するように求められる — **テストモード** または **ライブモード**。
4. 資格情報が OS の秘密ストアに保存される (macOS のキーチェーン、Windows の Credential Vault、Linux の libsecret)。

<Info>
  資格情報は OS の秘密ストアに保存されるため、CLI が資格情報を読み書きする最初の時に **デバイスパスワード** を求められることがあります。古いバージョンからアップグレードする場合、既存のプレーンテキスト API キーは**秘密ストアに移行され、レガシーファイルは自動的に削除されます**。
</Info>

### モードの切り替えとログアウト

1 つの **テストモード** と 1 つの **ライブモード** キーを同時に認証したままにできます。資格情報をクリアするには:

<CodeGroup>
  ```bash Direct theme={null}
  dodo logout
  ```

  ```text TUI theme={null}
  /logout
  ```
</CodeGroup>

ログアウトフローでは、**すべてのアカウント**、**テストモード**、または **ライブモード** を独立して選択できます。

## 使用方法

CLI は 2 つのモードで使用できます。

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

引数なしで `dodo` を実行し、フルインタラクティブインターフェースを起動します:

```bash theme={null}
dodo
```

`/` を入力してコマンドパレットを開くか、単に入力を開始します — スラッシュコマンドでないものはすべて AI アシスタントに送信されます。

| コマンド      | 説明                                      |
| --------- | --------------------------------------- |
| `/help`   | コマンドリファレンスを表示                           |
| `/update` | CLI の更新をチェックしてインストール                    |
| `/login`  | API キーで認証                               |
| `/logout` | 1 つまたはすべての環境からサインアウト                    |
| `/clear`  | TUI 画面をクリア                              |
| `/exit`   | TUI を終了 (または: `exit` と入力、`Esc` を 2 回押す) |

### 2. 直接サブコマンド

TUI に入らずに直接コマンドを実行します:

```bash theme={null}
dodo <category> <sub-command> [args...]
```

例として:

```bash theme={null}
dodo payments list 1
dodo customers create
dodo wh trigger
```

以下のリファレンステーブルはすべてのコマンドを示しています。TUI では、それに `/` を付け、直接モードでは `/` を省略します。

## AI アシスタント

自然言語で質問をしたりアクションを実行します。アシスタントはローカルで実行される `dodopayments-mcp` を使用しています — 追加の設定や OAuth フローは不要で、AI トラフィックはモデルプロバイダとの通信を除いてマシンを離れません。

| コマンド                     | 説明                                |
| ------------------------ | --------------------------------- |
| `/ai <query>`            | AI アシスタントに質問をしたり指示を与えたりする         |
| *(スラッシュコマンドではない任意のテキスト)* | TUI 内にいる間はデフォルトで AI アシスタントに送信されます |

例:

```text theme={null}
how much revenue did I make this week?
/ai create a new customer named Acme Inc.
/ai find my last failed payment
```

<Tip>
  アシスタントはアクティブな環境 (テスト / ライブ) を尊重し、現在ログインしている環境のデータにのみ操作します。
</Tip>

## プロジェクトのスキャフォールディング

`dodo init` は、既存のプロジェクトに Dodo Payments の請求ルートを直接スキャフォールディングします。ボイラープレートのルートファイルを生成し、対応する `@dodopayments/*` アダプターパッケージをインストールし、環境変数を安全に `DODO_PAYMENTS_*` に書き込みます（既に存在しない変数のみを追加）。このコマンドは **ログインなしで** 実行されます。

```bash theme={null}
dodo init <framework>
```

| スキャフォールド                | 説明                                                                                               |
| ----------------------- | ------------------------------------------------------------------------------------------------ |
| `dodo init nextjs`      | `@dodopayments/nextjs` を使用して、Next.js アプリルーターの請求ルート（チェックアウト、カスタマーポータル、ウェブフックハンドラー）をスキャフォールディングします |
| `dodo init express`     | `@dodopayments/express` を使用して、Express サーバーの請求ルートをスキャフォールディングします                                  |
| `dodo init better-auth` | `@dodopayments/better-auth` を使用して、Better-Auth プラグイン構成をスキャフォールディングします                             |

Better-Auth スキャフォールディング用には、生成するプラグインのカンマ区切りリストを渡すことができます（デフォルトではすべて）：`checkout`, `portal`, `usage`, `webhooks`。

```bash theme={null}
# Scaffold every Better-Auth plugin (default)
dodo init better-auth

# Scaffold only specific plugins
dodo init better-auth checkout,portal
```

<Info>
  スキャフォールダは、`src/` ディレクトリを自動検出し、出力パスを適応させます。また、パッケージマネージャー（`bun`, `pnpm`, `yarn`, または `npm`）を自動検出して、正しいインストールコマンドを実行します。
</Info>

## コマンドリファレンス

### 製品

製品カタログを管理します。

| コマンド                        | 説明               |
| --------------------------- | ---------------- |
| `dodo products list <page>` | 製品一覧を表示          |
| `dodo products create`      | ダッシュボードを開いて製品を作成 |
| `dodo products info <id>`   | 特定の製品の詳細を表示      |

### 支払い

支払い取引を表示します。

| コマンド                        | 説明               |
| --------------------------- | ---------------- |
| `dodo payments list <page>` | 支払い一覧を表示         |
| `dodo payments info <id>`   | 特定の支払いについての情報を取得 |

### 顧客

顧客ベースを管理します。

| コマンド                         | 説明       |
| ---------------------------- | -------- |
| `dodo customers list <page>` | 顧客一覧を表示  |
| `dodo customers create`      | 新規顧客を作成  |
| `dodo customers update <id>` | 既存の顧客を更新 |

### 割引

クーポンと割引を管理します。

| コマンド                         | 説明             |
| ---------------------------- | -------------- |
| `dodo discounts list <page>` | 割引一覧を表示        |
| `dodo discounts create`      | 新しい割合ベースの割引を作成 |
| `dodo discounts delete <id>` | IDで割引を削除       |

### ライセンス

ソフトウェアライセンスを管理します。

| コマンド                        | 説明         |
| --------------------------- | ---------- |
| `dodo licences list <page>` | ライセンス一覧を表示 |

### アドオン

製品アドオンを管理します。

| コマンド                      | 説明                 |
| ------------------------- | ------------------ |
| `dodo addons list <page>` | アドオン一覧を表示          |
| `dodo addons create`      | ダッシュボードを開いてアドオンを作成 |
| `dodo addons info <id>`   | 特定のアドオンの詳細を表示      |

### 返金

返金情報を表示します。

| コマンド                       | 説明          |
| -------------------------- | ----------- |
| `dodo refunds list <page>` | 返金一覧を表示     |
| `dodo refunds info <id>`   | 特定の返金の詳細を表示 |

### チェックアウト

ホストされたチェックアウトセッションを作成します。

| コマンド                | 説明                                        |
| ------------------- | ----------------------------------------- |
| `dodo checkout new` | インタラクティブにホストされたチェックアウトセッションを作成し、支払いリンクを取得 |

## Webフック

CLI には開発中の Web フックをテストするための 2 つの強力なツールがあります: ライブテストの Web フックをローカルサーバーに転送する**リスナー**と、モック Web フックのペイロードを任意のエンドポイントに送信する**トリガー**です。

| コマンド              | 説明                                       |
| ----------------- | ---------------------------------------- |
| `dodo wh listen`  | Web フックをリアルタイムで受信し、ローカル開発サーバーに転送         |
| `dodo wh trigger` | ログイン中であっても、インタラクティブにテスト Web フックイベントをトリガー |

### Web フックのリスニング

Dodo Payments からの Web フックをリアルタイムで直接ローカル開発サーバーに転送します。

```bash theme={null}
dodo wh listen
```

<Steps>
  <Step title="Enter your local endpoint URL">
    Web フックを受信したいローカル URL を指定します（例: `http://localhost:3000/webhook`）。
  </Step>

  <Step title="Automatic setup">
    CLI は、既に存在しない場合、Dodo Payments アカウント上で Web フックエンドポイントを自動的に作成し、リアルタイムでイベントを受信するための WebSocket 接続を開きます。
  </Step>

  <Step title="Receive and forward">
    Web フックイベントが発生した場合（テスト支払い、サブスクリプションの変更などから）、CLI はそれを受信し、イベントタイプをロギングし、ヘッダーとボディ付きの完全なリクエストをローカルエンドポイントに転送します。エンドポイントからの応答はロギングされ、送り返されます。
  </Step>
</Steps>

<Warning>
  `dodo wh listen` には **テストモード** の API キーが必要です。本番モードのキーはリスニングフローではサポートされていません。
</Warning>

<Tip>
  リスナーは元の Web フックのヘッダー（`webhook-id`, `webhook-signature`, `webhook-timestamp`）を保持してローカルエンドポイントに転送するので、署名検証ロジックをテストできます。
</Tip>

### テスト Web フックをトリガー

モック Web フックペイロードを任意のエンドポイントに送信し、リアルな取引を作成することなくクイックテストを行います。

```bash theme={null}
dodo wh trigger
```

`/wh trigger` フローは次をガイドします：

1. 送信先の**エンドポイントURL**を設定
2. インタラクティブメニューからトリガーする特定の**イベント**を選択

<Info>
  `dodo wh trigger` はログインを必要としません。ローカル/オフラインの Web フックペイロード生成ツールとして動作します。
</Info>

<Warning>
  トリガーされたイベントは**署名されていません**。テスト中は、エンドポイントでの Web フック署名検証を無効にしてください。例えば、テスト時のみ `unsafe_unwrap()` を使用し、`unwrap()` の代わりに使用します。
</Warning>

### サポートされている Web フックイベント

| カテゴリー         | イベント                                                                                        |
| ------------- | ------------------------------------------------------------------------------------------- |
| **サブスクリプション** | `active`, `updated`, `on_hold`, `renewed`, `plan_changed`, `cancelled`, `failed`, `expired` |
| **支払い**       | `succeeded`, `failed`, `processing`, `cancelled`                                            |
| **返金**        | `succeeded`, `failed`                                                                       |
| **紛争**        | `opened`, `expired`, `accepted`, `cancelled`, `challenged`, `won`, `lost`                   |
| **ライセンス**     | `created`                                                                                   |

### 環境変数

| 変数                        | 説明                                                       |
| ------------------------- | -------------------------------------------------------- |
| `DODO_WH_TEST_SERVER_URL` | `dodo wh listen` で使用されるデフォルトの Web フックリレーサーバー URL を上書きします |

## アップデート

CLI は起動時に新しいバージョンを確認し、利用可能であればステータスバーに通知を表示します。アップグレードするには：

```text theme={null}
/update
```

または、インストーラーを再実行してその場でアップグレード：

<CodeGroup>
  ```bash install.sh theme={null}
  curl -fsSL https://dodopayments.com/install.sh | sh
  ```

  ```bash npm theme={null}
  npm install -g dodopayments-cli
  ```

  ```bash Bun theme={null}
  bun install -g dodopayments-cli
  ```
</CodeGroup>

## リソース

<CardGroup cols={2}>
  <Card title="GitHub Repository" icon="github" href="https://github.com/dodopayments/dodopayments-cli">
    ソースコードとリリースを表示
  </Card>

  <Card title="npm Package" icon="npm" href="https://www.npmjs.com/package/dodopayments-cli">
    npm レジストリで表示
  </Card>
</CardGroup>

## サポート

* **Discord**: [Community Server](https://discord.gg/bYqAp4ayYh) に参加する
* **GitHub**: [リポジトリ](https://github.com/dodopayments/dodopayments-cli/issues)で問題を開く
* **メール**: [support@dodopayments.com](mailto:support@dodopayments.com) にお問い合わせください
