pp-resend について
pp-resendは、Resendアカウントを照会・管理するための、エージェント向けコマンドラインスキルです。API操作に加え、ローカルに同期したデータを使ったリソース横断検索と分析を行えます。
主な機能
- 01宛先別メール履歴とイベント時系列
- 02オーディエンスと連絡先の所属検索
- 03ブロードキャストと到達率の分析
- 04ドメイン認証とAPIキー監査
- 05コマンドラインでのResendリソース管理
活用シーン
- 01特定宛先へのメール配信問題の調査
- 02キャンペーン前のオーディエンス状況確認
- 03バウンス率と苦情率の追跡
- 04セキュリティレビューでの古いAPIキーの特定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-resendインストール後、Claude Code で/pp-resendを入力して読み込まれたか確認します。
詳細
Resend — Printing Press CLI
前提条件:CLI のインストール
このスキルは resend-pp-cli バイナリを使用します。**このスキルのコマンドを実行する前に、必ず CLI がインストールされていることを確認してください。**インストールされていない場合は、先にインストールしてください。
- Printing Press インストーラーを使用してインストールします。デフォルトでは、macOS/Linux では
$HOME/.local/bin、Windows では%LOCALAPPDATA%\Programs\PrintingPress\binにバイナリがインストールされます。npx -y @mvanhorn/printing-press-library install resend --cli-only - 確認します:
resend-pp-cli --version - 表示されたインストールディレクトリが、このスキルを実行するエージェント/ランタイムの
$PATHに含まれていることを確認します。
npx によるインストールに失敗した場合(Node がない、オフラインなど)は、Go を直接インストールしてください(Go 1.26.6 以降が必要です)。
go install github.com/mvanhorn/printing-press-library/library/productivity/resend/cmd/resend-pp-cli@latest
インストール後に --version が「command not found」と表示される場合、ランタイムからバイナリのディレクトリを $PATH 経由で参照できません。確認に成功するまで、スキルのコマンドを実行しないでください。
この CLI を使用する場面
ダッシュボードや SDK では 1 回の呼び出しで回答できない、Resend アカウントの複数リソースにまたがる質問にエージェントが回答する必要がある場合は、この CLI を使用してください。特定の宛先に何を送信したか、連絡先がどのオーディエンスに含まれているか、ブロードキャストのパフォーマンスが時間とともにどう推移しているか、過去 7 日間のバウンス率はいくらか、といった質問に対応できます。単発のトランザクションメールの送信には npx resend send、テンプレートには React Email を引き続き使用してください。この CLI はエージェント向けの補完ツールであり、置き換えるものではありません。
独自の機能
この API 向けの他のツールでは、次の機能を利用できません。
ローカル状態を使った複数リソース横断クエリ
-
emails to— 1 つの宛先メールアドレスに送信されたすべてのメールを、配信ステータスとタイムスタンプ付きで新しい順に表示します。1 人のユーザーが受信したメールをエージェントが再構成する必要がある場合に使用します。サポートチケット、GDPR エクスポート、紛争調査に役立ちます。
resend-pp-cli emails to <your-email> --json --select id,subject,status,sent_at -
emails timeline— 1 通のメールに関するイベントの流れ(送信 → 配信 → 開封 → クリック → バウンス)を、1 つの順序付きテーブルにまとめて表示します。「なぜ届かなかったのか」を調査する場合に使用します。1 つのコマンドで、送信、配信、開封、バウンスの有無とその時刻を確認できます。
resend-pp-cli emails timeline 4ef9a417-d4ff-4ec5-9af2-c80a4d5d2c1f --json -
audiences inventory— オーディエンスごとに、連絡先数、配信停止数、最後のブロードキャストのタイムスタンプ、直近の開封率をまとめて表示します。キャンペーンを計画する前に使用します。どのオーディエンスが健全で、最近もエンゲージメントがあるかをすばやく確認できます。
resend-pp-cli audiences inventory --json -
contacts where— 連絡先(メールアドレスまたは名前で指定)が属するすべてのオーディエンス、セグメント、トピックを 1 回のクエリで検索します。配信停止の依頼、GDPR に基づく削除、「なぜ bob にこのメールが届くのか」といった問い合わせの調査に使用します。
resend-pp-cli contacts where <contact-email> --json --select audience_name,subscribed
ローカルストアからの集計分析
-
broadcasts performance— すべてのブロードキャストの開封率、クリック率、バウンス率を並べ替え可能な形で表示します。特定のブロードキャストや 30 日間の期間に限定されません。アカウントの全期間にわたるキャンペーンのパフォーマンスを比較する場合に使用します。
resend-pp-cli broadcasts performance --json --select broadcasts,count,status -
domains health— すべてのドメインの検証状況と DKIM/SPF/DMARC のステータスを 1 つのテーブルに表示し、レコードの不足や未検証を示します。オンコール対応や配信に関するインシデント時に、すべての送信ドメインが完全に検証済みか確認するために使用します。
resend-pp-cli domains health --json -
deliverability summary— ローカルのイベントデータから算出した、期間(デフォルトは 7 日間)内のバウンス率、苦情率、抑制数を表示します。配信に関するインシデントが発生する前に、IP/ドメインのレピュテーションの傾向を毎週監視するために使用します。
resend-pp-cli deliverability summary --window 7d --json
運用上の衛生管理
-
api-keys rotation— API キーを経過日数と最終使用時刻(ログから結合)で並べ替え、N 日を超えている古いキーを示します。四半期ごとのセキュリティレビューで使用します。ローテーションまたは失効させるべき未使用のキーを見つけられます。
resend-pp-cli api-keys rotation --older-than 90d --json
コマンドリファレンス
api-keys — Resend API を通じて API キーを作成、管理します。
resend-pp-cli api-keys create— 新しい API キーを作成しますresend-pp-cli api-keys delete— 既存の API キーを削除しますresend-pp-cli api-keys list— API キーの一覧を取得します
audiences — 非推奨です。代わりに Segments を使用してください。Resend API を通じてオーディエンスを作成、管理します。
resend-pp-cli audiences create— 非推奨: 代わりに Segments を使用してください。これらのエンドポイントは引き続き動作しますが、将来削除される予定です。resend-pp-cli audiences delete— 非推奨: 代わりに Segments を使用してください。これらのエンドポイントは引き続き動作しますが、将来削除される予定です。resend-pp-cli audiences get— 非推奨: 代わりに Segments を使用してください。これらのエンドポイントは引き続き動作しますが、将来削除される予定です。resend-pp-cli audiences list— 非推奨: 代わりに Segments を使用してください。これらのエンドポイントは引き続き動作しますが、将来削除される予定です。
automations — Resend API を通じて Automations を作成および管理します。
resend-pp-cli automations create— オートメーションを作成しますresend-pp-cli automations delete— オートメーションを削除しますresend-pp-cli automations get— 単一のオートメーションを取得しますresend-pp-cli automations list— オートメーションの一覧を取得しますresend-pp-cli automations update— オートメーションを更新します
broadcasts — Resend API を通じて Broadcasts を作成および管理します。
resend-pp-cli broadcasts create— ブロードキャストを作成しますresend-pp-cli broadcasts delete— 下書きステータスの既存のブロードキャストを削除しますresend-pp-cli broadcasts get— 単一のブロードキャストを取得しますresend-pp-cli broadcasts list— ブロードキャストの一覧を取得しますresend-pp-cli broadcasts update— 既存のブロードキャストを更新します
contact-properties — Resend API を通じて Contact Properties を作成および管理します。
resend-pp-cli contact-properties create— 新しいコンタクトプロパティを作成しますresend-pp-cli contact-properties delete— 既存のコンタクトプロパティを削除しますresend-pp-cli contact-properties get— 単一のコンタクトプロパティを取得しますresend-pp-cli contact-properties list— コンタクトプロパティの一覧を取得しますresend-pp-cli contact-properties update— 既存のコンタクトプロパティを更新します
contacts — Resend API を通じて Contacts を作成および管理します。
resend-pp-cli contacts create— 新しいコンタクトを作成しますresend-pp-cli contacts delete— ID またはメールアドレスで既存のコンタクトを削除しますresend-pp-cli contacts get— ID またはメールアドレスで単一のコンタクトを取得しますresend-pp-cli contacts list— コンタクトの一覧を取得しますresend-pp-cli contacts update— ID またはメールアドレスで単一のコンタクトを更新します
domains — Resend API を通じてドメインを作成および管理します。
resend-pp-cli domains create— 新しいドメインを作成しますresend-pp-cli domains delete— 既存のドメインを削除しますresend-pp-cli domains get— 単一のドメインを取得しますresend-pp-cli domains list— ドメインの一覧を取得しますresend-pp-cli domains update— 既存のドメインを更新します
emails — Resend API を通じてメールの送信を開始します。
resend-pp-cli emails create— メールを送信しますresend-pp-cli emails create-batch— 最大 100 件のバッチメールを一度に送信します。resend-pp-cli emails get— 単一のメールを取得しますresend-pp-cli emails get-receiving— 受信した単一のメールを取得しますresend-pp-cli emails get-receiving-2— 受信したメールの添付ファイルの一覧を取得しますresend-pp-cli emails get-receiving-3— 受信したメールの単一の添付ファイルを取得しますresend-pp-cli emails list— メールの一覧を取得しますresend-pp-cli emails list-receiving— 受信したメールの一覧を取得しますresend-pp-cli emails update— 単一のメールを更新します
events — Resend API を通じて Events を作成および管理します。
resend-pp-cli events create— イベントを作成しますresend-pp-cli events create-send— イベントを送信しますresend-pp-cli events delete— イベントを削除しますresend-pp-cli events get— 単一のイベントを取得しますresend-pp-cli events list— イベントの一覧を取得しますresend-pp-cli events update— イベントを更新します
logs — Resend API を通じて API リクエストログを取得します。
resend-pp-cli logs get— 単一のログを取得しますresend-pp-cli logs list— ログの一覧を取得します
segments — Resend API を通じて Segments を作成および管理します。
resend-pp-cli segments create— 新しいセグメントを作成しますresend-pp-cli segments delete— 既存のセグメントを削除しますresend-pp-cli segments get— 単一のセグメントを取得しますresend-pp-cli segments list— セグメントの一覧を取得します
templates — Resend API を通じてテンプレートを作成、管理します。
resend-pp-cli templates create— テンプレートを作成しますresend-pp-cli templates delete— 既存のテンプレートを削除しますresend-pp-cli templates get— 単一のテンプレートを取得しますresend-pp-cli templates list— テンプレートの一覧を取得しますresend-pp-cli templates update— 既存のテンプレートを更新します
topics — Resend API を通じてトピックを作成、管理します。
resend-pp-cli topics create— 新しいトピックを作成しますresend-pp-cli topics delete— 既存のトピックを削除しますresend-pp-cli topics get— 単一のトピックを取得しますresend-pp-cli topics list— トピックの一覧を取得しますresend-pp-cli topics update— 既存のトピックを更新します
webhooks — Resend API を通じて Webhook を作成、管理します。
resend-pp-cli webhooks create— 新しい Webhook を作成しますresend-pp-cli webhooks delete— 既存の Webhook を削除しますresend-pp-cli webhooks get— 単一の Webhook を取得しますresend-pp-cli webhooks list— Webhook の一覧を取得しますresend-pp-cli webhooks update— 既存の Webhook を更新します
適切なコマンドを見つける
何をしたいかは分かっていても、どのコマンドを使えばよいか分からない場合は、CLI に直接問い合わせてください。
resend-pp-cli which "<capability in your own words>"
which は、自然言語による機能の問い合わせを、この CLI の厳選された機能インデックスから最適なコマンドに対応付けます。終了コード 0 は少なくとも 1 つの一致があることを示し、終了コード 2 は確信を持てる一致がないことを示します。その場合は --help を使うか、より具体的な問い合わせに切り替えてください。
レシピ
ユーザーが受信したメールを再構成する
resend-pp-cli emails to [email protected] --json --select id,subject,status,sent_at,opened_at --limit 50
サポートチケットや GDPR エクスポートに使用できます。1 人の受信者に送信されたすべてのメールと、その配信状態を確認できます。
キャンペーン前のオーディエンス確認
resend-pp-cli audiences inventory --json --select name,contact_count,unsubscribed_count,last_broadcast_at
ブロードキャストのスケジュール設定前に実行すると、配信停止率が高いオーディエンスや、エンゲージメントが古いオーディエンスを検出できます。
週次の配信到達性レビュー
resend-pp-cli deliverability summary --window 7d --agent --select bounce_rate,complaint_rate,suppression_count
IP/ドメインのレピュテーションの傾向を把握できます。jq に渡して、しきい値を超えた場合にアラートを出すこともできます。
古い API キーを監査する
resend-pp-cli api-keys rotation --older-than 90d --json --select name,created_at,last_used_at
四半期ごとのセキュリティレビューで、未使用のキーを見つけます。
送信済みメールからフレーズを検索する
resend-pp-cli search 'password reset' --json --select id,subject,to,sent_at
FTS5 ベースです。最初に sync --full を実行する必要があります。
認証の設定
resend-pp-cli auth setup を実行すると、トークンを取得するための URL と手順が表示されます(URL を開くには --launch を追加します)。次に、トークンを保存します。
resend-pp-cli auth set-token YOUR_TOKEN_HERE
または、環境変数として RESEND_API_KEY を設定します。
resend-pp-cli doctor を実行して、設定を確認してください。
エージェントモード
任意のコマンドに --agent を追加します。次のオプションが有効になります:--json --compact --no-input --no-color --yes。
-
パイプに対応 — 標準出力には JSON、標準エラー出力にはエラーが出力されます
-
フィルタリング可能 —
--selectでフィールドを絞り込めます。ドット区切りのパスはネストされた構造をたどり、配列では各要素をたどります。出力の多い API でコンテキストを小さく保つうえで重要です。resend-pp-cli api-keys list --agent --select id,name,status -
プレビュー可能 —
--dry-runで、リクエストを送信せずに内容を確認できます -
オフラインで使用可能 — sync/search コマンドは、利用可能な場合はローカルの SQLite ストアを使用できます
-
非対話型 — プロンプトは表示されず、すべての入力をフラグで指定します
-
明示的な再試行 — 既存の作成対象が成功として扱われる場合にのみ
--idempotentを使用し、削除対象が存在しない場合に成功として扱われる場合にのみ--ignore-missingを使用します
レスポンスエンベロープ
ローカルストアまたは API から読み取るコマンドは、出力をデータの出所を示すエンベロープでラップします。
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
データの解析には .results を使用し、ライブデータかローカルデータかを確認するには .meta.source を使用してください。人が読める N results (live) の概要は、標準出力が端末の場合にのみ標準エラー出力に表示されます。パイプやエージェントから利用する場合、標準出力には純粋な JSON のみが出力されます。
エージェントからのフィードバック
この CLI について気になる点に(あなたまたはエージェントが)気づいたら、記録してください。
resend-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
resend-pp-cli feedback --stdin < notes.txt
resend-pp-cli feedback list --json --limit 10
記録はローカルの ~/.resend-pp-cli/feedback.jsonl に保存されます。RESEND_FEEDBACK_ENDPOINT が設定され、さらに --send が渡されているか、RESEND_FEEDBACK_AUTO_SEND=true が設定されている場合を除き、POST されることはありません。デフォルトの動作はローカルのみです。
バグ報告ではなく、意外だったことを書いてください。短く、具体的に、1 行で。それが積み重なる部分です。
出力の配信
すべてのコマンドで --deliver <sink> を指定できます。出力は指定したシンクに、標準出力に加えて、または標準出力の代わりに送られるため、エージェントはコマンド結果を手動でパイプ処理せずに振り分けられます。次の 3 つのシンクに対応しています。
| シンク | 動作 |
|---|---|
stdout | デフォルト。標準出力のみに書き込みます |
file:<path> | 出力を <path> にアトミックに書き込みます(tmp + rename) |
webhook:<url> | 出力本文を URL に POST します(--compact の場合は application/json または application/x-ndjson) |
不明なスキームは、対応するスキームを示す構造化エラーとともに拒否されます。Webhook が失敗すると、ゼロ以外の終了コードを返し、URL と HTTP ステータスを標準エラー出力に記録します。
名前付きプロファイル
プロファイルは、呼び出しをまたいで再利用されるフラグ値の保存セットです。スケジュールされたエージェントが、同じ設定で毎回同じコマンドを呼び出す場合に使用します。これは HeyGen の「Beacon」パターンです。
resend-pp-cli profile save briefing --json
resend-pp-cli --profile briefing api-keys list
resend-pp-cli profile list --json
resend-pp-cli profile show briefing
resend-pp-cli profile delete briefing --yes
明示的なフラグは常にプロファイルの値より優先され、プロファイルの値はデフォルトより優先されます。agent-context は、実行時に情報を調べるエージェントが検出できるよう、利用可能なすべてのプロファイルを available_profiles に一覧表示します。
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功 |
| 2 | 使用方法のエラー(引数が不正) |
| 3 | リソースが見つかりません |
| 4 | 認証が必要です |
| 5 | API エラー(上流の問題) |
| 7 | レート制限中(待ってから再試行してください) |
| 10 | 設定エラー |
引数の解析
$ARGUMENTS を解析します。
- 空、
help、または--help→resend-pp-cli --helpの出力を表示します installで始まる場合 →mcpで終わる場合は MCP のインストール。それ以外の場合は上記の前提条件を参照してください- それ以外 → 直接使用(CLI コマンドとして
--agentを付けて実行)
MCP サーバーのインストール
この CLI の公開ライブラリエントリまたはビルド済みリリースから MCP バイナリをインストールし、登録します。
claude mcp add resend-pp-mcp -- resend-pp-mcp
確認します:claude mcp list
直接使用
- インストール済みか確認します:
which resend-pp-cli見つからない場合は、インストールを提案します(このスキルの冒頭にある前提条件を参照してください)。 - ユーザーのクエリに最適なコマンドを、上記の固有の機能とコマンドリファレンスから選びます。
--agentフラグを付けて実行します。resend-pp-cli <command> [subcommand] [args] --agent- あいまいな場合は、サブコマンドのヘルプを確認します:
resend-pp-cli <command> --help