A self-hosted Kalshi cockpit built for both humans and AI agents.
Live WebSocket market data, a Kalshi-style market board with props folded under their matchups, multi-model AI research (Claude / ChatGPT / Grok / Ollama), a dedicated agent API with its own credential — and guarded order execution behind a mode gate, a risk engine, and a kill switch. One local web app, reachable from anywhere over Tailscale.
- Kalshi-style market board. Categories first, busiest first. Sports derivatives — spreads, team totals, player props — are grouped under their parent matchup with a
▸ N propsexpander, instead of flooding the board as sibling cards. In the detail view, GAME chips hop between Winner / Spread / Team Total / player props for the same game. Search matches folded props, so "judge home run" surfaces the Yankees game. - Live everything. The backend keeps order books current over Kalshi's WebSocket (snapshot + delta with sequence resync) and rebroadcasts to the browser — no polling. Visible cards subscribe to live books; lopsided resting depth and aggressive taker flow get flagged on the card.
- Smart-money read. Order-flow heuristic per market: resting-depth imbalance, taker flow, and large-trade skew, weighted into a lean. Honest about what it is — Kalshi doesn't publish holders.
- Multi-model research — with a scoreboard. Claude, ChatGPT, Grok, and local Ollama each get the market, book, and flow; their probabilities ensemble into one verdict with an explicit edge vs. the market price. Calibrated to say PASS most of the time. Every verdict is logged and scored after the market settles: Brier score per model against the market price itself, recommendation hit rate, realized edge — the Σ ai stats view tells you which models to actually trust.
- Agent-native, two ways. A separate, revocable
AGENT_TOKENunlocks/api/agent/*for any external agent (browse → research → guarded order), and a zero-dependency MCP server (mcp/server.mjs) exposes the same surface as native tools for Claude Desktop / Claude Code / any MCP client. A bundled Claude Code skill teaches Claude sessions how to drive it safely. - Positions & orders management. The ▤ portfolio view shows every open position with live marks and unrealized P&L, one-click close, and resting orders with one-click cancel — mirrored on the agent API.
- Book-aware pricing. The trade panel prices orders off the live book: instant (pay the ask, fills now), mid (middle of the spread), bid+1 (beat the best resting bid — first in queue), or custom — click any level in the order-book ladder to load it as your price. The buttons flip from BUY to BID when your order would rest, the panel shows exactly what each mode saves vs. paying the ask, and resting bids are good-till-canceled with a one-click cancel.
- The AI monitor. Open any market and click 👁 Add to AI monitor — the AI re-researches it every few minutes (
MONITOR_MINUTES) and shows its read live in the portfolio view. In armed AUTO mode it buys when the edge clears your bar — once per market, position-aware (it never stacks or re-buys), sized by your risk caps, and it reports exactly why it did or didn't act. This is the only path that places orders automatically. - Guarded execution. Three modes — RESEARCH (orders blocked), APPROVE (human click required), AUTO (armed + risk-limited only). Every order from every source passes the same risk engine; the red KILL switch stops everything instantly.
- https://github.com/jangles-byte/ALSHI