pp-slickdeals について
Printing Press CLI で Slickdeals にアクセスするスキルで、セール、クーポン、販売店の動向を追うエージェント向けです。ライブフィードとローカルの SQLite スナップショットを組み合わせ、オフライン照会や時系列分析を行えます。
主な機能
- 01ライブのトップページセールとクーポンの閲覧
- 02セール検索とカテゴリ絞り込み
- 03セールのスナップショットをローカル保存
- 04販売店と期間を指定したスナップショット照会
- 05販売店ランキングと評価数の増加分析
活用シーン
- 01現在評価の高いセールを探す
- 02セールへのコミュニティ評価の推移を追跡
- 03保存データから最近のセール概要を作成
- 04期間内の販売店ごとのセール動向を比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-slickdealsインストール後、Claude Code で/pp-slickdealsを入力して読み込まれたか確認します。
詳細
Slickdeals — Printing Press CLI
前提条件:CLI のインストール
このスキルは slickdeals-pp-cli バイナリを使用します。**このスキルのコマンドを実行する前に、CLI がインストールされていることを必ず確認してください。**インストールされていない場合は、先にインストールしてください。
- Printing Press インストーラーを使ってインストールします。バイナリのインストール先は、macOS/Linux では
$HOME/.local/bin、Windows では%LOCALAPPDATA%\Programs\PrintingPress\binがデフォルトです。npx -y @mvanhorn/printing-press-library install slickdeals --cli-only - 確認します:
slickdeals-pp-cli --version - 報告されたインストールディレクトリが、このスキルを実行するエージェント/ランタイムの
$PATHに含まれていることを確認します。
npx によるインストールに失敗した場合(Node がない、オフラインなど)は、Go から直接インストールしてください(Go 1.26.6 以降が必要です)。
go install github.com/mvanhorn/printing-press-library/library/commerce/slickdeals/cmd/slickdeals-pp-cli@latest
インストール後に --version が「command not found」と報告する場合、ランタイムからバイナリのディレクトリを $PATH 経由で認識できていません。確認が成功するまで、スキルのコマンドを実行しないでください。
この CLI を使用する場面
ホットディール、フロントページのフィード、クーポン、カテゴリの閲覧、長期的なローカルディール追跡など、Slickdeals のデータにエージェントからアクセスする必要がある場合に、この CLI を使用してください。v0.2 リリースでは、v0.1 の Nuxt エンドポイントのラッピングに加えて、ライブのフロントページデータを取得する RSS インターフェースと、ローカルの SQLite スナップショットストアが追加されました。これにより、エージェントはディールの勢いを追跡し、複合クエリを実行して、完全にオフラインで販売業者の分析を生成できます。
独自の機能
これらの機能は、この API のほかのツールでは利用できません。
hot— ライブのフロントページから、最小サムズアップ数で絞り込んだ人気ディールを取得し、サムズアップ数の降順で並べ替えます。frontpage-fresh— フィルターなしで、ライブのフロントページ RSS フィード(本日の新着)を取得します。popular— Slickdeals の「人気ディール」フィードを取得します(コミュニティの投票によるもので、編集者が選定するフロントページとは異なります)。v0.3 で追加search --live—q=パラメーターを使った、サーバーサイドの実際のキーワード検索です。--forum Nで検索対象のフォーラムを指定することもできます。v0.3 で修正 — v0.2 ではパラメーター名が誤っていたため、クライアントサイドのフィルタリングに暗黙的にフォールバックしていました。category—forumchoice[]=Nを使った、フォーラム単位の RSS フィードです。Slickdeals が案内している 5 つのフォーラム ID:4(無料特典)、9(ホットディール)、10(クーポン)、25(コンテスト)、38(ドラッグストア/食料品)。v0.3 で書き換えられ、v0.2 のクライアントサイドのキーワードマップではなく、サーバーサイドの実際のフィルタリングを使うようになりました。coupons— ライブのおすすめクーポン一覧を取得します。--storeで販売業者を指定して絞り込むこともできます(Nuxt JSON エンドポイント)。watch— ライブのフロントページ RSS から単一のディールを取得します。時系列分析用にスナップショットの行を保存することもできます。digest— 指定期間内に取得された上位 N 件のスナップショットを要約します。販売業者ごとの件数上限の設定や、販売業者/カテゴリ別のグループ化もできます。deals— 取得したスナップショットに対する主要な SQL 複合クエリです:--store costco --since 24h --min-thumbs 50。analytics top-stores— 期間内の販売業者の集計:ディール件数、平均サムズアップ数、最大サムズアップ数、初回/最終確認時刻。analytics thumbs-velocity— ディールのサムズアップ数を時系列で記録し、各ステップの差分も示します。裁定取引や自動スナイプにおけるモメンタムシグナルとして利用できます。
HTTP トランスポート
この CLI は、ブラウザー向けエンドポイントに Chrome 互換の HTTP トランスポートを使用します。通常の API 呼び出しに、常駐するブラウザープロセスは必要ありません。
コマンドリファレンス
v0.1 のコマンド(Nuxt エンドポイントのラッパー)
ad-stats — ad-events に関する操作
slickdeals-pp-cli ad-stats <id>— POST /ad-stats/{id}/ad-events
ajax — bSubNavPlacement.php に関する操作
slickdeals-pp-cli ajax create_threadrate.php— POST /ajax/threadrate.phpslickdeals-pp-cli ajax list_bSubNavPlacement.php— GET /ajax/bSubNavPlacement.php
frontpage — おすすめに関する操作
slickdeals-pp-cli frontpage list_json— GET /frontpage/promoted-content/jsonslickdeals-pp-cli frontpage list_recommendations— GET /frontpage/recommendation-carousel/recommendations
web-api — missed-deals に関する操作
slickdeals-pp-cli web-api list_featured_coupons— GET /web-api/frontpage/featured-coupons/slickdeals-pp-cli web-api list_missed_deals— GET /web-api/frontpage/missed-deals/
v0.2 コマンド(ライブ RSS とローカルスナップショットの活用)
hot — サムズアップ数が多い Slickdeals のフロントページのセール(ライブ RSS)
slickdeals-pp-cli hot [--min-thumbs N] [--limit N]— ライブのフロントページ RSS を取得し、コミュニティのサムズアップ数が--min-thumbs以上のセールのみを表示します。結果はサムズアップ数の降順で並びます。クライアント側でフィルターします(forum=9&hotdeals=1の RSS パラメーターは空のフィードを返します)。
frontpage-fresh — 最新の Slickdeals フロントページ RSS フィード(ライブ、フィルターなし)
slickdeals-pp-cli frontpage-fresh [--limit N]— ライブのフロントページ RSS(/newsearch.php?mode=frontpage&rss=1)から今日の新着を取得します。フィードの順序(新しいものが先)で表示します。v0.1 のfrontpage list-jsonとは異なり、Nuxt によるキャッシュは使用しません。
search — 同期済みデータまたはライブ API を対象とする全文検索
slickdeals-pp-cli search "<query>" [--live] [--limit N]— ローカルに同期したデータを FTS5 で検索します。--liveを指定すると、ライブの RSS 検索エンドポイントを使用します。フロントページフィードに対してクライアント側でキーワードフィルターを実行します(Slickdeals の RSS はサーバー側のsearch=パラメーターに対応していません)。
category — Slickdeals のフォーラムカテゴリー別にセールを表示
slickdeals-pp-cli category <id|name> [--limit N]— 数値 ID またはわかりやすい名前(例:tech、gaming)でフォーラムカテゴリーを指定し、ライブ RSS のセールを取得します。組み込みのカテゴリーとフォーラム ID の対応表をすべて表示するには、--listを使用します。フロントページフィードに対してクライアント側でフィルターします。
coupons — Slickdeals のおすすめクーポン一覧(ライブ Nuxt JSON)
slickdeals-pp-cli coupons [--store <name>] [--limit N]—/web-api/frontpage/featured-coupons/を通じて、ライブのおすすめクーポン一覧を取得します。RSS のクーポンフィルター(f2=1)は機能せず、Slickdeals が無視してフロントページフィードを返すため、Nuxt エンドポイントを使用します。
watch — ライブのフロントページ RSS フィードから、ID を指定して Slickdeals のセールを 1 件取得
slickdeals-pp-cli watch <deal-id> [--persist] [--once]— 現在のフロントページ RSS を取得し、一致する項目を報告します。後でdigest/deals/analyticsのクエリに使用できるよう、スナップショットをローカルの SQLite ストアに書き込むには--persistを指定します。--onceがデフォルトです(v0.2)。バックグラウンドでのポーリングは v0.3 で対応します。
digest — 直近の期間にローカルで取得した上位のセールを要約
slickdeals-pp-cli digest [--since 24h] [--top N] [--merchant-cap N] [--grouped-by merchant|category]— ローカルのdeal_snapshotsストアを読み込み、指定期間内の上位のセールをサムズアップ数の降順で返します。スナップショットはwatch --persistによって登録されます。ストアが空の場合は、ヒントと空のエンベロープを返します。
deals — ローカルに取得したセールのスナップショットに対する複合クエリ
slickdeals-pp-cli deals [--store <name>] [--category <name>] [--since <dur>] [--min-thumbs N] [--deal-id <id>] [--latest]— ローカルのdeal_snapshotsテーブルに対して SQL の複合クエリを実行します。デフォルトでは、セールごとの最新のスナップショットを返します(--latest=true)。ライブフィードにはアクセスしません。
analytics top-stores — 指定期間のセール件数とサムズアップ数で販売業者を順位付け
slickdeals-pp-cli analytics top-stores [--window 30d] [--limit N]— 指定期間のdeal_snapshotsを販売業者ごとに集計し、セールの重複なし件数、次いでサムズアップ数の最大値の順に並べます。期間には--sinceと同じ接尾辞(30d、24h、1w、30m)を指定できます。全期間を対象にするには0を指定します。
analytics thumbs-velocity — 1 件のセールのサムズアップ数の時系列と増減
slickdeals-pp-cli analytics thumbs-velocity <deal-id>— 1 件のセール ID に対するサムズアップ数の観測結果を時系列順に返します。各行にはサムズアップ数と前回の観測からの増減が含まれます(最初の観測点は 0)。
適切なコマンドを見つける
実行したい操作はわかっていても、どのコマンドを使うのかわからない場合は、CLI に直接問い合わせてください。
slickdeals-pp-cli which "<capability in your own words>"
which は、自然言語での機能に関する問い合わせを、この CLI の厳選された機能インデックスから最適なコマンドに対応付けます。終了コード 0 は一致する候補が 1 つ以上あることを示し、終了コード 2 は信頼できる候補がないことを示します。その場合は --help を確認するか、より具体的な問い合わせを使用してください。
レシピ
本日の注目セールを取得する
slickdeals-pp-cli hot --json --limit 10
コミュニティの評価スコア順で、トップページのセール上位10件を降順で返します(デフォルトでは評価数が20以上)。基準を引き上げるには、--min-thumbs 50を追加します。
セールの推移を追跡する
# Capture a snapshot now
slickdeals-pp-cli watch 19510173 --persist --json
# After multiple captures, inspect thumb velocity
slickdeals-pp-cli analytics thumbs-velocity 19510173 --json
各watch --persistは、タイムスタンプ付きの行をdeal_snapshotsに書き込みます。velocityコマンドでは、各行の差分とともに、観測ごとの評価数の推移を表示します。
日次ダイジェスト
slickdeals-pp-cli digest --since 24h --top 20 --merchant-cap 3 --json
過去24時間に取得したセール上位20件を要約し、同じ販売業者の掲載数を最大3件に制限します。スナップショットストアにデータを保存するには、少なくとも1回watch --persistを実行しておく必要があります。
複合クエリ
slickdeals-pp-cli deals --store costco --since 24h --min-thumbs 50 --json
ローカルのスナップショットをSQLで絞り込みます。過去1日以内の、評価数が50以上のCostcoのセールを対象に、各セールの最新スナップショットだけを残します。
カテゴリー別に閲覧する
# List all known categories
slickdeals-pp-cli category --list
# Browse tech deals live
slickdeals-pp-cli category tech --json
組み込みのフォーラム→キーワードマップを使って、指定したカテゴリーのライブRSSセールを取得します。数値のフォーラムID、またはわかりやすい名前(tech、gaming、homeなど)を渡します。
認証の設定
認証は不要です。
slickdeals-pp-cli doctorを実行して、セットアップを確認してください。
エージェントモード
任意のコマンドに--agentを追加します。次のオプションに展開されます:--json --compact --no-input --no-color --yes。
-
パイプ可能 — stdoutにはJSON、stderrにはエラーが出力されます
-
フィルタリング可能 —
--selectでフィールドを絞り込めます。ドット区切りのパスでネストされた構造をたどり、配列では各要素をたどります。出力の多いAPIでコンテキストを小さく保つために重要です:slickdeals-pp-cli ad-stats mock-value --breakpoint example-value --agent --select id,name,status -
プレビュー可能 —
--dry-runで、送信せずにリクエストを表示します -
オフライン対応 — sync/searchコマンドは、利用可能な場合にローカルのSQLiteストアを使用できます
-
非対話型 — プロンプトは表示されず、すべての入力をフラグで指定します
-
明示的な再試行 — すでに存在するものの作成を成功として扱う場合に限り、
--idempotentを使用します
レスポンスのエンベロープ
ローカルストアまたはAPIから読み取るコマンドは、出力をデータの出所を示すエンベロープで包みます:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
データには.resultsを解析し、ライブデータかローカルデータかを確認するには.meta.sourceを参照します。人間が読みやすいN results (live)という概要は、stdoutがターミナルの場合に限りstderrに出力されます。パイプやエージェントから利用する場合、stdoutにはJSONのみが出力されます。
エージェントからのフィードバック
あなた(またはエージェント)がこのCLIの気になる点に気づいたら、記録してください:
slickdeals-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
slickdeals-pp-cli feedback --stdin < notes.txt
slickdeals-pp-cli feedback list --json --limit 10
エントリーはローカルの~/.slickdeals-pp-cli/feedback.jsonlに保存されます。SLICKDEALS_FEEDBACK_ENDPOINTが設定されており、かつ--sendが渡された場合、またはSLICKDEALS_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」パターンです。
slickdeals-pp-cli profile save briefing --json
slickdeals-pp-cli --profile briefing ad-stats mock-value --breakpoint example-value
slickdeals-pp-cli profile list --json
slickdeals-pp-cli profile show briefing
slickdeals-pp-cli profile delete briefing --yes
明示的なフラグは常にプロファイルの値より優先され、プロファイルの値はデフォルトより優先されます。agent-contextは、利用可能なプロファイルをすべてavailable_profilesに一覧表示するため、情報を調べるエージェントは実行時にプロファイルを検出できます。
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功 |
| 2 | 使用方法のエラー(引数が不正) |
| 3 | リソースが見つかりません |
| 5 | APIエラー(上流の問題) |
| 7 | レート制限中(待ってから再試行してください) |
| 10 | 設定エラー |
引数の解析
$ARGUMENTS を解析します。
- 空、
help、または--help→slickdeals-pp-cli --helpの出力を表示します installで始まる →mcpで終わる → MCP のインストール、それ以外 → 上記の前提条件を確認します- それ以外 → 直接使用(CLI コマンドとして
--agentを付けて実行します)
MCP サーバーのインストール
この CLI の公開ライブラリエントリまたはビルド済みリリースから MCP バイナリをインストールし、登録します。
claude mcp add slickdeals-pp-mcp -- slickdeals-pp-mcp
確認します:claude mcp list
直接使用
- インストール済みか確認します:
which slickdeals-pp-cli見つからない場合は、インストールを提案します(このスキルの冒頭にある前提条件を参照してください)。 - ユーザーのクエリに最適なコマンドを、上記の「独自の機能」と「コマンドリファレンス」から選びます。
--agentフラグを付けて実行します。slickdeals-pp-cli <command> [subcommand] [args] --agent- 曖昧な場合は、サブコマンドのヘルプを確認します:
slickdeals-pp-cli <command> --help