Skip to content
Automation
Skill

/mm

Market making - two-sided quoting with inventory management

From plugin
cloddsbot
3.1k121 skills

Claude Code

$ npx -y skills add alsk1992/CloddsBot --skill mm --agent claude-code

SKILL.md

mm.SKILL.md
name: mm
description: "Market making - two-sided quoting with inventory management"
emoji: "📊"
gates:
  envs:
    anyOf:
      - POLY_API_KEY
      - KALSHI_API_KEY

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

1. **Fair value** computed from orderbook (weighted mid, VWAP, or EMA) 2. **Spread** adjusted by recent volatility (wider in volatile markets) 3. **Skew** shifts quotes away from overweight side to manage inventory 4. **Quotes** placed as post-only maker orders (bid and ask) 5. **Requote** cycle: cancel all, recalculate, place new orders 6. **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);
Read more
@alsk1992
Ships withcloddsbot

Open Source AI trading agent that operates autonomously across 1000+ markets - Polymarket, Kalshi, Binance, Hyperliquid, Solana DEXs, 5 EVM chains. Scans for edge, executes instantly, manages risk while you sleep. Agent commerce protocol for machine-to-machine payments. Self-hosted. Built on Claude.

3.1k121 skills
Get the whole plugin

Stars on GitHub

Momentum

stars in total
3.1k
Star history of alsk1992/CloddsBot on GitHub, a chart by star-history.com

Other skills on cloddsbot.

acp

acp

Enable agent-to-agent commerce with on-chain escrow, cryptographic agreements, and service discovery.

@alsk1992@alsk1992Install Skill

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n2w209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about mm.

Which coding agents can use mm?
mm installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.