Kalshi Weather Trader logo

Kalshi Weather Trader

Organization
SpartanLabsXyz
kalshi-weather-trader

Trade Kalshi temperature markets, automate Kalshi weather bets, or check NOAA forecasts using the Simmer SDK and DFlow on Solana.

Overview

PublisherSpartanLabsXyz
Repositorysimmer-sdk
Skill namekalshi-weather-trader
Stars
56
Forks
18
Bundled files
7
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 7 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by SpartanLabsXyz on GitHub. Read the source before you install it.

Installation

Install the Kalshi Weather Trader AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/SpartanLabsXyz/simmer-sdk/tree/main/skills/kalshi-weather-trader
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/SpartanLabsXyz/simmer-sdk.git /tmp/simmer-sdk
mkdir -p .claude/skills
cp -r /tmp/simmer-sdk/skills/kalshi-weather-trader .claude/skills/kalshi-weather-trader
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Kalshi Weather Trader in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Kalshi Weather Trader on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Kalshi Weather Trader is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Kalshi Weather Trader

Trade temperature markets on Kalshi using NOAA forecast data, via DFlow on Solana.

🚨 Framework, not a production trading system. Read DISCLAIMER.md before connecting to a wallet with real funds.

This is a template. The default signal is NOAA temperature forecasts — remix it with other weather APIs, different forecast models, or additional market types (precipitation, wind, etc.). The skill handles all the plumbing (market discovery, NOAA parsing, trade execution, safeguards). Your agent provides the alpha.

Powered by DFlow. Kalshi trades execute via DFlow's Solana-based prediction market infrastructure. KYC verification through Proof is required for buys.

Setup Flow

When user asks to install or configure this skill:

  1. Install the Simmer SDK

    bash
    pip install simmer-sdk
  2. Ask for Simmer API key

    • They can get it from simmer.markets/dashboard → SDK tab
    • Store in environment as SIMMER_API_KEY
  3. Ask for Solana private key (required for live trading)

    • This is the base58-encoded secret key for their Solana wallet
    • Store in environment as SOLANA_PRIVATE_KEY
    • The SDK uses this to sign transactions client-side automatically
  4. Verify KYC

    • Required for Kalshi buys (not sells)
    • Complete at dflow.net/proof
    • Check status: curl "https://api.simmer.markets/api/proof/status?wallet=YOUR_SOLANA_ADDRESS"
  5. Fund the wallet

    • SOL on Solana mainnet for transaction fees (~0.01 SOL)
    • USDC on Solana mainnet for trading capital
  6. Ask about settings (or confirm defaults)

    • Entry threshold: Upper bound for when to buy (default 15¢)
    • Min entry price: Lower bound to skip lottery-ticket mids (default 0 = off)
    • Min hours to resolve: Skip entries resolving too soon (default 2h; exits keep 2h)
    • Exit threshold: When to sell (default 45¢)
    • Max position: Amount per trade (default $2.00)
    • Locations: Which cities to trade (default NYC)
  7. Save settings to environment variables

  8. Set up cron (disabled by default — user must enable scheduling)

Configuration

SettingEnvironment VariableDefaultDescription
Entry thresholdSIMMER_WEATHER_ENTRY_THRESHOLD0.15Upper bound — buy when price is below this
Min entry priceSIMMER_WEATHER_MIN_ENTRY_PRICE0Lower bound — skip lottery tickets below this (0 = off), e.g. 0.15 to skip sub-15¢ tickets. Must be below the entry threshold.
Min hours to resolveSIMMER_WEATHER_MIN_HOURS_TO_RESOLVE2Skip entries if the market resolves in fewer than this many hours. Entry-only; exits keep a fixed 2h floor.
Exit thresholdSIMMER_WEATHER_EXIT_THRESHOLD0.45Sell when price above this. Raise this if you raise entry above 0.45, or the skill will self-exit.
Max positionSIMMER_WEATHER_MAX_POSITION_USD2.00Maximum USD per trade
Max trades/runSIMMER_WEATHER_MAX_TRADES_PER_RUN5Maximum trades per scan cycle
LocationsSIMMER_WEATHER_LOCATIONSNYCComma-separated cities (NYC, Chicago, Seattle, Atlanta, Dallas, Miami)
Binary onlySIMMER_WEATHER_BINARY_ONLYfalseSkip range-bucket events, only trade binary yes/no markets
Smart sizing %SIMMER_WEATHER_SIZING_PCT0.05% of balance per trade
Slippage maxSIMMER_WEATHER_SLIPPAGE_MAX0.15Skip trades with slippage above this (0.15 = 15%)
Min liquiditySIMMER_WEATHER_MIN_LIQUIDITY0Skip markets with liquidity below this USD amount (0 = disabled)

