mcpField
P
pp-kalshi

pp-kalshi

github.com/mvanhornその他2.1k213 回インストール今日更新
リポジトリ

pp-kalshi について

pp-kalshiは、Kalshiの市場データやアカウント情報にアクセスするエージェント向けコマンドラインスキルです。ローカルのSQLiteスナップショットで価格履歴やポートフォリオを分析でき、読み取り専用モードとドライランで変更操作を制御できます。

主な機能

  1. 01ローカル市場価格履歴とスナップショット
  2. 02ポートフォリオの損益帰属、勝率、エクスポージャー
  3. 03市場の値動きと価格相関の分析
  4. 04同期後のウォッチリスト変化の確認
  5. 05読み取り専用モードと変更操作のドライラン

活用シーン

  1. 01市場カテゴリー別のポートフォリオ実績確認
  2. 02市場スナップショットによる価格変動の追跡
  3. 03調査目的での市場間相関の特定
  4. 04読み取り専用認証情報を使った安全なスクリプト実行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-kalshi

インストール後、Claude Code で/pp-kalshiを入力して読み込まれたか確認します。

詳細

Kalshi — Printing Press CLI

前提条件:CLI をインストールする

このスキルは kalshi-pp-cli バイナリを実行します。**このスキルのコマンドを実行する前に、CLI がインストールされていることを必ず確認してください。**インストールされていない場合は、まずインストールしてください。

  1. Printing Press インストーラーを使用してインストールします。バイナリのデフォルトのインストール先は、macOS/Linux では $HOME/.local/bin、Windows では %LOCALAPPDATA%\Programs\PrintingPress\bin です。
    npx -y @mvanhorn/printing-press-library install kalshi --cli-only
    
  2. 確認します:kalshi-pp-cli --version
  3. 表示されたインストール先ディレクトリが、このスキルを実行するエージェント/ランタイムの $PATH に含まれていることを確認します。

npx によるインストールに失敗した場合(Node がない、オフラインなど)は、Go を直接インストールする方法に切り替えてください(Go 1.26.6 以降が必要です)。インストール先は $GOPATH/bin(デフォルトでは $HOME/go/bin)なので、代わりにそのディレクトリを $PATH に追加してください。

go install github.com/mvanhorn/printing-press-library/library/payments/kalshi/cmd/kalshi-pp-cli@latest

インストール後に --version で「command not found」と表示される場合、ランタイムからバイナリのディレクトリを $PATH 経由で参照できていません。確認が成功するまで、スキルのコマンドを実行しないでください。

Kalshi のすべての機能に加え、同期のたびに市場価格を記録するローカル SQLite ストアを備えているため、値動き、相関関係、価格履歴をオフラインで利用できます。読み取り専用キーと読み書きキーの違いを明確にし、すべての変更操作に --dry-run を用意するとともに、ニュースルームやボットのデプロイ向けにグローバルな --read-only セーフモードロックを備えています。

この CLI を使用する場面

エージェントが Kalshi 市場の価格推移やカテゴリ単位の分析を必要とする場合は、kalshi-pp-cli を使用してください。公開 API が返すのは現在の価格とフラットなポジションのみであるため、過去のデータや集計に関する質問にはローカルのスナップショットストアが必要です。日次のポートフォリオ照合、市場間の相関分析によるシグナルの発見、読み取り専用 API 認証情報を使った安全なスクリプト実行に利用できます。

独自の機能

これらの機能は、この API のほかのツールでは利用できません。

