mm
SKILL.md
Market Making Skill
Automated two-sided quoting on prediction markets with inventory skew, volatility-adjusted spreads, and risk controls.
Supported Platforms
- Polymarket (post-only maker orders, zero taker fees)
- Kalshi
Chat Commands
Lifecycle
/mm start <platform> <marketId> <tokenId> [flags] Start market making
/mm stop <id> Stop and cancel all orders
/mm list List active market makers
Monitoring
/mm status Overview of all active MMs
/mm status <id> Detailed state for one MM
Configuration
/mm config <id> View current config as JSON
/mm config <id> --spread 3 Update config (takes effect next requote)
Start Flags
| Flag | Default | Description |
|---|---|---|
--spread N |
2 | Base half-spread in cents |
--min-spread N |
1 | Minimum spread floor (cents) |
--max-spread N |
10 | Maximum spread cap (cents) |
--size N |
50 | Order size per side (shares) |
--max-inventory N |
500 | Max inventory before aggressive skew |
--skew N |
0.5 | Inventory skew factor (0-1) |
--vol-mult N |
10 | Volatility multiplier for spread widening |
--alpha N |
0.3 | EMA alpha for fair value smoothing (0-1) |
--fv-method M |
weighted_mid | Fair value method: mid_price, weighted_mid, vwap, ema |
--interval N |
5000 | Requote interval in ms |
--threshold N |
1 | Min price change (cents) to trigger requote |
--max-pos N |
1000 | Max position value in USD |
--max-loss N |
100 | Max loss before auto-halt (USD) |
--max-orders N |
1 | Orders per side (levels) |
--level-spacing N |
(=spread) | Cents between price levels |
--level-decay N |
0.5 | Size decay per level (0-1, e.g. 0.5 = each level half of previous) |
--neg-risk true |
false | Enable negative risk mode (Polymarket crypto) |
--name "Name" |
auto | Display name for the outcome |
Examples
# Start with defaults
/mm start polymarket 0xabc123 98765
# Custom spread and sizing
/mm start polymarket 0xabc123 98765 --spread 3 --size 100 --max-inventory 1000
# Tight spread for liquid market
/mm start polymarket 0xabc123 98765 --spread 1 --min-spread 1 --max-spread 5 --interval 2000
# 3-level quoting: L1=50 shares, L2=25, L3=12 — spaced 2c apart
/mm start polymarket 0xabc123 98765 --max-orders 3 --level-spacing 2 --level-decay 0.5 --size 50
# Check all running MMs
/mm status
# Widen spread on the fly
/mm config polymarket_98765678 --spread 4
# Shut down
/mm stop polymarket_98765678
How It Works
- Fair value computed from orderbook (weighted mid, VWAP, or EMA)
- Spread adjusted by recent volatility (wider in volatile markets)
- Skew shifts quotes away from overweight side to manage inventory
- Quotes placed as post-only maker orders (bid and ask)
- Requote cycle: cancel all, recalculate, place new orders
- Auto-halt if realized P&L exceeds max loss threshold
API Usage
import { createMMStrategy, type MMConfig } from '../trading/market-making';
const config: MMConfig = {
id: 'btc-yes',
platform: 'polymarket',
marketId: '0x...',
tokenId: '12345',
outcomeName: 'BTC > 100k',
baseSpreadCents: 2,
minSpreadCents: 1,
maxSpreadCents: 10,
orderSize: 50,
maxInventory: 500,
skewFactor: 0.5,
volatilityMultiplier: 10,
fairValueAlpha: 0.3,
fairValueMethod: 'weighted_mid',
requoteIntervalMs: 5000,
requoteThresholdCents: 1,
maxPositionValueUsd: 1000,
maxLossUsd: 100,
maxOrdersPerSide: 1,
};
const strategy = createMMStrategy(config, { execution, feeds });
botManager.registerStrategy(strategy);
await botManager.startBot(strategy.config.id);
Weekly Installs
7
Repository
alsk1992/cloddsbotGitHub Stars
62
First Seen
Feb 20, 2026
Security Audits
Installed on
opencode7
github-copilot7
codex7
kimi-cli7
gemini-cli7
cursor7