Kalshi Agent
Kalshi prediction market agent - analyzes markets and executes trades via the Kalshi v2 API
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 2 · 1.2k · 2 current installs · 2 all-time installs
MIT-0
Security Scan
OpenClaw
Suspicious
high confidencePurpose & Capability
The skill claims to wrap the kalshi-cli tool to trade on Kalshi, which fits the stated purpose. However, the manifest and SKILL.md disagree about required artifacts: SKILL.md and install.sh require an RSA private key at ~/.kalshi/private_key.pem (used for signing) but the registry metadata lists no required config paths. The skill also declares Python requirements (python3, pip, and a Python package 'cryptography') while installation and README center on an npm package (kalshi-cli). These mismatches are disproportionate and unexplained for the simple wrapper described.
Instruction Scope
The runtime instructions and README focus on installing the kalshi-cli npm package, placing a private RSA key in ~/.kalshi/private_key.pem, and setting KALSHI_ACCESS_KEY. They do not instruct reading unrelated system files or exfiltrating data. The instructions are concrete and limited to the Kalshi CLI's configuration and usage.
Install Mechanism
Installation (install.sh and documentation) installs kalshi-cli via npm (npm install -g kalshi-cli), which is a standard registry install. No downloads from arbitrary URLs or extract steps are used. That is expected for a CLI wrapper, but the presence of python3/pip and a Python package declaration in SKILL.md is inconsistent with the npm-centric install and isn't backed by any install steps.
Credentials
The registry lists a single required env var (KALSHI_ACCESS_KEY), which is appropriate for Kalshi access keys — but SKILL.md and install.sh also require a private RSA key file (~/.kalshi/private_key.pem). That file path was NOT declared in the registry metadata. Additionally, SKILL.md declares a Python package dependency ('cryptography>=41.0.0') even though no Python code is included; these unexplained credential/file requirements increase risk and should be justified.
Persistence & Privilege
The skill does not request 'always: true' and will not be force-included. install.sh writes a ~/.kalshi/.env file only if one does not exist and prompts the user to place private keys in ~/.kalshi/private_key.pem; this is expected for a CLI configuring API keys. The skill does not modify other skills or system-wide configs beyond the user's home directory and a global npm install (which is normal for CLI tools).
What to consider before installing
Before installing, get clarification from the publisher about several mismatches: (1) why does SKILL.md/metadata list python3/pip and the Python 'cryptography' package when the tool is installed from npm? (2) The SKILL.md and install script expect an RSA private key at ~/.kalshi/private_key.pem but that config path is not listed in the registry metadata — confirm that this private key is required and understand how it's used. Verify the kalshi-cli package source (the README points to a GitHub repo) and inspect its code for how it stores/transmits your access key and private key. Only install if you trust the kalshi-cli package owner; ensure your RSA private key is generated/stored securely (use a dedicated key, not one used elsewhere) and avoid pasting secrets into untrusted scripts. If you need this skill but cannot verify the source, request a version with a clear, auditable install spec (including any Python deps) and an explicit declaration of required files/credentials.Like a lobster shell, security has layers — review code before you run it.
Current versionv0.5.0
Download zipkalshilatestmarketmarketspredicitionstrading
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
Runtime requirements
🎰 Clawdis
OSmacOS · Linux · Windows
Binspython3, pip
EnvKALSHI_ACCESS_KEY
SKILL.md
Kalshi Agent Skill
CLI tool for trading prediction markets on Kalshi.
Installation
npm install -g kalshi-cli
Configuration
- Get API credentials at: https://kalshi.com/api
- Place your RSA private key at
~/.kalshi/private_key.pem - Set your access key in
~/.kalshi/.env:
KALSHI_ACCESS_KEY=your_access_key_id
Or run kalshi setup-shell to add it to your shell config.
Commands
Browse & Research
# List open markets (default 20)
kalshi markets
kalshi markets -l 50
kalshi markets --status settled
# Search by keyword, ticker, or category
kalshi search "Super Bowl"
kalshi search soccer
kalshi search hockey
kalshi search KXWO-GOLD-26
# Search with filters
kalshi search politics --min-odds 5 # hide markets where either side < 5%
kalshi search soccer --expiring # sort by soonest expiry, show expiry column
kalshi search soccer -e -m 2 -l 20 # combine flags: expiring, 2% min-odds, 20 results
# Browse all active series (interactive — pick a number to drill down)
kalshi series
kalshi series soccer
kalshi series --all # include series with no active markets
kalshi series -e # sort by soonest expiry
# View single market detail
kalshi detail KXWO-GOLD-26-NOR
# View orderbook depth
kalshi orderbook KXWO-GOLD-26-NOR
Search Behavior
Search uses a multi-strategy approach:
- Direct ticker lookup — tries the query as a market ticker, event ticker (
KXprefix), or series ticker - Series matching — dynamically searches all Kalshi series by title, category, and tags (e.g. "soccer" matches series tagged "Soccer")
- If many series match, shows an interactive numbered list — enter a number to drill into that series' markets
- If few series match, fetches and displays markets directly
- Market title search — falls back to searching open market titles/tickers
Common sport/category aliases are expanded automatically (e.g. "nfl" also searches "football").
Interactive Series Lists
Both kalshi search and kalshi series display numbered tables when listing series. After the table, you're prompted:
Enter # to drill down (or q to quit):
Pick a number to load that series' open markets inline. The prompt loops so you can explore multiple series without re-running the command.
Portfolio
# Check balance
kalshi balance
# View positions
kalshi positions
# View open orders
kalshi orders
Trading
# Buy 10 YES contracts at 68c each
kalshi buy KXSB-26 10 68
# Buy NO contracts
kalshi buy KXWO-GOLD-26-NOR 5 32 --side no
# Sell (same syntax)
kalshi sell KXWO-GOLD-26-NOR 5 40 --side no
# Skip confirmation prompt
kalshi buy KXSB-26 10 68 --force
# Cancel an open order
kalshi cancel <order-id>
Notes
- Prices are in cents (68 = $0.68 = 68% implied probability)
- Prices display as both dollars and percentages (e.g.
$0.68 (68%)) --sidedefaults toyesif not specifiedbuyandsellshow a cost/proceeds summary and ask for confirmation (bypass with--force)--min-odds/-mfilters out markets where either side's bid is below a percentage threshold (default 0.5%)--expiring/-esorts results by soonest expiry, adds an "Expires" column, and excludes already-expired entries- Expiry times are human-readable: "8h 35m", "Fri 04:00PM", "Apr 01", "Jan 01, 2027"
- Event tickers start with
KX(e.g.KXWO-GOLD-26); market tickers have more segments (e.g.KXWO-GOLD-26-NOR) - Market tables show outcome names (e.g. "Norway" instead of raw tickers) when available
API Reference
Full API docs: https://docs.kalshi.com/api-reference/
Files
4 totalSelect a file
Select a file to preview.
Comments
Loading comments…
