DEV Community

Cover image for Resend CLI インストールと使い方
Akira
Akira

Posted on • Originally published at apidog.com

Resend CLI インストールと使い方

Resend CLIは、開発者向けメールプラットフォームResendの公式コマンドラインツールです。npm install -g resend-cliまたはbrew install resend/cli/resendでインストール後、resend loginで認証することで、ターミナルやCI/CDパイプラインからメール送信やドメイン管理、メールインフラ自動化が可能です。

Apidog を今すぐ試す

Resendとは?

Resendは開発者向けメールAPIです。ドメイン接続とAPIキー取得により、パスワードリセットや注文確認など、アプリケーションからのトランザクションメール送信を実現します。

2026年3月13日、Resend創業者Zeno RochaによりResend CLIが公開され、CLI経由で13リソース・53コマンドが利用可能になりました。TypeScript製・MITライセンス・完全OSSで、次の3利用層をカバーします。

  • 人間: 対話型プロンプト、表形式出力、自然言語スケジュール
  • AIエージェント: JSON出力、冪等性キー、自動検出
  • CI/CD: 環境変数認証、スクリプトフラグ、一貫した終了コード

💡メール送信アプリの構築時、本番前にメールAPI呼び出しのテストが重要です。Apidogは追加コードなしでREST APIテストができる無料GUIです。Resend OpenAPI仕様をインポートし、環境を組み合わせてテストスイートが実行できます。

Resend CLIのインストール

CLIのインストールは次の4パターン。環境に応じて最適な方法を選択してください。

cURL経由(スタンドアロンバイナリ、Node.js不要)

curl -fsSL https://resend.com/install.sh | bash

OSごとのバイナリをPATHに配置。Node.jsは不要です。

npm経由

npm install -g resend-cli

Node.js 20以降が必要。動作確認:

resend --version

Homebrew経由(macOS/Linux)

brew install resend/cli/resend

macOSで最もクリーンな方法。Homebrewが自動アップデートも管理。

PowerShell経由(Windows)

irm https://resend.com/install.ps1 | iex

またはGitHubリリースから.exeバイナリを直接取得可能。

ローカル開発用

CLIの開発やソースビルドにはNode.js 20+とpnpmが必要です。

git clone https://github.com/resend/resend-cli.git
cd resend-cli
pnpm install
pnpm build       # ./dist/cli.cjsを出力
pnpm build:bin   # ネイティブバイナリは./dist/resend

アカウントの認証

resend loginでCLIをResendアカウントと接続します。

resend login

ブラウザでAPIキー作成フローに案内され、認証情報は~/.config/resend/credentials.json(0600権限)に保存。

CI/CD等の非対話環境ではキー直接渡しが推奨されます。

resend login --key re_xxxxxxxxxxxxx

認証済みの場合、全コマンドで再認証は不要。APIキーの解決順序:

  1. --api-keyフラグ
  2. RESEND_API_KEY環境変数
  3. 保存済み認証情報

CIパイプラインでは、RESEND_API_KEY環境変数が標準です。

RESEND_API_KEY=re_xxx resend emails send --from builds@yourco.com --to dev@yourco.com --subject "Build passed" --text "All tests green."

複数アカウント対応

複数組織やチームでCLIを使う場合も、プロファイル切り替えで対応。

resend auth switch

またはコマンドごとにプロファイル指定:

resend <command> --profile production

最初のメールの送信

基本コマンドはresend emails send。最低限必要なのは送信元・宛先・件名・本文。

プレーンテキスト送信

resend emails send \
  --from "you@yourdomain.com" \
  --to recipient@example.com \
  --subject "Hello from the CLI" \
  --text "This is a test email sent from the Resend CLI."

HTMLメール送信

resend emails send \
  --from "team@yourco.com" \
  --to user@example.com \
  --subject "Your order is confirmed" \
  --html "<h1>注文が確定しました</h1><p>ご購入ありがとうございます。</p>"

ローカルHTMLファイル指定も可能:

resend emails send \
  --from "team@yourco.com" \
  --to user@example.com \
  --subject "Welcome aboard" \
  --html-file ./templates/welcome.html

配信スケジュール

自然言語やISO 8601形式で配信予約が可能。

resend emails send \
  --from "you@yourco.com" \
  --to user@example.com \
  --subject "Scheduled check-in" \
  --text "Just checking in." \
  --schedule "tomorrow at 9am"

「1時間後」「来週月曜15時」などもOK。

メールID取得

パイプ利用時は自動JSON出力。jqでメールID抽出:

EMAIL_ID=$(resend emails send \
  --from a@acme.com \
  --to b@acme.com \
  --subject "Test" \
  --text "Hi" | jq -r '.data.id')
echo "Sent email: $EMAIL_ID"

スケジュールメールのキャンセル・更新

resend emails cancel $EMAIL_ID
resend emails update $EMAIL_ID --schedule "next Monday at 10am"

最近のメール一覧

resend emails list

最大100件のバッチ送信

メール配列JSONを用意:

[
  { "from": "you@yourco.com", "to": "alice@example.com", "subject": "Hi Alice", "text": "Hello!" },
  { "from": "you@yourco.com", "to": "bob@example.com", "subject": "Hi Bob", "text": "Hello!" }
]

バッチ送信:

resend emails send-batch --file emails.json

バッチは最大100通1APIコール扱いです。

ドメインとAPIキー管理

送信前に検証済みドメインが必要です。CLIで全ライフサイクル操作が可能。

ドメイン追加

resend domains create --name yourdomain.com --region us-east-1

