Install
openclaw skills install market-morning-briefDaily morning and evening intelligence digest for prediction market traders. Morning brief: Kalshi portfolio P&L, Polymarket trending markets, crypto prices — scannable in 30 seconds. Evening brief: lightweight market summary or AI-filtered news digest with two-stage Qwen materiality gate. Works standalone; unlocks additional sections automatically when paired with Kalshalyst (edges), Prediction Market Arbiter (divergences), and Xpulse (social signals). Hub of the OpenClaw Prediction Market Trading Stack.
openclaw skills install market-morning-briefMarket Morning Brief is a lightweight, resilient daily intelligence system designed to be the first thing you read each morning. It combines:
The brief is designed for 30-second scanning — each section is 3-8 lines maximum. If a data source is unavailable, the section gracefully degrades to "unavailable" and the brief continues. If Kalshi credentials are not configured yet, the brief shows a realistic preview portfolio and edge block so first-time users still see value immediately.
Every Evening (Default: 6:00 PM): Day's activity summary (positions opened/closed, realized P&L), watch list for overnight risks, top X signals from the day, and unusual market activity.
Resilience through isolation. Each section:
Plain text output. No markdown, no emojis, no formatting — designed for chat delivery:
Configurable integration. The brief reads from:
.kalshi_research_cache.json).crossplatform_divergences.json).x_signal_cache.json)If a cache file doesn't exist (skill not installed), that section simply shows "unavailable".
Create or update your config.yaml when you want live account data. The first run works without it and shows preview output:
market_morning_brief:
enabled: true
morning_time: "07:30" # Schedule for morning brief
evening_time: "18:00" # Schedule for evening brief
timezone: "America/New_York"
# Kalshi API (required for portfolio section)
kalshi:
enabled: true
api_key_id: "your-key-id"
private_key_file: "/path/to/private.key"
# Coinbase API (optional, for crypto prices)
coinbase:
enabled: false
api_key: "sk-..."
tickers: ["BTC", "ETH"] # Customize as needed
# Cache paths (for reading other skills' data)
cache_paths:
kalshalyst: "./state/.kalshi_research_cache.json"
arbiter: "./state/.crossplatform_divergences.json"
xpulse: "./state/.x_signal_cache.json"
# Which sections to include
include:
portfolio: true
kalshalyst_edges: true # Requires Kalshalyst skill
arbiter_divergences: true # Requires Prediction Market Arbiter skill
xpulse_signals: true # Requires Xpulse skill
crypto: false # Requires Coinbase API key
polymarket: true # Free (public API)
Data source: Kalshi API (read-only)
Example output:
PORTFOLIO (3 positions, +$24 unrealized):
POTUS-2028-DEM YES 100@48¢ $48 cost +$18 unrl (exp: 242 days)
UKRAINE-2026-NO YES 50@28¢ $14 cost +$8 unrl (exp: 118 days)
FED-MAR-CUT NO 200@35¢ $70 cost -$2 unrl (exp: 8 days)
Fields:
Graceful degradation: If Kalshi API unavailable:
PORTFOLIO: unavailable (check Kalshi API)
Data source: Kalshalyst cache (.kalshi_research_cache.json)
Example output:
EDGES (Kalshalyst, top 3):
1. POTUS-2028-DEM NO @ 38% (+14% edge, 72% conf)
2. INFLATION-2026 YES @ 68% (+8% edge, 65% conf)
3. UKRAINE-PEACE YES @ 55% (+6% edge, 58% conf)
Fields:
Graceful degradation: If Kalshalyst skill not installed:
EDGES: unavailable — unlock with: clawhub install kalshalyst
Data source: Prediction Market Arbiter cache (.crossplatform_divergences.json)
Example output:
DIVERGENCES (Arbiter, Kalshi ↔ Polymarket):
UKRAINE-2026-NO Kalshi 28% ↔ PM 31% ($0.03 spread, 12% vol diff)
POTUS-2028-DEM Kalshi 38% ↔ PM 40% ($0.02 spread, 8% vol diff)
Fields:
Graceful degradation: If Arbiter skill not installed:
DIVERGENCES: unavailable — unlock with: clawhub install prediction-market-arbiter
Data source: Xpulse cache (.x_signal_cache.json)
Example output:
X SIGNALS (Xpulse, last 24h):
Fed rate cut odds +5% (confidence: 78%, reach: 8.2K)
Ukraine ceasefire talks (+3%, 72% conf, 5.1K reach)
Fields:
Graceful degradation: If Xpulse skill not installed:
X SIGNALS: unavailable — unlock with: clawhub install xpulse
Data source: Coinbase API (requires key + configuration)
Example output:
CRYPTO:
BTC $62,400 (+1.2%) | ETH $3,140 (-0.8%)
SOL $142 (-2.1%) | AVAX $38 (+0.5%)
Fields:
Graceful degradation: If Coinbase not configured:
CRYPTO: unavailable (configure Coinbase API for crypto prices)
Data source: Public Polymarket API (free)
Example output:
POLYMARKET (top 3 by volume):
POTUS 2028: $2.4M vol, 48% DEM (vs 52% GOP)
Inflation >4% 2026: $1.1M vol, 32% prob
Bitcoin $100K by 2026: $0.8M vol, 58% prob
Fields:
Graceful degradation: If Polymarket API unavailable:
POLYMARKET: unavailable (check Polymarket directly)
Sent at configured evening time (default: 6:00 PM). Two variants: lightweight market update or full news digest with materiality filtering.
EVENING BRIEFING — Thursday, March 7, 2026
ACTIVITY:
Current positions: 3 | Cost: $132 | Unrealized: +$24
OVERNIGHT WATCH:
• FED-MAR-CUT expires in 8 days — monitor Fed speakers before FOMC
• UKRAINE-2026 low liquidity (9 contracts asking) — wide spreads
TOP X SIGNALS TODAY:
• Ukraine ceasefire talks +3% (78% conf)
• Fed rate cut odds stabilizing (72% conf)
Key differences from morning brief:
EVENING NEWS BRIEFING — Thursday, March 7, 2026
🏛️ Fed Signals Cautious Stance on Rate Cuts (87% conf, Reuters)
📈 Tech Stocks Rally on Earnings Beat (82% conf, Bloomberg)
🌍 Geopolitical Tensions Escalate Over Trade Deal (79% conf, AP)
💻 AI Policy Bill Advances in Congress (76% conf, TechCrunch)
📌 Crypto Markets Stabilize After Volatility (71% conf, CoinDesk)
Features:
Evening briefing combines DuckDuckGo news search with local Qwen LLM for AI-powered news curation. Designed to prevent notification fatigue while surfacing genuinely material developments.
Stage 1: Relevance & Significance Filter
Stage 2: Materiality Gate (Prevents Notification Fatigue)
Fail-Closed Design:
~/.openclaw/state/evening_news_history.json (max 200 entries, auto-cleanup)market_morning_brief:
evening_briefing:
enabled: true
mode: "news" # "market" for activity summary, "news" for full news digest
time: "18:00" # Briefing time (30-min window)
materiality_gate: true # Enable Stage 2 filter (prevents fatigue)
min_confidence: 0.7 # Minimum relevance threshold (0-1)
max_per_topic: 3 # Max articles per topic to search
topics:
- "prediction markets"
- "AI policy"
- "federal reserve"
- "geopolitics"
# Lightweight market variant (activity + watch list)
python scripts/evening_brief.py --mode market
# Full news digest variant
python scripts/evening_brief.py --mode news
# Force send regardless of time/already-sent-today
python scripts/evening_brief.py --force
# Dry run (print without sending)
python scripts/evening_brief.py --dry-run
# Enable verbose logging
python scripts/evening_brief.py --debug
Stored at ~/.openclaw/state/evening_news_history.json. Max 200 entries, auto-cleans after 48 hours. Used by Stage 2 materiality gate to prevent duplicate notifications.
Each optional skill writes a cache file that the Morning Brief reads automatically:
| Skill | Cache File | Section Unlocked |
|---|---|---|
| Kalshalyst | state/.kalshi_research_cache.json | Edge opportunities |
| Prediction Market Arbiter | state/.crossplatform_divergences.json | Cross-platform divergences |
| Xpulse | state/.x_signal_cache.json | X/Twitter signals |
If a cache file doesn't exist, that section shows "unavailable" with the install command. See references/integration.md for cache file schemas.
MARKET MORNING BRIEF — Thursday, March 7, 2026
PORTFOLIO (3 positions, +$24 unrealized):
POTUS-2028-DEM YES 100@48¢ $48 cost +$18 unrl (exp: 242 days)
UKRAINE-2026-NO YES 50@28¢ $14 cost +$8 unrl (exp: 118 days)
FED-MAR-CUT NO 200@35¢ $70 cost -$2 unrl (exp: 8 days)
EDGES (Kalshalyst, top 3):
1. POTUS-2028-DEM NO @ 38% (+14% edge, 72% conf)
2. INFLATION-2026 YES @ 68% (+8% edge, 65% conf)
3. UKRAINE-PEACE YES @ 55% (+6% edge, 58% conf)
DIVERGENCES (Arbiter):
UKRAINE-2026-NO Kalshi 28% ↔ PM 31% ($0.03 spread)
POTUS-2028-DEM Kalshi 38% ↔ PM 40% ($0.02 spread)
X SIGNALS (last 24h):
Fed rate cut odds +5% (78% conf, 8.2K reach)
Ukraine ceasefire +3% (72% conf, 5.1K reach)
CRYPTO:
BTC $62,400 (+1.2%) | ETH $3,140 (-0.8%)
POLYMARKET (top 3 by vol):
POTUS 2028 DEM: $2.4M vol, 48% prob
Inflation >4% 2026: $1.1M vol, 32% prob
Bitcoin >$100K 2026: $0.8M vol, 58% prob
# Manual trigger
python scripts/morning_brief.py
# With debug output
python scripts/morning_brief.py --debug
# Dry run (print without side effects)
python scripts/morning_brief.py --dry-run
# Custom config path
python scripts/morning_brief.py --config /path/to/config.yaml
# Via OpenClaw (if integrated):
openclaw skill run market-morning-brief morning
30 7 * * * python /path/to/scripts/morning_brief.py # Morning at 7:30 AM
0 18 * * * python /path/to/scripts/evening_brief.py --mode market # Evening at 6:00 PM
Required: Python 3.10+, pip install kalshi-python requests pyyaml
For evening news digest: Ollama + Qwen model (ollama pull qwen3:latest), plus pip install ddgs (or duckduckgo-search as fallback).
Optional skills for additional brief sections: Kalshalyst, Prediction Market Arbiter, Xpulse (see Implementation Notes below).
If Kalshalyst, Arbiter, Xpulse installed:
Portfolio not showing: Verify Kalshi API key is configured and not rate-limited. Run python scripts/morning_brief.py --debug.
Sections showing "unavailable": Expected if the skill isn't installed. Install with the clawhub install command shown in the output, then run the skill once to generate its cache file.
Evening news empty: Check Ollama is running (ollama list), test Qwen (ollama run qwen3:latest "test"), and verify ddgs (python -c "from ddgs import DDGS; print('OK')").
Stage 2 drops everything: The materiality gate filters out non-novel news. Clear history with rm ~/.openclaw/state/evening_news_history.json and retry, or disable with --no-materiality-gate.
Qwen timeout: Reduce article count with --max-per-topic 2 or skip Stage 2 with --no-materiality-gate.
This skill is designed for standalone operation but unlocks its full potential with the OpenClaw Prediction Market Trading Stack.
Standalone: Portfolio P&L + Polymarket trending + Crypto prices (if configured). No other skills required.
With the full stack: Each additional skill adds a new section to your daily brief automatically — no configuration needed. Install skills, run them once, and the Morning Brief picks up their cache files on the next run.
| Skill | Unlocks | Install |
|---|---|---|
| Kalshalyst | Contrarian edge analysis with Kelly sizing | clawhub install kalshalyst |
| Prediction Market Arbiter | Cross-platform Kalshi↔Polymarket divergences | clawhub install prediction-market-arbiter |
| Xpulse | Real-time X/Twitter social signals | clawhub install xpulse |
| Portfolio Drift Monitor | Position drift alerts between briefs | clawhub install portfolio-drift-monitor |
| Kalshi Command Center | Direct trade execution from edge alerts | clawhub install kalshi-command-center |
Install the complete stack:
clawhub install kalshalyst kalshi-command-center polymarket-command-center prediction-market-arbiter xpulse portfolio-drift-monitor market-morning-brief personality-engine
references/sections.md for detailed section documentationreferences/integration.md for technical integration guidereferences/evening-pipeline.md for evening briefing pipeline documentationFor issues: run with DEBUG=1 for verbose output, review references/sections.md and references/integration.md, or check /tmp/market-morning-brief.log.
Author: KingMadeLLC
Found a bug? Have a feature request? Want to share results?
Part of the OpenClaw Prediction Stack — the first prediction market skill suite on ClawHub.