pp-redfin について
pp-redfin は、構造化された Redfin の物件・市場データを扱う、エージェントやユーザー向けの読み取り専用コマンドラインスキルです。ローカルデータの比較、保存した検索の変化追跡、地域横断分析、一括エクスポートができます。
主な機能
- 01物件検索と詳細情報の取得
- 02保存した検索の物件変化を追跡
- 03価格指標による物件の順位付け
- 04物件比較と成約事例の検索
- 05複数地域の市場分析
- 06物件データの一括エクスポート
活用シーン
- 01保存検索で価格や状態の変化を監視
- 02複数地域の物件を比較
- 03対象物件の最近の成約事例を検索
- 04転居候補地域の市場動向を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-redfinインストール後、Claude Code で/pp-redfinを入力して読み込まれたか確認します。
詳細
Redfin — Printing Press CLI
前提条件:CLI のインストール
このスキルは redfin-pp-cli バイナリを使用します。**このスキルのコマンドを実行する前に、CLI がインストールされていることを必ず確認してください。**インストールされていない場合は、まずインストールします。
- Printing Press インストーラーを使ってインストールします。macOS/Linux では既定で
$HOME/.local/binに、Windows では%LOCALAPPDATA%\Programs\PrintingPress\binにバイナリがインストールされます。npx -y @mvanhorn/printing-press-library install redfin --cli-only - 確認します:
redfin-pp-cli --version - 報告されたインストールディレクトリが、このスキルを実行するエージェント/ランタイムの
$PATHに含まれていることを確認します。
npx によるインストールが失敗した場合(Node がない、オフラインなど)は、Go による直接インストールに切り替えます(Go 1.26.6 以降が必要です)。
go install github.com/mvanhorn/printing-press-library/library/other/redfin/cmd/redfin-pp-cli@latest
インストール後に --version が「command not found」と表示される場合、ランタイムからバイナリディレクトリを $PATH 経由で参照できていません。確認に成功するまで、スキルのコマンドを実行しないでください。
この CLI を使う場面
エージェントまたは人間が構造化された Redfin データを必要としており、ウェブサイト自体では利用できないワークフローを使う場合に、この CLI を使用してください。たとえば、地域間の経時的な差分、HOA を差し引いた平方フィートあたりの価格ランキング、対象物件の売却済み類似物件の抽出、都市間の市場トレンドの重ね合わせ、ダイジェスト形式の要約などです。購入候補の比較、複数の郵便番号にまたがる投資物件のスクリーニング、転居先の都市比較、買主側エージェントによる類似物件の抽出に適しています。単発の閲覧には使わず、redfin.com のウェブサイトで十分です。
この CLI を使わない場面
作成、更新、削除、公開、コメント、賛成票、招待、注文、メッセージ送信、予約、購入、リモートの状態変更が必要なリクエストには、この CLI を使用しないでください。この Printing Press CLI には、検査、エクスポート、同期、分析のための読み取り専用コマンドが用意されています。
独自の機能
この API の他のツールでは利用できない機能です。
時系列分析
-
watch— 保存済みの gis 検索を再実行し、前回の同期以降に新規、削除、価格変更、ステータス変更があった項目を表示します。エージェントが購入候補のショートリストを継続的に追跡し、再現可能な「何が変わったか」のダイジェストを必要とする場合に選択してください。
redfin-pp-cli watch austin-3br --since 7d --json -
drops— 指定した期間内に価格が N%下落した掲載物件、または市場掲載日数がしきい値を超えた物件を一覧表示します。市場のタイミングを見極める場合や、内見の予定を立てる前に低価格での購入候補を探す場合に選択してください。
redfin-pp-cli drops --region-id 30772 --region-type 6 --since 7d --min-pct 3 --dom-min 30 --json
ローカルストアでの計算
-
rank— 同期済みの掲載物件を平方フィートあたりの価格で順位付けします。オプションで、5年間の期間にわたる HOA 手数料を差し引けます。価格に対する価値を重視し、HOA 費用の高いコンドミニアムを一戸建てと公平に比較したい場合に選択してください。
redfin-pp-cli rank --by price-per-sqft --net-hoa --region-id 30772 --region-type 6 --json --limit 25
ショートリストのワークフロー
-
compare— Stingray の詳細エンドポイントを組み合わせて 2~8 件の掲載物件情報を取得し、列を揃えた形式で出力します(価格、平方フィートあたりの価格、寝室数、浴室数、土地、築年、学校、AVM との差、直近の売却、税金)。ショートリストを絞り込む場合に選択してください。幅広い表によって、学校評価や AVM との差の違いが一目でわかります。
redfin-pp-cli compare <your-listing-url> <another-listing-url> --json -
comps— 対象物件について、--radius から円形ポリゴンを作成し、売却済みステータスの検索を実行して、--sqft-tol と --bed-match で絞り込み、順位付けした類似物件セットを返します。エージェントが買主の購入申し込みに向けて比較可能な売却物件を抽出する場合に選択してください。ポリゴンをクリックして回る 20 分の作業を 1 つのコマンドに集約できます。
redfin-pp-cli comps <your-listing-url> --radius 0.5 --sqft-tol 15 --months 6 --bed-match --json
市場横断の結合
-
rank— 複数の地域スラッグにわたる同期済み掲載物件を統合し、掲載 URL で重複を排除して、全件を順位付けします。ファンアウトループを記述せずに、複数の都市圏を横断する単一のランキング付きフィードが必要な場合に選択してください。
redfin-pp-cli rank --regions 30772,30773,30774 --by price-per-sqft --beds-min 3 --price-max 600000 --json --limit 25 -
trends— N 地域の aggregate-trends を取得し、指定期間について 1 つの整形された縦長テーブル(地域 × 月 × 指標)を出力します。転居先を検討する人が都市を比較し、中央値を同じ軸上に重ねて確認する場合に選択してください。
redfin-pp-cli trends --regions 30743,18028,30739 --metric median-sale --period 24 --json
一括抽出
-
export— 価格帯ごとに価格空間を分割し、各価格帯の結果が350件未満になるまでgis-csvをページごとに取得し、リスティングURLで重複を除去して、1つのCSV/JSONを出力します。年ごとの類似物件をすべて取得したい場合に選んでください。関連度順の最初の350件だけでは足りない場合に適しています。
redfin-pp-cli export --region-slug "city/30772/TX/Austin" --status sold --year 2024 --csv > austin-sold-2024.csv
集計
-
summary— 1つのコマンドで、販売中の件数、売買契約中の件数、過去90日間の成約件数、販売価格の中央値、成約価格の中央値、販売日数の中央値、平方フィートあたりの価格の中央値、価格が下がった物件の割合に加え、トレンドの概要を取得します。購入者向け資料の作成にあたり、エージェントが市場の概況を一度に把握したい場合に選んでください。
redfin-pp-cli summary 30772:6 --json -
appreciation— 親となる大都市圏に属するすべての小地域についてaggregate-trendsを呼び出し、成約価格の中央値の前年比変化率順に並べます。転居を検討している人や投資家が、「この大都市圏で最も好調な地域はどこか」を知りたい場合に選んでください。
redfin-pp-cli appreciation --parent "city/30772/TX/Austin" --period 12 --json --limit 10
HTTP トランスポート
このCLIは、ブラウザー向けエンドポイントにChrome互換のHTTPトランスポートを使用します。通常のAPI呼び出しに常駐ブラウザープロセスは必要ありません。
検出シグナル
このCLIは、ブラウザーで観測されたトラフィックのコンテキストをもとに生成されました。
- キャプチャ範囲:ネットワークエントリ全0件のうち、APIエントリは0件
- プロトコル:stingray-json-api(信頼度95%)
- 生成時のヒント:すべてのStingray JSONレスポンスをデコードする前に、{}&& CSRFプレフィックスを削除すること。実行時にはChrome TLSフィンガープリントを使用するSurfを使うこと(UsesBrowserHTTPTransport)。保守的なレート制限:デフォルトは1 req/sとし、429では適応型バックオフを行うこと。Stingrayは米国のIPアドレスに限定されるため、doctorコマンドで米国以外のユーザーに警告すること。地域IDはredfin.comのURLパスに表示されます(例:/city/30772/TX/Austin)。地域タイプは6=市、1=郵便番号、11=近隣地域です。
- コマンド候補:homes — Stingray gis検索が主なエントリーポイントです。listing — リスティング詳細はinitialInfo、aboveTheFold、belowTheFoldを組み合わせます。market — aggregate-trendsエンドポイントで近隣地域の中央値を取得できます。
- 注意事項:csrf-prefix:Stingray JSONレスポンスの先頭には、CSRF対策としてリテラルバイト列'{}&&'が付与されています。生成されたクライアントでは、json.Unmarshalの前にこれを削除する必要があります。geo-restricted:Stingrayエンドポイントは米国のみで利用できます。米国以外からの呼び出しは、TLSフィンガープリントにかかわらず403になります。
コマンドリファレンス
homes — 内部の Stingray /api/gis JSON エンドポイントを使用して、Redfin の販売中物件を検索します。
redfin-pp-cli homes— Stingray の gis 検索を実行し、JSON マップペイロードから解析した物件情報を返します。{}&& CSRF プレフィックスを削除します…
listing — Stingray の initialInfo、aboveTheFold、belowTheFold 呼び出しを組み合わせて、物件の詳細情報を取得します。
redfin-pp-cli listing— 物件に対する最初の Stingray 呼び出しです。URL パスから正規の listingId と propertyId を返します。
market — 期間内の地域の市場動向(販売価格の中央値、売り出しから成約までの日数、供給量、売り出し価格と成約価格の比率)を集計します。
redfin-pp-cli market— 1 つの地域と期間(月数)の aggregate-trends JSON を取得します。
手書きコマンド
redfin-pp-cli homes— 都市、寝室数、浴室数、価格などで Redfin の販売中物件を検索します。redfin-pp-cli sold— 都市とフィルターを指定して Redfin の成約済み物件を検索します(status=sold を指定して homes に処理を委譲します)。redfin-pp-cli listing <url-or-path>— 物件の詳細情報を取得します(initialInfo、aboveTheFold、belowTheFold を結合します)。redfin-pp-cli region— 地域ツールです。都市または郵便番号を Redfin の region_id に解決します。redfin-pp-cli feed— Redfin の RSS フィード(新規物件、更新された物件)を追跡します。redfin-pp-cli sync-search <saved-search>— 保存済みの検索を実行し、結果のスナップショットをローカルストアに保存します。redfin-pp-cli watch <saved-search>— 最新の同期結果を前回の結果と比較し、新規/削除/価格変更/ステータス変更の物件を表示します。redfin-pp-cli rank— 比率指標($/sqft、HOA を差し引くオプションあり、$/bed)で同期済み物件をランク付けします。redfin-pp-cli compare <url-or-id...>— 2~8 件の物件を、$/sqft、AVM との差、学校評価を含む横長の表にまとめます(物件ごとに 1 列)。redfin-pp-cli comps <subject-url>— 対象物件の半径、平方フィート数の許容範囲、直近の期間を指定して、成約済みの比較物件を取得します。redfin-pp-cli drops— 期間内に価格が N% 下落した、または DOM がしきい値を超えた販売中物件を一覧表示します。redfin-pp-cli market <region-slug>— 1 地域のスナップショットを取得します。件数、中央値、DOM、価格下落率に加えて、トレンドも取得します。redfin-pp-cli summary <region-slug>— 地域の市場概要を表示します。販売中/購入申し込み中/過去 90 日の成約件数、中央値、DOM、価格下落率を示します。redfin-pp-cli trends— 複数地域の aggregate-trends を重ね合わせ、地域 × 月 × 指標の整形済みテーブルを出力します。redfin-pp-cli appreciation— 都市圏内の子地域を、前年比の販売価格中央値の変化率でランク付けします。redfin-pp-cli export— 価格帯ごとに分割し、URL で重複排除することで、Redfin の GIS CSV の 350 行上限を超えるデータを一括エクスポートします。
データ鮮度の仕様
この出力対象の CLI が、登録済みのストア参照型読み取りコマンドパスについて、範囲を限定したデータ鮮度のみを管理します。--data-source auto モードでは、これらのパスは sync_state を確認し、ローカルデータを読み取る前に範囲を限定した更新を実行する場合があります。--data-source local では更新されません。--data-source live は API を読み取り、ローカルストアは変更しません。ソース選択を変更せずにデータ鮮度フックをスキップするには、REDFIN_NO_AUTO_REFRESH=1 を設定します。
対象パス:なし。homes は呼び出しごとにライブ検索を行います。ローカルストアにデータを追加するのは sync-search/watch のみです。
JSON 出力で生成された来歴エンベロープが使用される場合、データ鮮度メタデータは meta.freshness に表示されます。これは対象コマンドパスにおける現在のキャッシュの鮮度を示すものであり、過去データの完全なバックフィルや API 固有の拡充を保証するものではありません。
適切なコマンドを見つける
実行したいことはわかっていても、どのコマンドを使えばよいかわからない場合は、CLI に直接尋ねてください。
redfin-pp-cli which "<capability in your own words>"
which は自然言語による機能の問い合わせを、この CLI の厳選された機能インデックスから最適なコマンドに解決します。終了コード 0 は少なくとも 1 件の一致を意味します。終了コード 2 は確信を持てる一致がないことを意味します。その場合は --help を使うか、より範囲を絞った問い合わせをしてください。
レシピ
3 都市圏の移住比較
redfin-pp-cli trends --regions 30743,18028,30739 --metric median-sale --period 24 --json --select rows.region,rows.month,rows.value
3 つの都市圏すべてについて、同じ 24 か月の期間の aggregate-trends を取得し、エクスポート用の整形された縦長のテーブルに結合します。Redfin の UI では作成できない比較表です。
コマンド1つで買い手エージェント向けの比較物件を取得
redfin-pp-cli comps <your-listing-url> --radius 0.5 --sqft-tol 15 --months 6 --bed-match --json
対象の物件情報を解決し、半径0.5マイルの範囲を算出します。過去6か月以内に売却された物件のうち、寝室数が一致し、床面積が15%以内の物件を取得し、買い手向けオファー概要にそのまま使える、ランク付け済みの比較物件セットを返します。
5つの郵便番号エリアで投資家向け物件をスクリーニング
redfin-pp-cli rank --regions 30772,30773,30774,30775,30776 --by price-per-sqft --net-hoa --beds-min 3 --price-max 600000 --status for-sale --json --limit 25
オースティンの5つの郵便番号エリアで同期済み検索を統合し、統合結果全体をHOA費控除後の平方フィート単価でランク付けします。フィルターで投資家向けのスクリーニング条件に絞り込みます。結果は、Redfinでは作成できない単一のランキング付きフィードです。
保存済み検索の週間差分
redfin-pp-cli watch austin-3br --since 7d --json --select new_listings.url,new_listings.price,price_changed.url,price_changed.delta_pct
検索結果に --select を組み合わせて、エージェントに必要な列のみを出力します。エージェントは追加の解析なしで、そのまま買い手向けの週次メールに利用できます。
2024年の売却済み物件を一括取得
redfin-pp-cli export --region-slug "city/30772/TX/Austin" --status sold --year 2024 --csv > austin-sold-2024.csv
価格帯を区切り、各価格帯の gis-csv をページ単位で取得し、価格帯をまたいで物件 URL を基準に重複を排除します。Redfin の350件上限を超える単一の CSV を出力します。
認証の設定
認証は不要です。
redfin-pp-cli doctor を実行して、セットアップを確認してください。
エージェントモード
任意のコマンドに --agent を追加してください。次のオプションに展開されます:--json --compact --no-input --no-color --yes。
-
パイプ接続可能 — stdout に JSON を出力し、エラーは stderr に出力します
-
フィルター可能 —
--selectでフィールドを絞り込めます。ドット区切りのパスはネストされた構造をたどり、配列は要素ごとに処理されます。出力が冗長な API でコンテキストを小さく保つうえで重要です:redfin-pp-cli homes --agent --select id,name,status -
プレビュー可能 —
--dry-runで、リクエストを送信せずに内容を表示します -
オフライン対応 — sync/search コマンドでは、利用可能な場合にローカルの SQLite ストアを使用できます
-
非対話型 — プロンプトは表示されず、入力はすべてフラグで指定します
-
読み取り専用 — 作成、更新、削除、公開、コメント、賛成票の投票、招待、注文、送信、その他の変更を伴うリクエストには、この CLI を使用しないでください
レスポンスエンベロープ
ローカルストアまたは API から読み取るコマンドは、出力をデータの取得元を示すエンベロープで囲みます:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
データには .results を解析し、ライブデータかローカルデータかを確認するには .meta.source を参照してください。人が読める N results (live) の概要は、stdout がターミナルの場合にのみ stderr に出力されます。パイプ接続やエージェントでの利用では、stdout に純粋な JSON のみが出力されます。
エージェントからのフィードバック
この CLI に問題があると気づいた場合は(エージェントが気づいた場合も同様に)、記録してください:
redfin-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
redfin-pp-cli feedback --stdin < notes.txt
redfin-pp-cli feedback list --json --limit 10
記録はローカルの ~/.redfin-pp-cli/feedback.jsonl に保存されます。REDFIN_FEEDBACK_ENDPOINT が設定され、かつ --send が指定されるか REDFIN_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 ステータスを stderr に記録します。
名前付きプロファイル
プロファイルは、保存しておき、呼び出しごとに再利用するフラグ値のセットです。スケジュールされたエージェントが毎回同じ設定で同じコマンドを実行する場合に使用します。これは HeyGen の「Beacon」パターンです。
redfin-pp-cli profile save briefing --json
redfin-pp-cli --profile briefing homes
redfin-pp-cli profile list --json
redfin-pp-cli profile show briefing
redfin-pp-cli profile delete briefing --yes
明示的に指定したフラグは常にプロファイル値より優先され、プロファイル値はデフォルト値より優先されます。agent-context は、利用可能なすべてのプロファイルを available_profiles に一覧表示するため、情報を調べるエージェントは実行時にプロファイルを見つけられます。
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功 |
| 2 | 使用方法のエラー(引数が誤っています) |
| 3 | リソースが見つかりません |
| 5 | API エラー(上流での問題) |
| 7 | レート制限中(待機して再試行してください) |
| 10 | 設定エラー |
引数の解析
$ARGUMENTS を解析します。
- 空、
help、または--help→redfin-pp-cli --helpの出力を表示します installで始まる場合 →mcpで終わる場合は MCP のインストール、それ以外の場合は上記の前提条件を参照します- その他の場合 → 直接使用(
--agentを付けて CLI コマンドとして実行します)
MCP サーバーのインストール
- MCP サーバーをインストールします。
go install github.com/mvanhorn/printing-press-library/library/other/redfin/cmd/redfin-pp-mcp@latest - Claude Code に登録します。
claude mcp add redfin-pp-mcp -- redfin-pp-mcp - 確認します:
claude mcp list
直接使用
- インストール済みか確認します:
which redfin-pp-cli見つからない場合は、インストールを提案します(このスキルの冒頭にある前提条件を参照してください)。 - ユーザーのクエリに最適なコマンドを、上記の「独自の機能」と「コマンドリファレンス」から選びます。
--agentフラグを付けて実行します。redfin-pp-cli <command> [subcommand] [args] --agent- あいまいな場合は、サブコマンドのヘルプを確認します:
redfin-pp-cli <command> --help。