pp-kalshi
Trade prediction markets, persist tick data, and answer category-level P&L questions Kalshi.com cannot. Trigger phrases: `kalshi market price`, `track prediction market`, `kalshi portfolio P&L`, `kalshi correlate markets`, `use kalshi`, `run kalshi`.
What this skill does
<!-- GENERATED FILE — DO NOT EDIT.
This file is a verbatim mirror of library/payments/kalshi/SKILL.md,
regenerated post-merge by tools/generate-skills/. Hand-edits here are
silently overwritten on the next regen. Edit the library/ source instead.
See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->
# Kalshi — Printing Press CLI
## Prerequisites: Install the CLI
This skill drives the `kalshi-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:
1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
```bash
npx -y @mvanhorn/printing-press-library install kalshi --cli-only
```
2. Verify: `kalshi-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.
If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.3 or newer):
```bash
go install github.com/mvanhorn/printing-press-library/library/payments/kalshi/cmd/kalshi-pp-cli@latest
```
If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.
## When to Use This CLI
Reach for kalshi-pp-cli when an agent needs price-over-time or category-level analytics on Kalshi markets — the public API only returns current prices and flat positions, so historical and aggregated questions require the local snapshot store. Use it for daily portfolio reconciliation, signal discovery via correlation across markets, and safe scripting against read-only API credentials.
## Unique Capabilities
These capabilities aren't available in any other tool for this API.
- **`portfolio attribution`** — See your P&L broken down by market category and series over any time period
- **`markets history`** — Track how market odds moved over time with price progression charts
- **`portfolio winrate`** — Calculate your win/loss ratio, expected value, and ROI across all settled positions
- **`portfolio calendar`** — See upcoming settlements with your positions, expected payouts, and category breakdown
- **`markets movers`** — Find markets with the biggest price swings since your last sync
- **`markets correlate`** — Compare price histories of two markets to discover correlated events
- **`portfolio exposure`** — See your total risk broken down by category, with concentration warnings
- **`portfolio stale`** — Find positions in markets approaching expiry where you haven't acted recently
## Command Reference
**account** — Manage account
- `kalshi-pp-cli account get-api-limits` — Endpoint to retrieve the API tier limits associated with the authenticated user.
- `kalshi-pp-cli account get-endpoint-costs` — Lists API v2 endpoints whose configured token cost differs from the default cost. Endpoints that use the default...
**api-keys** — API key management endpoints
- `kalshi-pp-cli api-keys create` — Endpoint for creating a new API key with a user-provided public key. This endpoint allows users with Premier or...
- `kalshi-pp-cli api-keys delete` — Endpoint for deleting an existing API key. This endpoint permanently deletes an API key. Once deleted, the key can...
- `kalshi-pp-cli api-keys generate` — Endpoint for generating a new API key with an automatically created key pair. This endpoint generates both a public...
- `kalshi-pp-cli api-keys get` — Endpoint for retrieving all API keys associated with the authenticated user. API keys allow programmatic access to...
**communications** — Request-for-quote (RFQ) endpoints
- `kalshi-pp-cli communications accept-quote` — Endpoint for accepting a quote. This will require the quoter to confirm
- `kalshi-pp-cli communications confirm-quote` — Endpoint for confirming a quote. This will start a timer for order execution
- `kalshi-pp-cli communications create-quote` — Endpoint for creating a quote in response to an RFQ
- `kalshi-pp-cli communications create-rfq` — Endpoint for creating a new RFQ. You can have a maximum of 100 open RFQs at a time.
- `kalshi-pp-cli communications delete-quote` — Endpoint for deleting a quote, which means it can no longer be accepted.
- `kalshi-pp-cli communications delete-rfq` — Endpoint for deleting an RFQ by ID
- `kalshi-pp-cli communications get-id` — Endpoint for getting the communications ID of the logged-in user.
- `kalshi-pp-cli communications get-quote` — Endpoint for getting a particular quote
- `kalshi-pp-cli communications get-quotes` — Endpoint for getting quotes
- `kalshi-pp-cli communications get-rfq` — Endpoint for getting a single RFQ by id
- `kalshi-pp-cli communications get-rfqs` — Endpoint for getting RFQs
**events** — Event endpoints
- `kalshi-pp-cli events get` — Get all events. This endpoint excludes multivariate events. To retrieve multivariate events, use the GET...
- `kalshi-pp-cli events get-eventticker` — Endpoint for getting data about an event by its ticker. An event represents a real-world occurrence that can be...
- `kalshi-pp-cli events get-multivariate` — Retrieve multivariate (combo) events. These are dynamically created events from multivariate event collections....
**exchange** — Exchange status and information endpoints
- `kalshi-pp-cli exchange get-announcements` — Endpoint for getting all exchange-wide announcements.
- `kalshi-pp-cli exchange get-schedule` — Endpoint for getting the exchange schedule.
- `kalshi-pp-cli exchange get-status` — Endpoint for getting the exchange status.
- `kalshi-pp-cli exchange get-user-data-timestamp` — There is typically a short delay before exchange events are reflected in the API endpoints. Whenever possible,...
**fcm** — FCM member specific endpoints
- `kalshi-pp-cli fcm get-fcmorders` — Endpoint for FCM members to get orders filtered by subtrader ID. This endpoint requires FCM member access level and...
- `kalshi-pp-cli fcm get-fcmpositions` — Endpoint for FCM members to get market positions filtered by subtrader ID. This endpoint requires FCM member access...
**historical** — Manage historical
- `kalshi-pp-cli historical get-cutoff` — Returns the cutoff timestamps that define the boundary between **live** and **historical** data. ## Cutoff fields -...
- `kalshi-pp-cli historical get-fills` — Endpoint for getting all historical fills for the member. A fill is when a trade you have is matched.
- `kalshi-pp-cli historical get-market` — Endpoint for getting data about a specific market by its ticker from the historical database.
- `kalshi-pp-cli historical get-market-candlesticks` — Endpoint for fetching historical candlestick data for markets that have been archived from the live data set. Time...
- `kalshi-pp-cli historical get-markets` — Endpoint for getting markets that have been archived to the historical database. Filters are mutually exclusive.
- `kalshi-pp-cli historical get-orders` — Endpoint for getting orders that have been archived to the historical database.
- `kalshi-pp-cli historical get-trades` — Endpoint for getting all historical trades for all markets. Trades that were filled before the historical cutoff are...
**incentive-programs** — Incentive program endpoints
- `kalshi-pp-cli incentive-programs` — List incentives with optional filters. Incentives are rewards programs for trading activity on specific markets.
**kalshi-trade-manual-search** — Manage kalshi trade manual search
- `kalshi-pp-cli kalshi-trade-manual-search` — Retrieve available filters organized by sport. This endpoint returns filtering options available for each sport,...
**kalshi-trade-manual-search-2** — Manage kalshi trade manual search 2
- `kalshi-pp-cli kalshi-trade-manual-search-2` — Retrieve tags organized by series categories. This endpoint returns a mapping of series categories to their...
**live-Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.