pp-twilio について
pp-twilio は、Twilio のメッセージや通話を調査する Printing Press CLI 用スキルです。エージェントや運用担当者向けに、サブアカウント横断の分析、通話関連情報の集約、コンプライアンス確認を提供します。
主な機能
- 01サブアカウント横断の費用・配信分析
- 02通話と録音・文字起こしの関連付け
- 03オプトアウトと Webhook URL の監査
- 04未使用電話番号の検出
- 05ステータス別メッセージのライブ取得
活用シーン
- 01最近のメッセージ配信失敗の調査
- 02CallSid による通話録音と文字起こしの確認
- 03オプトアウト後の送信を監査
- 04未使用番号と月額費用の特定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-twilioインストール後、Claude Code で/pp-twilioを入力して読み込まれたか確認します。
詳細
Twilio — Printing Press CLI
前提条件:CLI をインストールする
このスキルは twilio-pp-cli バイナリを使用します。このスキルのコマンドを実行する前に、CLI がインストールされていることを必ず確認してください。インストールされていない場合は、先にインストールしてください。
- Printing Press インストーラーを使用してインストールします。デフォルトでは、macOS/Linux では
$HOME/.local/bin、Windows では%LOCALAPPDATA%\Programs\PrintingPress\binにバイナリが配置されます。npx -y @mvanhorn/printing-press-library install twilio --cli-only - 確認します:
twilio-pp-cli --version - スキルを実行するエージェント/ランタイムの
$PATHに、表示されたインストールディレクトリが含まれていることを確認します。
npx によるインストールに失敗した場合(Node がない、オフラインなど)は、Go を直接インストールする方法に切り替えてください(Go 1.26.6 以降が必要です)。
go install github.com/mvanhorn/printing-press-library/library/social-and-messaging/twilio/cmd/twilio-pp-cli@latest
インストール後に --version が「command not found」と表示される場合、ランタイムからバイナリディレクトリが $PATH 経由で参照できていません。確認に成功するまで、スキルのコマンドを実行しないでください。
この CLI を使用する場面
エージェントやオペレーターが、1 回の API 呼び出しでは取得できない Twilio データを必要とするときに、この CLI を使用してください。たとえば、サブアカウントをまたいだ集計、配信失敗の分析、TCPA オプトアウトの監査、利用されていない電話番号の整理、「先週はどうだったか」といった質問に対応できます。また、1 つのコマンドで CallSid に紐づく Call、Recording、Transcription をまとめて確認できるため、インシデントのトリアージにも適しています。twilio-cli をすでに設定済みで、単発のメッセージ送信だけを行う場合は不要です。ただし、分析や調査を伴うワークフローでは、より高速で、オフラインでも使え、エージェントに適しています。
独自の機能
この API に対して、ほかのツールでは利用できない機能です。
蓄積されるローカル状態
-
delivery-failures— 先週のメッセージ配信失敗の理由を、エラーコードと宛先の国別にグループ化して確認できます。失敗にかかった費用の合計も表示されます。配信のデバッグでは、エージェントに必要なのは 4,000 件の個別の行ではなく、失敗の分布です。このコマンドを 1 回実行するだけで、「配信が低下している理由は何か」という問いに答えられます。
twilio-pp-cli delivery-failures --since 7d --json -
subaccount-spend— すべてのサブアカウントについて、先月の支出を SMS、MMS、音声、録音の各カテゴリ別に集計した CSV を 1 つ出力します。ほかでは提供されていない、代理店向けの請求レポートです。代理店のオペレーターにとって、これだけで月次請求レポート全体を 1 つのコマンドで取得できます。エージェントは
--period thisMonthを指定して、最新の予測を実行できます。twilio-pp-cli subaccount-spend --period last-month --csv > march-billing.csv -
message-status-funnel— メッセージの最終ステータス(delivered、failed、undelivered、sent)の分布を、配信率と配信までの時間の中央値とともに表示します。運用ダッシュボードに必要なのは、個々の行ではなくファネルです。クエリを 1 回実行するだけで、「現在、配信は正常か」という問いに答えられます。
twilio-pp-cli message-status-funnel --since 24h --json -
call-disposition— AnsweredBy(human、machine_start、fax)別に、通話ステータス(completed、busy、no-answer、failed、canceled)をクロス集計し、各区分の費用も表示します。アウトバウンドキャンペーンの最適化には、人間の応答率と留守番電話の応答率を把握する必要があります。エージェントは、何千件もの通話記録を確認しなくても、この情報を取得できます。
twilio-pp-cli call-disposition --since 7d --json
エンティティ横断の関連情報
-
call-trace— CallSid を指定すると、その通話で発生したすべての情報(メタデータ、録音、文字起こし、会議への参加状況)を、1 つの構造化された出力で返します。通話切断の通知を受けたオンコールエンジニアは、顧客を待たせたまま API を 3 回呼び出すのではなく、数秒で全体像を把握できます。
twilio-pp-cli call-trace CAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --json -
idle-numbers— N 日間、発信にも着信にも使われていないにもかかわらず料金が発生している電話番号と、毎月無駄になっている金額を表示します。番号 1 つにつき月額 1 ドルかかるため、100 件以上のサブアカウント番号を運用する代理店は、年間で数百ドルを節約できます。エージェントは毎月の整理タスクとして実行できます。
twilio-pp-cli idle-numbers --since 30d --json -
webhook-audit— IncomingPhoneNumbers を Voice/SMS の webhook URL ごとにグループ化し、削除済みのエンドポイントを参照している可能性がある、使い捨て URL を特定します。稼働中の HEAD チェックを行うには、--probe を追加します。孤立した webhook は、着信通話や SMS の失敗を気付かれないまま引き起こします。四半期ごとの監査は、気付かれないトラフィックの欠落に対する手軽な備えです。
twilio-pp-cli webhook-audit --probe --json -
conversation— 1 つの電話番号に関わるすべてのメッセージと通話を、送受信を示す矢印、本文、通話時間を含む、タイムスタンプ付きの単一のタイムラインにまとめます。顧客からの苦情や不正利用の申告を調査するとき、やり取りのすべてを 1 回のクエリで確認できます。エージェントは 4 回検索せずに、「この番号に何を伝えたか」に回答できます。
twilio-pp-cli conversation +14155551234 --json
コンプライアンスと監査
-
opt-out-violations— STOP/UNSUBSCRIBE/END/QUIT を送信した番号と、その後アカウントがそれらの番号に送信したメッセージを特定します。Twilio API に対応するリソースがない、TCPA リスクの確認機能です。TCPA の違反には 1 件あたり 500~1,500 ドルの罰金が科されます。コンプライアンスチームは四半期ごとに監査し、エージェントはいつでも抜き打ち確認できます。
twilio-pp-cli opt-out-violations --since 90d --json --select to,opt_out_at,subsequent_send_at,message_sid -
error-code-explain— 最近のメッセージと通話で発生した上位のエラーコードについて、よくある Twilio エラーの厳選された簡潔な説明と対処法を表示します。Twilio ユーザーは誰でもエラーコードを検索します。説明と発生件数をまとめて表示することで、頻繁なコンテキスト切り替えを減らせます。
twilio-pp-cli error-code-explain --since 7d --json
エージェント向けの基盤機能
-
sync-status— ローカルストア内のリソースごとに、最後の同期時刻と行数を表示します。これにより、ほかの分析コマンドのデータがどれほど新しいかを確認できます。データの鮮度を示す UX がなければ、どの分析コマンドの結果も信用できません。1 回の読み取りで、エージェントは先に sync を実行すべきか判断できます。
twilio-pp-cli sync-status --json -
tail-messages— ステータスでフィルターしながら、新しいメッセージを発生と同時にストリーミングします。これは twilio-cli にはない、twilio-pp-cli の --follow 機能です。インシデントのトリアージやオンコール対応には、ポーリングするシェルループではなく、失敗をリアルタイムに確認できるフィードが必要です。コマンド 1 つで、デーモンも不要です。
twilio-pp-cli tail-messages --status failed --follow
コマンドリファレンス
2010-04-01 — 2010 04 01 を管理します
twilio-pp-cli 2010-04-01 create-account— リクエストを行うアカウントから新しい Twilio サブアカウントを作成しますtwilio-pp-cli 2010-04-01 fetch-account— 指定された Account Sid のアカウントを取得しますtwilio-pp-cli 2010-04-01 list-account— リクエストを行う際に使用したアカウントに属するアカウントの一覧を取得しますtwilio-pp-cli 2010-04-01 update-account— 指定したアカウントのプロパティを変更します
addresses — 住所を管理します
twilio-pp-cli addresses delete-address— 住所を削除しますtwilio-pp-cli addresses fetch-address— 住所を取得しますtwilio-pp-cli addresses update-address— 住所を更新します
addresses-json — 住所の JSON を管理します
twilio-pp-cli addresses-json create-address— 住所を作成しますtwilio-pp-cli addresses-json list-address— 住所の一覧を表示します
applications — アプリケーションを管理します
twilio-pp-cli applications delete— 指定されたアプリケーション SID のアプリケーションを削除しますtwilio-pp-cli applications fetch— 指定された SID のアプリケーションを取得しますtwilio-pp-cli applications update— アプリケーションのプロパティを更新します
applications-json — アプリケーションの JSON を管理します
twilio-pp-cli applications-json create-application— アカウント内に新しいアプリケーションを作成しますtwilio-pp-cli applications-json list-application— リクエスト元のアカウント内のアプリケーションを表すアプリケーションの一覧を取得します
authorized-connect-apps — 認証済み Connect アプリを管理します
twilio-pp-cli authorized-connect-apps <AccountSid> <ConnectAppSid>— 認証済み Connect アプリのインスタンスを取得します
authorized-connect-apps-json — 認証済み Connect アプリの JSON を管理します
twilio-pp-cli authorized-connect-apps-json <AccountSid>— リクエストに使用されたアカウントに属する認証済み Connect アプリの一覧を取得します
available-phone-numbers — 利用可能な電話番号を管理します
twilio-pp-cli available-phone-numbers <AccountSid> <CountryCode>— 国を取得します
available-phone-numbers-json — 利用可能な電話番号の JSON を管理します
twilio-pp-cli available-phone-numbers-json <AccountSid>— 利用可能な電話番号の国の一覧を取得します
balance-json — 残高の JSON を管理します
twilio-pp-cli balance-json <AccountSid>— Account Sid に基づいてアカウントの残高を取得します。残高の変更はすぐに反映されない場合があります。子...
calls — 通話を管理します
twilio-pp-cli calls delete— アカウントから通話レコードを削除します。レコードを削除すると、API およびアカウントに表示されなくなります...twilio-pp-cli calls fetch— 指定された Call SID の通話を取得しますtwilio-pp-cli calls update— 通話の転送を開始するか、通話を終了します
calls-json — 通話の JSON を管理します
twilio-pp-cli calls-json create-call— 電話、SIP 対応エンドポイント、または Twilio Client 接続への新しい発信通話を作成しますtwilio-pp-cli calls-json list-call— アカウントとの間で行われた通話の一覧を取得します
conferences — 会議を管理します
twilio-pp-cli conferences fetch— 会議のインスタンスを取得しますtwilio-pp-cli conferences update— 更新します
conferences-json — 会議の JSON を管理します
twilio-pp-cli conferences-json <AccountSid>— リクエストに使用されたアカウントに属する会議の一覧を取得します
connect-apps — Connect アプリを管理します
twilio-pp-cli connect-apps delete— Connect アプリのインスタンスを削除しますtwilio-pp-cli connect-apps fetch— Connect アプリのインスタンスを取得しますtwilio-pp-cli connect-apps update— 指定されたパラメーターで Connect アプリを更新します
connect-apps-json — Connect アプリの JSON を管理します
twilio-pp-cli connect-apps-json <AccountSid>— リクエストに使用されたアカウントに属する Connect アプリの一覧を取得します
incoming-phone-numbers — 着信電話番号を管理します
twilio-pp-cli incoming-phone-numbers create-local— 市内番号を作成しますtwilio-pp-cli incoming-phone-numbers create-mobile— 携帯電話番号を作成しますtwilio-pp-cli incoming-phone-numbers create-toll-free— フリーダイヤル番号を作成しますtwilio-pp-cli incoming-phone-numbers delete— リクエストに使用されたアカウントに属する電話番号を削除します。twilio-pp-cli incoming-phone-numbers fetch— リクエストに使用されたアカウントに属する着信電話番号を取得します。twilio-pp-cli incoming-phone-numbers list-local— 市内番号の一覧を取得しますtwilio-pp-cli incoming-phone-numbers list-mobile— 携帯電話番号の一覧を取得しますtwilio-pp-cli incoming-phone-numbers list-toll-free— フリーダイヤル番号の一覧を取得しますtwilio-pp-cli incoming-phone-numbers update— 着信電話番号のインスタンスを更新します。
incoming-phone-numbers-json — 着信電話番号の JSON を管理します
twilio-pp-cli incoming-phone-numbers-json create-incoming-phone-number— アカウント用の電話番号を購入します。twilio-pp-cli incoming-phone-numbers-json list-incoming-phone-number— リクエストに使用されたアカウントに属する着信電話番号の一覧を取得します。
keys — キーを管理します
twilio-pp-cli keys delete— 削除しますtwilio-pp-cli keys fetch— 取得しますtwilio-pp-cli keys update— 更新します
keys-json — キーの JSON を管理します
twilio-pp-cli keys-json create-new-key— 新しいキーを作成twilio-pp-cli keys-json list-key— キーを一覧表示
messages — メッセージを管理
twilio-pp-cli messages delete— アカウントから Message リソースを削除しますtwilio-pp-cli messages fetch— 特定の Message を取得しますtwilio-pp-cli messages update— Message リソースを更新します(Message のbodyテキストの編集や、未送信メッセージのキャンセルに使用します)
messages-json — メッセージの JSON を管理
twilio-pp-cli messages-json create-message— メッセージを送信twilio-pp-cli messages-json list-message— Twilio アカウントに関連付けられた Message リソースの一覧を取得します
notifications — 通知を管理
twilio-pp-cli notifications <AccountSid> <Sid>— リクエストに使用したアカウントに属する通知を取得します
notifications-json — 通知の JSON を管理
twilio-pp-cli notifications-json <AccountSid>— リクエストに使用したアカウントに属する通知の一覧を取得します
outgoing-caller-ids — 発信者 ID を管理
twilio-pp-cli outgoing-caller-ids delete— 指定した発信者 ID をアカウントから削除しますtwilio-pp-cli outgoing-caller-ids fetch— リクエストに使用したアカウントに属する発信者 ID を取得しますtwilio-pp-cli outgoing-caller-ids update— 発信者 ID を更新します
outgoing-caller-ids-json — 発信者 ID の JSON を管理
twilio-pp-cli outgoing-caller-ids-json create-validation-request— 検証リクエストを作成twilio-pp-cli outgoing-caller-ids-json list-outgoing-caller-id— リクエストに使用したアカウントに属する発信者 ID の一覧を取得します
queues — キューを管理
twilio-pp-cli queues delete— 空のキューを削除しますtwilio-pp-cli queues fetch— QueueSid で識別されるキューのインスタンスを取得しますtwilio-pp-cli queues update— 新しいパラメーターでキューを更新します
queues-json — キューの JSON を管理
twilio-pp-cli queues-json create-queue— キューを作成twilio-pp-cli queues-json list-queue— リクエストに使用したアカウントに属するキューの一覧を取得します
recordings — 録音を管理
twilio-pp-cli recordings delete— アカウントから録音を削除しますtwilio-pp-cli recordings fetch— 録音のインスタンスを取得します
recordings-json — 録音の JSON を管理
twilio-pp-cli recordings-json <AccountSid>— リクエストに使用したアカウントに属する録音の一覧を取得します
signing-keys — 署名キーを管理
twilio-pp-cli signing-keys delete— 削除twilio-pp-cli signing-keys fetch— 取得twilio-pp-cli signing-keys update— 更新
signing-keys-json — 署名キーの JSON を管理
twilio-pp-cli signing-keys-json create-new-signing-key— リクエストを行うアカウントの新しい Signing Key を作成します。twilio-pp-cli signing-keys-json list-signing-key— 署名キーを一覧表示
sip — SIP を管理
-
twilio-pp-cli sip create-auth-calls-credential-list-mapping— 新しい認証情報リストマッピングリソースを作成します -
twilio-pp-cli sip create-auth-calls-ip-access-control-list-mapping— 新しい IP アクセス制御リストマッピングを作成します -
twilio-pp-cli sip create-auth-registrations-credential-list-mapping— 新しい認証情報リストマッピングリソースを作成します -
twilio-pp-cli sip create-credential— 新しい認証情報リソースを作成します。 -
twilio-pp-cli sip create-credential-list— 認証情報リストを作成します -
twilio-pp-cli sip create-credential-list-mapping— アカウント用の CredentialListMapping リソースを作成します。 -
twilio-pp-cli sip create-domain— 新しいドメインを作成します -
twilio-pp-cli sip create-ip-access-control-list— 新しい IpAccessControlList リソースを作成します -
twilio-pp-cli sip create-ip-access-control-list-mapping— 新しい IpAccessControlListMapping リソースを作成します。 -
twilio-pp-cli sip create-ip-address— 新しい IpAddress リソースを作成します。 -
twilio-pp-cli sip delete-auth-calls-credential-list-mapping— リクエストされたドメインから認証情報リストマッピングを削除します -
twilio-pp-cli sip delete-auth-calls-ip-access-control-list-mapping— リクエストされたドメインから IP アクセス制御リストマッピングを削除します -
twilio-pp-cli sip delete-auth-registrations-credential-list-mapping— リクエストされたドメインから認証情報リストマッピングを削除します -
twilio-pp-cli sip delete-credential— 認証情報リソースを削除します。 -
twilio-pp-cli sip delete-credential-list— 認証情報リストを削除します -
twilio-pp-cli sip delete-credential-list-mapping— アカウントから CredentialListMapping リソースを削除します。 -
twilio-pp-cli sip delete-domain— ドメインのインスタンスを削除します -
twilio-pp-cli sip delete-ip-access-control-list— リクエストされたアカウントから IpAccessControlList を削除します -
twilio-pp-cli sip delete-ip-access-control-list-mapping— IpAccessControlListMapping リソースを削除します。 -
twilio-pp-cli sip delete-ip-address— IpAddress リソースを削除します。 -
twilio-pp-cli sip fetch-auth-calls-credential-list-mapping— 認証情報リストマッピングの特定のインスタンスを取得します -
twilio-pp-cli sip fetch-auth-calls-ip-access-control-list-mapping— IP アクセス制御リストマッピングの特定のインスタンスを取得します -
twilio-pp-cli sip fetch-auth-registrations-credential-list-mapping— 認証情報リストマッピングの特定のインスタンスを取得します -
twilio-pp-cli sip fetch-credential— 単一の認証情報を取得します。 -
twilio-pp-cli sip fetch-credential-list— 認証情報リストを取得します -
twilio-pp-cli sip fetch-credential-list-mapping— アカウントから単一の CredentialListMapping リソースを取得します。 -
twilio-pp-cli sip fetch-domain— ドメインのインスタンスを取得します -
twilio-pp-cli sip fetch-ip-access-control-list— IpAccessControlList の特定のインスタンスを取得します -
twilio-pp-cli sip fetch-ip-access-control-list-mapping— IpAccessControlListMapping リソースを取得します。 -
twilio-pp-cli sip fetch-ip-address— 1 つの IpAddress リソースを読み取ります。 -
twilio-pp-cli sip list-auth-calls-credential-list-mapping— リクエストで使用されたドメインに属する認証情報リストマッピングの一覧を取得します -
twilio-pp-cli sip list-auth-calls-ip-access-control-list-mapping— リクエストで使用されたドメインに属する IP アクセス制御リストマッピングの一覧を取得します -
twilio-pp-cli sip list-auth-registrations-credential-list-mapping— リクエストで使用されたドメインに属する認証情報リストマッピングの一覧を取得します -
twilio-pp-cli sip list-credential— 認証情報の一覧を取得します。 -
twilio-pp-cli sip list-credential-list— すべての認証情報リストを取得します -
twilio-pp-cli sip list-credential-list-mapping— アカウントから複数の CredentialListMapping リソースを読み取ります。 -
twilio-pp-cli sip list-domain— リクエストに使用されたアカウントに属するドメインの一覧を取得します -
twilio-pp-cli sip list-ip-access-control-list— リクエストに使用されたアカウントに属する IpAccessControlList の一覧を取得します -
twilio-pp-cli sip list-ip-access-control-list-mapping— IpAccessControlListMapping リソースの一覧を取得します。 -
twilio-pp-cli sip list-ip-address— 複数の IpAddress リソースを読み取ります。 -
twilio-pp-cli sip update-credential— 認証情報リソースを更新します。 -
twilio-pp-cli sip update-credential-list— 認証情報リストを更新します -
twilio-pp-cli sip update-domain— ドメインの属性を更新します -
twilio-pp-cli sip update-ip-access-control-list— IpAccessControlList の名前を変更します -
twilio-pp-cli sip update-ip-address— IpAddress リソースを更新します。 sms — SMS を管理 -
twilio-pp-cli sms fetch-short-code— ショートコードのインスタンスを取得 -
twilio-pp-cli sms list-short-code— リクエストに使用したアカウントに属するショートコードの一覧を取得 -
twilio-pp-cli sms update-short-code— 次のパラメーターを使用してショートコードを更新
tokens-json — tokens json を管理
twilio-pp-cli tokens-json <AccountSid>— ICE サーバー用の新しいトークンを作成
transcriptions — 文字起こしを管理
twilio-pp-cli transcriptions delete— リクエストに使用したアカウントから文字起こしを削除twilio-pp-cli transcriptions fetch— 文字起こしのインスタンスを取得
transcriptions-json — transcriptions json を管理
twilio-pp-cli transcriptions-json <AccountSid>— リクエストに使用したアカウントに属する文字起こしの一覧を取得
usage — 使用状況を管理
twilio-pp-cli usage create-trigger— 新しい UsageTrigger を作成twilio-pp-cli usage delete-trigger— トリガーを削除twilio-pp-cli usage fetch-trigger— 使用状況トリガーのインスタンスを取得twilio-pp-cli usage list-record— リクエストに使用したアカウントに属する使用状況レコードの一覧を取得twilio-pp-cli usage list-record-all-time— 全期間のレコードを一覧表示twilio-pp-cli usage list-record-daily— 日次レコードを一覧表示twilio-pp-cli usage list-record-last-month— 先月のレコードを一覧表示twilio-pp-cli usage list-record-monthly— 月次レコードを一覧表示twilio-pp-cli usage list-record-this-month— 今月のレコードを一覧表示twilio-pp-cli usage list-record-today— 今日のレコードを一覧表示twilio-pp-cli usage list-record-yearly— 年次レコードを一覧表示twilio-pp-cli usage list-record-yesterday— 昨日のレコードを一覧表示twilio-pp-cli usage list-trigger— リクエストに使用したアカウントに属する使用状況トリガーの一覧を取得twilio-pp-cli usage update-trigger— 使用状況トリガーのインスタンスを更新
適切なコマンドを見つける
やりたいことは分かっているものの、どのコマンドを使えばよいか分からない場合は、CLI に直接問い合わせてください。
twilio-pp-cli which "<capability in your own words>"
which は自然言語による機能の問い合わせを、この CLI の厳選された機能インデックスから最適なコマンドに対応付けます。終了コード 0 は少なくとも 1 件の一致があることを示します。終了コード 2 は確信度の高い一致がないことを示します。その場合は --help にフォールバックするか、より具体的な問い合わせを使用してください。
レシピ
週次配信失敗レポート
twilio-pp-cli delivery-failures --since 7d --json --select error_code,to_country,count,cost_total
ローカルストアに対して失敗の集計を実行し、エージェントが 4000 件の生データを解析せずに要約できるよう、重要な 4 つのフィールドに応答を絞り込みます。
先月分の代理店請求 CSV
twilio-pp-cli subaccount-spend --period last-month --csv > march-billing.csv
すべてのサブアカウントを順に処理し、サブアカウントごとに usage/records を呼び出して、カテゴリを列にピボットします。財務チームがそのままスプレッドシートに貼り付けられる、横長の CSV を 1 つ出力します。
Slack のページ通知からオンコールの通話トレースを取得
twilio-pp-cli call-trace CAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --json --select call.status,call.duration,recordings,transcriptions.text
Call → Recording → Transcription の一連の処理を 1 つのコマンドで実行します。ドット区切りのパスを指定した --select を使用すると、エージェントが Slack の返信で要約できる程度に応答を小さくできます。
四半期ごとの TCPA オプトアウト監査
twilio-pp-cli opt-out-violations --since 90d --csv > q1-opt-out-audit.csv
ローカルで時系列結合を行い、受信した STOP/UNSUBSCRIBE メッセージと、同じ番号宛てにその後送信されたメッセージを検出します。コンプライアンスチームが現在、法務チームに手作業で作成を依頼しているレポートです。
無駄な費用が発生している未使用の番号を見つける
twilio-pp-cli idle-numbers --since 30d --json --select phone_number,friendly_name,monthly_cost,last_activity
IncomingPhoneNumbers / Messages / Calls に対する LEFT JOIN により、30 日間アクティビティのない番号を特定します。出力は番号ごとに 1 行で、毎月無駄になっている金額を示します。
認証の設定
Twilio は HTTP Basic 認証を使用します。Account SID(AC...)と Auth Token、またはスコープ付き API Key SID(SK...)とその Secret を使って認証できます。Account SID は URL パスの一部であるため、常に必要です。twilio-pp-cli doctor を実行すると、認証情報を検証し、キーがマスターキーかスコープ付きキーかを判定し、親アカウントとサブアカウントの不一致があれば警告します。
設定を確認するには、twilio-pp-cli doctor を実行してください。
エージェントモード
任意のコマンドに --agent を追加します。次のオプションに展開されます:--json --compact --no-input --no-color --yes。
-
パイプ可能 — stdout に JSON、stderr にエラーを出力します
-
フィルタ可能 —
--selectでフィールドを絞り込みます。ドット区切りのパスはネストされた構造をたどり、配列では各要素をたどります。出力の多い API でコンテキストを小さく保つために重要です:twilio-pp-cli 2010-04-01 create-account --agent --select id,name,status -
プレビュー可能 —
--dry-runで送信せずにリクエストを表示します -
オフライン対応 — 同期/検索コマンドは、利用可能な場合にローカルの SQLite ストアを使用できます
-
非対話型 — プロンプトを表示せず、すべての入力をフラグで指定します
-
明示的な再試行 — すでに存在する対象の作成を成功として扱う場合に限り
--idempotentを使用し、削除対象が存在しない場合に成功として扱う場合に限り--ignore-missingを使用します
レスポンスエンベロープ
ローカルストアまたは API からデータを読み取るコマンドは、出力をプロベナンスエンベロープでラップします:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
データには .results を解析し、ライブかローカルかを確認するには .meta.source を参照してください。人間が読める N results (live) という概要は、stdout がターミナルの場合に限り stderr に出力されます。パイプ/エージェントの利用者には、stdout に純粋な JSON が渡されます。
エージェントからのフィードバック
この CLI に問題があると気づいた場合は(エージェントが気づいた場合も)、記録してください:
twilio-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
twilio-pp-cli feedback --stdin < notes.txt
twilio-pp-cli feedback list --json --limit 10
エントリはローカルの ~/.twilio-pp-cli/feedback.jsonl に保存されます。TWILIO_FEEDBACK_ENDPOINT が設定され、かつ --send が渡されているか TWILIO_FEEDBACK_AUTO_SEND=true の場合を除き、POST されることはありません。デフォルトではローカルにのみ保存されます。
バグ報告ではなく、意外だったことを書いてください。短く、具体的に、1 行で記録します。積み重ねるべきなのは、まさにその部分です。
出力の配信
すべてのコマンドで --deliver <sink> を指定できます。出力は stdout に加えて、または stdout の代わりに、指定したシンクへ送信されるため、エージェントは手作業でパイプをつながずにコマンド結果を振り分けられます。対応するシンクは 3 種類です:
| シンク | 動作 |
|---|---|
stdout | デフォルト。stdout のみに出力します |
file:<path> | 出力を <path> にアトミックに書き込みます(tmp + rename) |
webhook:<url> | 出力本文を URL に POST します(--compact の場合は application/json または application/x-ndjson) |
不明なスキームは、対応するスキームの一覧を含む構造化エラーで拒否されます。Webhook の失敗時はゼロ以外の終了コードが返され、URL と HTTP ステータスが stderr に記録されます。
名前付きプロファイル
プロファイルは、保存したフラグ値のセットで、複数回の実行で再利用できます。スケジュールされたエージェントが、毎回同じ設定で同じコマンドを呼び出す場合に使用します。これは HeyGen の「Beacon」パターンです。
twilio-pp-cli profile save briefing --json
twilio-pp-cli --profile briefing 2010-04-01 create-account
twilio-pp-cli profile list --json
twilio-pp-cli profile show briefing
twilio-pp-cli profile delete briefing --yes
明示的なフラグは常にプロファイルの値より優先され、プロファイルの値はデフォルトより優先されます。agent-context は available_profiles に利用可能なすべてのプロファイルを一覧表示するため、情報を調べるエージェントは実行時にプロファイルを検出できます。
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功 |
| 2 | 使用方法エラー(引数が不正) |
| 3 | リソースが見つかりません |
| 4 | 認証が必要です |
| 5 | API エラー(上流の問題) |
| 7 | レート制限中(待機して再試行してください) |
| 10 | 設定エラー |
引数の解析
$ARGUMENTS を解析します:
- 空、
help、または--help→twilio-pp-cli --helpの出力を表示します installで始まる →mcpで終わる場合は MCP のインストール、それ以外の場合は上記の前提条件を参照してください- それ以外 → 直接使用(CLI コマンドとして
--agentを付けて実行)
MCP サーバーのインストール
- MCP サーバーをインストールします:
go install github.com/mvanhorn/printing-press-library/library/social-and-messaging/twilio/cmd/twilio-pp-mcp@latest - Claude Code に登録します:
claude mcp add twilio-pp-mcp -- twilio-pp-mcp - 確認します:
claude mcp list
直接使用
- インストール済みか確認します:
which twilio-pp-cli見つからない場合は、インストールを提案します(このスキルの冒頭にある前提条件を参照してください)。 - ユーザーのクエリに最適なコマンドを、上記の固有の機能とコマンドリファレンスから選びます。
--agentフラグを付けて実行します:twilio-pp-cli <command> [subcommand] [args] --agent- 判断が難しい場合は、サブコマンドのヘルプを確認します:
twilio-pp-cli <command> --help。