Resend CLIは、開発者向けメールプラットフォームResendの公式コマンドラインツールです。npm install -g resend-cliまたはbrew install resend/cli/resendでインストール後、resend loginで認証することで、ターミナルやCI/CDパイプラインからメール送信やドメイン管理、メールインフラ自動化が可能です。
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キーの解決順序:
-
--api-keyフラグ -
RESEND_API_KEY環境変数 - 保存済み認証情報
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-1、eu-west-1、sa-east-1、ap-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)