積み重なるローカル状態
  • portfolio attribution — 任意の期間について、実現損益を市場カテゴリとシリーズ別に確認できます。「今四半期、政治関連で実際に利益が出たか?」という問いに、1つのコマンドで答えられます。

    エージェントがKalshiの分類体系に基づいて実現損益を分類する必要があるときに使います。APIが返すのはフラットな約定と決済のデータですが、このコマンドは正確な損益の分類に必要なカテゴリメタデータと結合します。

    kalshi-pp-cli portfolio attribution --since 2026-01-01 --by category --json
    
  • markets history — スパークライン表示で、市場のYes/No価格が時間とともにどのように変動したかを確認できます。すべての市場同期で取得したスナップショットから作成されます。

    エージェントが「この市場はどのように動いたか」と尋ねたときや、バックテスト用に価格の推移が必要なときに使います。APIが返すのは現在価格のみです。

    kalshi-pp-cli markets history KXPRES-2028-DJT --since 2026-04-01 --sparkline
    
  • portfolio winrate — 決済済みの全ポジションについて、カテゴリ別の集計も指定して、勝敗比、期待値、ROIを計算します。

    エージェントが取引戦略のパフォーマンスを評価するときに使います。これを計算するKalshiのツールはありません。

    kalshi-pp-cli portfolio winrate --category sports --since 2026-01-01 --json
    
  • portfolio calendar — 今後N日間に予定されている決済と、保有ポジション、予想支払額、カテゴリ別の内訳を確認できます。

    エージェントが今後の決済を考慮した計画を立てる必要があるときに使います。APIでは、ポジションとイベントの満期日が別々のエンドポイントにあります。

    kalshi-pp-cli portfolio calendar --days 14
    
  • markets movers — 最後の同期以降に価格が大きく変動した市場を、変動幅または出来高の変化順に表示します。

    エージェントが注目すべき市場の動きを見つける必要があるときに使います。APIには「最近大きく動いた市場」のエンドポイントがありません。

    kalshi-pp-cli markets movers --window 24h --category politics --json
    
  • markets correlate — 2つの市場の価格履歴からピアソン相関係数を計算し、ヘッジやシグナルの発見に役立つ相関イベントを見つけます。

    エージェントが市場間の関係を調査するときに使います。Kalshi市場間の相関を計算するAPIエンドポイントや他のツールはありません。

    kalshi-pp-cli markets correlate KXFEDFUNDS-26FEB KXCPI-26FEB --window 30d --json
    
  • portfolio exposure — カテゴリ別に総エクスポージャーを分類し、いずれかのバケットが設定可能なリスク閾値を超えた場合に集中リスクの警告を表示します。

    エージェントがポートフォリオ全体のリスクを把握する必要があるときに使います。APIはKalshiの分類体系に基づくエクスポージャーの集計を行いません。

    kalshi-pp-cli portfolio exposure --by category --warn-threshold 0.4 --json
    
  • watch diff — ティッカーのローカルウォッチリストを管理します。watch diffを実行すると、ウォッチ中の市場ごとに、最後の同期からの価格/出来高の変化が表示されます。Rileyが毎日行っていたスナップショット確認を、1つのコマンドにまとめました。

    エージェントが複数回の実行にわたって一定の市場を追跡するときに使います。APIにはウォッチリストの概念がありません。

    kalshi-pp-cli watch diff --since 24h
    
明確な認証制御
  • --read-only — どの種類のキーが読み込まれていても、クライアント側ですべての変更コマンドをブロックする、環境変数/フラグによる全体ロックです。読み取り専用の認証情報を使った安全なスクリプト実行では、すべての変更コマンドに--dry-runを併用してください。

    エージェントが種類のわからないKalshiキーで実行するときに使います。読み取り専用のキー種別は存在し、スクリプトの途中で403エラーが発生することもよくあります。この機能により、APIにリクエストする前にクライアント側で制約を確認できます。

    kalshi-pp-cli --read-only portfolio create-order --ticker KXTEST --side yes --count 1 --yes-price 50 --dry-run
    
  • subaccounts rollup — 参照できるすべてのサブアカウントについて、ポジション、当日の約定、残高、カテゴリ別エクスポージャーを集計し、家計全体のリスクと未約定注文を確認できます。

    FCM階層のユーザーがサブアカウント全体のリスクを集計する必要があるときに使います。家計全体の状況を表示するKalshiのツールはありません。

    kalshi-pp-cli subaccounts rollup --by category --json
    

コマンドリファレンス

account — アカウントを管理します

  • kalshi-pp-cli account get-api-limits — 認証済みユーザーに適用されるAPI階層の制限を取得するエンドポイントです。
  • kalshi-pp-cli account get-endpoint-costs — 設定されたトークンコストがデフォルトのコストと異なるAPI v2エンドポイントを一覧表示します。デフォルトを使用するエンドポイントは……

api-keys — APIキー管理エンドポイント

  • kalshi-pp-cli api-keys create — ユーザーが指定した公開鍵を使って新しい API キーを作成するエンドポイントです。このエンドポイントを使用できるのは、Premier 以上のユーザーです。
  • kalshi-pp-cli api-keys delete — 既存の API キーを削除するエンドポイントです。このエンドポイントは API キーを完全に削除します。削除したキーは……
  • kalshi-pp-cli api-keys generate — キーペアを自動生成して新しい API キーを作成するエンドポイントです。このエンドポイントは公開鍵と……
  • kalshi-pp-cli api-keys get — 認証済みユーザーに関連付けられたすべての API キーを取得するエンドポイントです。API キーを使用すると、プログラムから……