リージョン候補: us-east-1eu-west-1sa-east-1ap-northeast-1。ユーザー近傍がおすすめ。

DNSレコード検証

ドメイン作成後、Resendが通知するDNSレコード(SPF/DKIM/DMARC)を追加し、検証:

resend domains verify --id <domain-id>

ステータス確認:

resend domains get --id <domain-id>

トラッキング/TLS設定

resend domains configure --id <domain-id>

オープン・クリックトラッキング、カスタムDKIM等を対話型で設定。

全ドメイン一覧

resend domains list

APIキー管理

サービス・環境ごとにスコープ付きAPIキーを作成推奨。

resend api-keys create
resend api-keys list
resend api-keys delete --id <key-id>

スコープによりアクセス範囲を制限できます。

高度な機能:ブロードキャスト/Webhook/テンプレート

Resend CLIは次の3ユースケースにも対応。

ブロードキャスト

多数リストへの一斉送信。下書き作成後、送信orスケジュール。

resend broadcasts create
resend broadcasts send --id <broadcast-id>
resend broadcasts schedule --id <broadcast-id> --date "next Monday at 10am"

Webhook管理

バウンス/オープン/クリックなどリアルタイム配信イベントの受信。

resend webhooks create
resend webhooks list

ローカル開発ではlocalhost転送も可能:

resend webhooks listen --forward-to http://localhost:3000/webhooks/resend

ngrok不要。全17イベントタイプに対応。

テンプレート

変数付きHTMLメールを再利用可能。

resend templates create

{{variable_name}}構文とフォールバック値対応。送信時ID指定で利用。

連絡先・オーディエンス管理

マーケ用連絡先管理もCLIで操作。

resend contacts create --audience-id <id> --email user@example.com --first-name "Alice"
resend contacts list --audience-id <id>
resend contacts update --id <contact-id> --unsubscribed false

診断コマンド

resend doctor

CLIバージョン/APIキー/ドメインの有効性や、AIコーディングエージェント検出も実施。

CI/CDパイプラインでのResend CLI活用

自動化環境でCLIを使う場合、以下パターンが有効です。

機械可読出力

パイプ利用や--json指定でJSON出力に自動切り替え。スピナーやプロンプト非表示。

resend emails send --from a@co.com --to b@co.com --subject "Deploy" --text "Done" --json

--quietでデータ以外の出力を抑制:

resend emails list --quiet | jq '.[0].id'

破壊的操作の自動確認

スクリプト内で確認プロンプトをスキップ:

resend api-keys delete --id <key-id> --yes

GitHub Actions例

- name: Send deployment notification
  env:
    RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
  run: |
    resend emails send \
      --from deploys@yourco.com \
      --to team@yourco.com \
      --subject "Deploy to production: ${{ github.sha }}" \
      --text "Deployed commit ${{ github.sha }} to production."

レート制限

Resend APIは1秒2リクエスト制限(チーム全APIキー合算)。大量送信はsend-batch推奨。

ApidogでメールAPIをテストする

CLIは対話・簡易スクリプト向きですが、REST API直接統合時は事前テストが重要です。

Apidogは無料APIクライアントで、HTTPリクエスト送信・応答検査・テストケース整理・APIキーや環境変数ごとの設定が可能。

Resend統合ワークフロー例:

  • API仕様インポート: resend.com/docsからOpenAPI仕様をApidogにインポートし、全エンドポイントを整理・確認。
  • 環境設定: 開発・本番用環境を作成し、APIキーを変数化して使い分け。
  • 送信ロジックテスト: POST /emailsなどをApidogで実行、応答やエラー動作を検証。
  • テスト自動化: テストランナーで一連のAPI呼び出し・アサートが可能。

本番前の統合バグ回避に有用。CLIと併用で素早い操作+堅牢テスト環境が構築できます。

Resendの料金

CLIは無料・OSS。課金はResendプラットフォーム利用分のみです。

プラン 料金 月間メール数 日次制限 ログ保持期間
無料 月額$0 3,000 100/日 1日
プロ 月額$20 50,000 制限なし 3日間
スケール 月額$90 100,000 制限なし 7日間
エンタープライズ カスタム カスタム カスタム カスタム

無料プランの注意点:

  • 1日100通制限(テスト/小規模向き)
  • 分析(オープン/クリック追跡)は有料
  • ログ保持は1日のみ
  • レート制限は全プラン共通で1秒2回
  • 有料プラン超過時は最大5倍まで(予期しない課金防止)

専用IPはScaleプラン(月30ドル)アドオンで1日500通以上送信時に利用可能。

よくある質問

Resend CLIにNode.jsは必須?

cURL/ Homebrewインストールなら不要。npmインストール時のみNode.js 20+必須。

なぜ任意メールアドレスから送信不可?

検証済みドメインが必要。Gmail等フリーメールは送信元不可。

無料プランで任意アドレスに送信可能?

可能。月3,000通/日100通の上限のみ。

自然言語スケジュールの仕組みは?

「明日の9時」「2時間後」「来週金曜15時」等やISO 8601形式を解析し、ローカルタイムゾーンで処理。

出力をパイプすると?

自動でJSON専用出力に切り替わり、プロンプト等は表示されません。

複数Resendアカウント切替は?

resend loginで複数プロファイル保存、resend auth switch--profile <名>で切替可能。

Resend CLIはOSS?

MITライセンスでgithub.com/resend/resend-cliで公開。

--quiet--jsonの違いは?

どちらもJSON出力。--jsonは明示JSON、--quietは進捗/スピナー等も抑制し最小限出力。

追加リソース

Top comments (0)