Supported locations: NYC, Chicago, Seattle, Atlanta, Dallas, Miami

Quick Commands

bash
# Check account balance and positions
python scripts/status.py

# Detailed position list
python scripts/status.py --positions

API Reference:

  • Base URL: https://api.simmer.markets
  • Auth: Authorization: Bearer $SIMMER_API_KEY
  • Portfolio: GET /api/sdk/portfolio
  • Positions: GET /api/sdk/positions

Running the Skill

bash
# Dry run (default — shows opportunities, no trades)
python weather_trader.py

# Execute real trades
python weather_trader.py --live

# With smart position sizing (uses portfolio balance)
python weather_trader.py --live --smart-sizing

# Check positions only
python weather_trader.py --positions

# View config
python weather_trader.py --config

# Quiet mode — only output on trades/errors (ideal for high-frequency runs)
python weather_trader.py --live --smart-sizing --quiet

How It Works

Each cycle the script:

  1. Fetches active weather markets from Simmer API
  2. Groups markets by event (each temperature day is one event)
  3. Parses event names to get location and date
  4. Fetches NOAA forecast for that location/date
  5. Finds the temperature bucket that matches the forecast
  6. Safeguards: Checks context for flip-flop warnings, slippage, time decay
  7. Trend Detection: Looks for recent price drops (stronger buy signal)
  8. Entry: If min-entry ≤ bucket price < entry threshold and safeguards pass → BUY
  9. Exit: Checks open positions, sells if price > exit threshold
  10. Tagging: All trades tagged with sdk:kalshi-weather for tracking

Safeguards

Before trading, the skill checks:

  • Flip-flop warning: Skips if you've been reversing too much
  • Slippage: Skips if estimated slippage > 15% (tunable via SIMMER_WEATHER_SLIPPAGE_MAX)
  • Time decay: Skips entries if market resolves in < SIMMER_WEATHER_MIN_HOURS_TO_RESOLVE hours (default 2)
  • Market status: Skips if market already resolved
  • Kalshi maintenance: Kalshi's clearinghouse has a weekly maintenance window on Thursdays 3:00-5:00 AM ET — orders during this window will fail

SIMMER_WEATHER_MIN_ENTRY_PRICE (default 0 = off) is the other side of the entry-price check, not this list — --no-safeguards does not disable it.

Disable the flip-flop / slippage / time-decay / resolved checks with --no-safeguards (not recommended).

Troubleshooting

"Safeguard blocked: Severe flip-flop warning"

  • You've been changing direction too much on this market
  • Wait before trading again

"Slippage too high"

  • Market is illiquid, reduce position size or skip

"Resolves in Xh - too soon"

  • Market resolves sooner than SIMMER_WEATHER_MIN_HOURS_TO_RESOLVE (default 2h). Raise the env to skip resolve-day entries.

"Price $X.XX below min entry"

  • Bucket mid is below SIMMER_WEATHER_MIN_ENTRY_PRICE. Lottery-ticket floor; default is off (0).

"No weather markets found"

  • Weather markets may not be active (seasonal)
  • Make sure you've imported Kalshi weather markets first: POST /api/sdk/markets/import/kalshi

"KYC verification required"

  • Complete verification at dflow.net/proof
  • Only required for buys, not sells

"SOLANA_PRIVATE_KEY not set"

  • The SDK signs transactions automatically when this env var is present
  • Fix: export SOLANA_PRIVATE_KEY=<your-base58-secret-key>

"Insufficient SOL for transaction fees"

  • Fund your Solana wallet with at least 0.05 SOL for gas

"API key invalid"

  • Get new key from simmer.markets/dashboard → SDK tab

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Kalshi Weather Trader AI skill do?

Trade Kalshi temperature markets, automate Kalshi weather bets, or check NOAA forecasts using the Simmer SDK and DFlow on Solana.

Why use Kalshi Weather Trader on TypingMind?

Because you install it once and use it with any model. Kalshi Weather Trader is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Kalshi Weather Trader in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/SpartanLabsXyz/simmer-sdk/tree/main/skills/kalshi-weather-trader. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Kalshi Weather Trader?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Kalshi Weather Trader?

As many as you like. As long as a model supports skills, you can use Kalshi Weather Trader with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Kalshi Weather Trader AI skill free?

Yes. It is published on GitHub by SpartanLabsXyz under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