communications — 見積依頼(RFQ)エンドポイント

  • kalshi-pp-cli communications accept-quote — 見積もりを受諾するエンドポイントです。見積提示者による確認が必要です
  • kalshi-pp-cli communications confirm-quote — 見積もりを確認するエンドポイントです。注文執行のタイマーが開始されます
  • kalshi-pp-cli communications create-quote — RFQ に応じて見積もりを作成するエンドポイントです
  • kalshi-pp-cli communications create-rfq — 新しい RFQ を作成するエンドポイントです。同時にオープンにできる RFQ は最大 100 件です。
  • kalshi-pp-cli communications delete-quote — 見積もりを削除するエンドポイントです。削除すると、その見積もりは受諾できなくなります。
  • kalshi-pp-cli communications delete-rfq — ID を指定して RFQ を削除するエンドポイントです
  • kalshi-pp-cli communications get-id — ログイン中のユーザーの communications ID を取得するエンドポイントです。
  • kalshi-pp-cli communications get-quote — 特定の見積もりを取得するエンドポイントです
  • kalshi-pp-cli communications get-quotes — 見積もりを取得するエンドポイントです
  • kalshi-pp-cli communications get-rfq — ID を指定して単一の RFQ を取得するエンドポイントです
  • kalshi-pp-cli communications get-rfqs — RFQ を取得するエンドポイントです

events — イベントエンドポイント

  • kalshi-pp-cli events get — すべてのイベントを取得します。このエンドポイントでは多変量イベントは取得できません。多変量イベントを取得するには、GET……
  • kalshi-pp-cli events get-eventticker — ティッカーを指定してイベントデータを取得するエンドポイントです。イベントは、現実世界で発生する事象を表し、……
  • kalshi-pp-cli events get-multivariate — 多変量(コンボ)イベントを取得します。これらは、多変量イベントコレクションから動的に作成されるイベントです……

exchange — 取引所のステータスと情報に関するエンドポイント

  • kalshi-pp-cli exchange get-announcements — 取引所全体のお知らせをすべて取得するエンドポイントです。
  • kalshi-pp-cli exchange get-schedule — 取引所のスケジュールを取得するエンドポイントです。
  • kalshi-pp-cli exchange get-status — 取引所のステータスを取得するエンドポイントです。
  • kalshi-pp-cli exchange get-user-data-timestamp — 通常、取引所で発生したイベントが API エンドポイントに反映されるまでには短い遅延があります。可能な場合は常に、……

fcm — FCM メンバー専用エンドポイント

  • kalshi-pp-cli fcm get-fcmorders — FCM メンバーがサブトレーダー ID で絞り込んだ注文を取得するエンドポイントです。このエンドポイントには FCM メンバーのアクセスレベルが必要で、……
  • kalshi-pp-cli fcm get-fcmpositions — FCM メンバーがサブトレーダー ID で絞り込んだ市場ポジションを取得するエンドポイントです。このエンドポイントには FCM メンバーのアクセス……

historical — 履歴データの管理

  • kalshi-pp-cli historical get-cutoff — ライブデータと履歴データの境界を定義するカットオフタイムスタンプを返します。 ## カットオフフィールド -...
  • kalshi-pp-cli historical get-fills — メンバーのすべての過去の約定を取得するエンドポイントです。約定とは、保有する取引がマッチングされた状態です。
  • kalshi-pp-cli historical get-market — 履歴データベースから、ティッカーで指定した特定のマーケットのデータを取得するエンドポイントです。
  • kalshi-pp-cli historical get-market-candlesticks — ライブデータセットからアーカイブされたマーケットの過去のローソク足データを取得するエンドポイントです。時間...
  • kalshi-pp-cli historical get-markets — 履歴データベースにアーカイブされたマーケットを取得するエンドポイントです。フィルターは相互に排他的です。
  • kalshi-pp-cli historical get-orders — 履歴データベースにアーカイブされた注文を取得するエンドポイントです。
  • kalshi-pp-cli historical get-trades — すべてのマーケットの過去の取引を取得するエンドポイントです。履歴データのカットオフより前に約定した取引は...

incentive-programs — インセンティブプログラムのエンドポイント

  • kalshi-pp-cli incentive-programs — オプションのフィルターを指定してインセンティブを一覧表示します。インセンティブは、特定のマーケットでの取引活動に対する報酬プログラムです。

kalshi-trade-manual-search — Kalshi の取引手動検索を管理

  • kalshi-pp-cli kalshi-trade-manual-search — スポーツ別に整理された利用可能なフィルターを取得します。このエンドポイントは、各スポーツで利用できるフィルターオプションを返します,...

kalshi-trade-manual-search-2 — Kalshi の取引手動検索 2 を管理

  • kalshi-pp-cli kalshi-trade-manual-search-2 — シリーズカテゴリー別に整理されたタグを取得します。このエンドポイントは、シリーズカテゴリーとその...の対応関係を返します。

live-data — ライブデータのエンドポイント

  • kalshi-pp-cli live-data get — 複数のマイルストーンのライブデータを取得します
  • kalshi-pp-cli live-data get-by-milestone — 特定のマイルストーンのライブデータを取得します。
  • kalshi-pp-cli live-data get-game-stats — 特定のマイルストーンの試合のプレーごとの統計情報を取得します。対応スポーツ:プロフットボール、大学フットボール、プロ...

markets — マーケットデータのエンドポイント

  • kalshi-pp-cli markets batch-get-candlesticks — 複数のマーケットのローソク足データを取得するエンドポイントです。 - 1 リクエストにつき最大 100 個のマーケットティッカーを指定できます -...
  • kalshi-pp-cli markets get — マーケットのステータスでフィルターします。指定可能な値:unopened、open、closed、settled。空のままにすると、マーケットを...
  • kalshi-pp-cli markets get-orderbooks — 1 回のリクエストで複数のマーケットの現在のオーダーブックを取得するエンドポイントです。オーダーブックには、すべての...
  • kalshi-pp-cli markets get-ticker — ティッカーで指定した特定のマーケットのデータを取得するエンドポイントです。マーケットは、特定の二者択一の結果を表します...
  • kalshi-pp-cli markets get-trades — すべてのマーケットのすべての取引を取得するエンドポイントです。取引とは、2 人のユーザー間で完了した取引を表します...

milestones — マイルストーンのエンドポイント

  • kalshi-pp-cli milestones get — マイルストーンを絞り込むための開始日時の最小値です。形式:RFC3339 タイムスタンプ
  • kalshi-pp-cli milestones get-milestoneid — ID で指定した特定のマイルストーンのデータを取得するエンドポイントです。

multivariate-event-collections — 多変量イベントコレクションを管理

  • kalshi-pp-cli multivariate-event-collections create-market-in — 多変量イベントコレクション内に個別のマーケットを作成するエンドポイントです。このエンドポイントは少なくとも...
  • kalshi-pp-cli multivariate-event-collections get — 多変量イベントコレクションのデータを取得するエンドポイントです。
  • kalshi-pp-cli multivariate-event-collections get-multivariateeventcollections — ティッカーで指定した多変量イベントコレクションのデータを取得するエンドポイントです。

portfolio — ポートフォリオと残高情報のエンドポイント

  • kalshi-pp-cli portfolio amend-order — 既存の注文で約定可能な契約数の上限や価格を変更するエンドポイントです。約定可能な契約数の上限...

  • kalshi-pp-cli portfolio amend-order-v2 — V2 を使用して、既存のイベント市場注文の価格や残り数量を変更するエンドポイントです...

  • kalshi-pp-cli portfolio apply-subaccount-transfer — 認証済みユーザーのサブアカウント間で資金を移動します。プライマリーアカウントには 0、番号付きアカウントには 1~32 を指定します...

  • kalshi-pp-cli portfolio batch-cancel-orders — 複数の注文を一括キャンセルするエンドポイントです。最大バッチサイズはご利用のティアの書き込み予算に応じて変わります。[Rate...

  • kalshi-pp-cli portfolio batch-cancel-orders-v2 — V2 のレスポンス形式を使用して、複数のイベント市場注文を一括キャンセルするエンドポイントです。最大バッチサイズは...

  • kalshi-pp-cli portfolio batch-create-orders — 複数の注文を一括送信するエンドポイントです。最大バッチサイズはご利用のティアの書き込み予算に応じて変わります。[Rate...

  • kalshi-pp-cli portfolio batch-create-orders-v2 — V2 のリクエスト/レスポンス形式を使用して、複数のイベント市場注文を一括送信するエンドポイントです。最大バッチサイズ...

  • kalshi-pp-cli portfolio cancel-order — 注文をキャンセルするエンドポイントです。orderId の値は、キャンセルする注文の id フィールドと一致する必要があります...

  • kalshi-pp-cli portfolio cancel-order-v2 — V2 のレスポンス形式を使用してイベント市場注文をキャンセルするエンドポイントです。`{order_id, client_order_id,...

  • kalshi-pp-cli portfolio create-order — 市場に注文を送信するエンドポイントです。各ユーザーが同時に保有できる未約定注文は最大 200 000 件です。

  • kalshi-pp-cli portfolio create-order-group — 15 秒間のローリングウィンドウで測定される契約数の上限を設定した新しい注文グループを作成します。上限に達すると...

  • kalshi-pp-cli portfolio create-order-v2 — V2 のリクエスト/レスポンス形式(単一ブックの bid/ask サイドおよび...

  • kalshi-pp-cli portfolio create-subaccount — 認証済みユーザーの新しいサブアカウントを作成します。サブアカウントには 1 から順に番号が割り当てられます。最大...

  • kalshi-pp-cli portfolio decrease-order — 既存注文の契約数を減らすエンドポイントです。これは注文で利用可能な唯一の編集方法です...

  • kalshi-pp-cli portfolio decrease-order-v2 — V2 のリクエスト/レスポンス形式を使用して、既存のイベント市場注文の残り数量を減らすエンドポイントです...

  • kalshi-pp-cli portfolio delete-order-group — 注文グループを削除し、そのグループ内のすべての注文をキャンセルします。グループは完全に削除されます。

  • kalshi-pp-cli portfolio get-balance — メンバーの残高とポートフォリオ価値を取得するエンドポイントです。どちらの値もセント単位で返されます。

  • kalshi-pp-cli portfolio get-fills — メンバーのすべての約定を取得するエンドポイントです。約定とは、保有している取引がマッチしたことを指します。発生した約定...

  • kalshi-pp-cli portfolio get-order — 単一の注文を取得するエンドポイントです。

  • kalshi-pp-cli portfolio get-order-group — すべての注文 ID と自動キャンセルの状態を含む、単一の注文グループの詳細を取得します。

  • kalshi-pp-cli portfolio get-order-groups — 認証済みユーザーのすべての注文グループを取得します。

  • kalshi-pp-cli portfolio get-order-queue-position — 注文板における注文のキュー位置を取得するエンドポイントです。これは約定までに必要な注文数を示します...

  • kalshi-pp-cli portfolio get-order-queue-positions — すべての未約定注文のキュー位置を取得するエンドポイントです。キュー位置は契約数を表します...

  • kalshi-pp-cli portfolio get-orders — レスポンスを指定したステータス(未約定、キャンセル済み、または約定済み)の注文に限定します。すでに...

  • kalshi-pp-cli portfolio get-positions — カンマ区切りのリストで指定した以下のフィールドのいずれかがゼロ以外の値であるポジションに限定します。...

  • kalshi-pp-cli portfolio get-resting-order-total-value — 未約定注文の合計価値をセント単位で取得するエンドポイントです。このエンドポイントは FCM による使用のみを想定しています...

  • kalshi-pp-cli portfolio get-settlements — メンバーの決済履歴を取得するエンドポイントです。

  • kalshi-pp-cli portfolio get-subaccount-balances — プライマリーアカウントを含む、すべてのサブアカウントの残高を取得します。

  • kalshi-pp-cli portfolio get-subaccount-netting — すべてのサブアカウントのネッティング有効設定を取得します。

  • kalshi-pp-cli portfolio get-subaccount-transfers — 認証済みユーザーのサブアカウント間のすべての資金移動を、ページネーション付きで取得します。

  • kalshi-pp-cli portfolio reset-order-group — 注文グループの約定済み契約数カウンターをゼロにリセットします。上限に達した後も、再び新しい注文を出せるようになります...

  • kalshi-pp-cli portfolio trigger-order-group — 注文グループをトリガーし、グループ内のすべての注文をキャンセルします。グループがリセットされるまで新しい注文は受け付けません。

  • kalshi-pp-cli portfolio update-order-group-limit — 注文グループの契約数上限(15 秒間のローリングウィンドウ)を更新します。更新後の上限により即座にトリガーされる場合...

  • kalshi-pp-cli portfolio update-subaccount-netting — 特定のサブアカウントのネッティング有効設定を更新します。プライマリーアカウントには 0、番号付きアカウントには 1~32 を指定します... series — シリーズを管理します

  • kalshi-pp-cli series get — ティッカーで指定したシリーズのデータを取得するエンドポイントです。シリーズは、繰り返し発生するイベントのテンプレートを表します...

  • kalshi-pp-cli series get-fee-changes — シリーズの手数料変更を取得します

  • kalshi-pp-cli series get-list — 指定したフィルターに一致する複数のシリーズのデータを取得するエンドポイントです。シリーズは、繰り返し発生するイベントのテンプレートを表します...

structured-targets — ストラクチャードターゲットのエンドポイント

  • kalshi-pp-cli structured-targets get — ページサイズ(最小:1、最大:2000)
  • kalshi-pp-cli structured-targets get-structuredtargets — IDで指定したストラクチャードターゲットのデータを取得するエンドポイントです。
適切なコマンドを見つける

実行したいことは分かっていても、どのコマンドを使えばよいか分からない場合は、CLI に直接問い合わせてください。

kalshi-pp-cli which "<capability in your own words>"

which は、自然言語による機能の問い合わせを、この CLI の厳選された機能インデックスから最適なコマンドに対応付けます。終了コード 0 は一致する候補が少なくとも 1 つあることを示し、終了コード 2 は確度の高い候補がないことを示します。その場合は --help を確認するか、より対象を絞った問い合わせを使用してください。

レシピ

今四半期の政治カテゴリの損益
kalshi-pp-cli portfolio attribution --since 2026-01-01 --by category --agent --select 'rows.category,rows.realized_pnl,rows.fills'

Kalshi の分類体系に基づく実現損益です。--select を使うと、エージェントが必要とする 3 つのフィールドに応答を絞り込めます。

Fed の利下げ市場をウォッチリストで追跡する
kalshi-pp-cli watch add KXFEDFUNDS-26FEB && kalshi-pp-cli watch diff --since 24h --agent

ティッカーをローカルのウォッチリストに追加し、その後、昨日からのティッカーごとの変化を取得します。

インフレ市場と利下げ市場の相関を調べる
kalshi-pp-cli markets correlate KXFEDFUNDS-26FEB KXCPI-26FEB --window 30d --agent

両方の市場のスナップショット価格系列を使って、ピアソンの r をローカルで計算します。

安全なペーパートレーディングセッション
kalshi-pp-cli portfolio create-order --ticker KXTEST-2026 --side yes --count 1 --yes-price 50 --action buy --dry-run

2 つの安全策を有効にします。クライアント側の読み取り専用ロックとドライランにより、API には一切アクセスしません。(KALSHI_READ_ONLY=1 と併用すると、クライアント側のセーフモードロックが有効になります。)

スポーツ市場の値動き上位、過去 24 時間
kalshi-pp-cli markets movers --window 24h --category sports --limit 5 --agent

market_price_history のスナップショットから価格変化を計算します。同期後はオフラインでも動作します。

認証の設定

Kalshi では、UUID のアクセスキー ID(KALSHI_API_KEY)と RSA 秘密鍵ファイル(KALSHI_PRIVATE_KEY_PATH または KALSHI_PRIVATE_KEY)を使った、組み合わせ式の RSA-PSS 署名認証が必要です。Kalshi が発行するキーは読み取り専用と読み書き可能の 2 種類です。CLI は、どちらのキーが読み込まれているかにかかわらず、署名前にすべての POST/PUT/PATCH/DELETE をブロックするクライアント側ロックとして、KALSHI_READ_ONLY=1(または --read-only)に従います。読み取り専用キーで書き込みコマンドを実行すると、Kalshi から 403 が返されます。デバッグ時は --dry-run と併用してください。

kalshi-pp-cli doctor を実行して、セットアップを確認してください。

エージェントモード

任意のコマンドに --agent を追加できます。次のオプションに展開されます:--json --compact --no-input --no-color --yes。

  • パイプ対応 — stdout に JSON を出力し、エラーは stderr に出力します

  • フィルター可能 — --select でフィールドの一部を残せます。ドット区切りのパスでネストされた構造にアクセスでき、配列内の各要素も同様にたどります。応答が冗長な API でコンテキストを小さく保つために重要です。

    kalshi-pp-cli api-keys get --agent --select id,name,status
    
  • プレビュー可能 — --dry-run でリクエストを送信せずに確認できます

  • オフライン対応 — 同期/検索コマンドは、利用可能な場合にローカルの SQLite ストアを使用できます

  • 非対話型 — プロンプトは表示されず、すべての入力をフラグで指定します

応答エンベロープ

ローカルストアまたは API から読み取るコマンドは、出力を出所情報のエンベロープでラップします。

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

データには .results を、ライブデータかローカルデータかの確認には .meta.source を解析してください。人間が読みやすい N results (live) の要約は、stdout がターミナルの場合にのみ stderr に出力されます。パイプやエージェントで利用する場合、stdout には純粋な JSON が出力されます。

エージェントへのフィードバック

この CLI に問題があると気付いた場合は(エージェントが気付いた場合も)、記録してください。

kalshi-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
kalshi-pp-cli feedback --stdin < notes.txt
kalshi-pp-cli feedback list --json --limit 10

記録はローカルの ~/.kalshi-pp-cli/feedback.jsonl に保存されます。KALSHI_FEEDBACK_ENDPOINT が設定され、かつ --send が渡された場合、または KALSHI_FEEDBACK_AUTO_SEND=true の場合を除き、POST されることはありません。デフォルトではローカルにのみ保存されます。

バグ報告ではなく、意外だったことを書いてください。短く、具体的に、1 行で。それが積み重なっていく部分です。

出力の配信

すべてのコマンドは --deliver <sink> を受け付けます。出力は、標準出力に加えて(または標準出力の代わりに)指定したシンクに送られるため、エージェントは手動でパイプをつながずにコマンド結果を振り分けられます。サポートされているシンクは3つです。

シンク効果
stdoutデフォルト。標準出力のみに書き込みます
file:<path>出力を <path> にアトミックに書き込みます(一時ファイル + リネーム)
webhook:<url>出力本文を URL に POST します(--compact の場合は application/json または application/x-ndjson)

サポートされているシンクの一覧を示す構造化エラーを返し、未知のスキームは拒否されます。Webhook の失敗時はゼロ以外の値を返し、stderr に URL と HTTP ステータスを記録します。

名前付きプロファイル

プロファイルは、呼び出しのたびに再利用できる、保存済みのフラグ値のセットです。スケジュールされたエージェントが毎回同じ設定で同じコマンドを呼び出す場合に使用します。これは HeyGen の「Beacon」パターンです。

kalshi-pp-cli profile save briefing --json
kalshi-pp-cli --profile briefing api-keys get
kalshi-pp-cli profile list --json
kalshi-pp-cli profile show briefing
kalshi-pp-cli profile delete briefing --yes

明示的に指定したフラグは常にプロファイルの値より優先され、プロファイルの値はデフォルトより優先されます。agent-context は、利用可能なすべてのプロファイルを available_profiles に一覧表示するため、情報を調べるエージェントは実行時にそれらを検出できます。

終了コード

コード意味
0成功
2使用方法エラー(引数が正しくありません)
3リソースが見つかりません
4認証が必要です
5API エラー(上流での問題)
7レート制限中(待機して再試行してください)
10設定エラー

引数の解析

$ARGUMENTS を解析します。

  1. 空、help、または --help → kalshi-pp-cli --help の出力を表示します
  2. install で始まる → mcp で終わる → MCP のインストール。それ以外 → 上記の前提条件を参照してください
  3. その他すべて → 直接使用(--agent を付けて CLI コマンドとして実行します)

MCP サーバーのインストール

  1. MCP サーバーをインストールします。
    go install github.com/mvanhorn/printing-press-library/library/payments/kalshi/cmd/kalshi-pp-mcp@latest
    
  2. Claude Code に登録します。
    claude mcp add kalshi-pp-mcp -- kalshi-pp-mcp
    
  3. 確認します:claude mcp list

直接使用

  1. インストール済みか確認します:which kalshi-pp-cli 見つからない場合は、インストールを提案します(このスキルの冒頭にある前提条件を参照してください)。
  2. ユーザーのクエリに最適なコマンドを、上記の独自の機能とコマンドリファレンスから選びます。
  3. --agent フラグを付けて実行します。
    kalshi-pp-cli <command> [subcommand] [args] --agent
    
  4. あいまいな場合は、サブコマンドのヘルプを確認します:kalshi-pp-cli <command> --help。

コメント