manifold-watch
Get pinged the second a Manifold Markets prediction moves.
Tiny Python CLI that polls Manifold's public API, watches the BINARY markets you care about, and fires alerts to your console / Telegram / Discord the moment a market's implied probability crosses a threshold you set.
No keys, no auth, no signup. Just a YAML file and a wallet for tips.
[manifold-watch] BTC $65k in June [UP] 0.890 -> 0.992 (+11.46%)
[manifold-watch] BTC $100k EOM Jun [DN] 0.040 -> 0.014 (-65.00%)
Family of tools (same author, same wallet, same UX):
- 🟢 polywatch — Polymarket alert CLI
- 🟢 kalshiwatch — Kalshi alert CLI
- 🟢 manifold-watch — you're here (Manifold Markets)
- 🟢 polywatch-presets — ready-made polywatch configs
- 🟢 prediction-market-mcp — MCP server for Claude/LLMs, covering all three venues with cross-venue arb discovery
- 🟢 prediction-markets-live — read-only dashboard
Why
Manifold Markets is the play-money cousin of Polymarket / Kalshi — fewer dollars at stake, but a much wider catalogue (5k+ active markets at any given time) and weirder long-tail topics that don't show up on the regulated venues. Useful as a "what is the smart money thinking about X?" sensor, and great for cross-venue divergence trading against Polymarket / Kalshi.
This is the same polywatch / kalshiwatch UX, ported to Manifold's API.
Install
pip install git+https://github.com/creampig666/manifold-watch.git
Or clone:
git clone https://github.com/creampig666/manifold-watch.git
cd manifold-watch && pip install -e .
60-second start
manifold-watch init # writes config.yaml
$EDITOR config.yaml # change the slugs to ones you care about
manifold-watch test-alert # verify your Telegram / Discord wiring
manifold-watch run # go
Sample config.yaml:
poll_interval_sec: 60
markets:
- slug: bitcoin-65k-in-june
name: BTC $65k in June
threshold_pct: 5
direction: any # up | down | any
- slug: bitcoin-100k-before-end-of-june-202
name: BTC $100k EOM Jun
threshold_pct: 5
direction: any
alerts:
console: true
# telegram:
# bot_token: ${TELEGRAM_BOT_TOKEN} # env vars supported
# chat_id: ${TELEGRAM_CHAT_ID}
# discord:
# webhook: https://discord.com/api/webhooks/.../...
The slug is the final URL segment of a Manifold market page (e.g. bitcoin-65k-in-june from https://manifold.markets/...market.../bitcoin-65k-in-june).
Only BINARY markets are supported in v1 (the ones with a single probability). MULTIPLE_CHOICE and free-response markets are skipped with a warning.
How it works
- Every
poll_interval_secseconds, fetch each configured market fromapi.manifold.markets/v0/slug/{slug}. - Compare
probability(0.0 – 1.0) to the value seen last tick. - If the change ≥ threshold (and direction matches), build an
AlertEventand dispatch to every enabled channel. - Failed channels log the error and don't break the loop.
State is in-memory — restart resets the comparison baseline, no DB.
Manifold + Polymarket + Kalshi = triangulation
Running all three watchers side by side gives you a cheap, real-time view of "where do the smart money, the regulated money, and the play money disagree?" The prediction-market-mcp server exposes all three to Claude with a single find_arb_opportunities query.
Roadmap (PRs welcome)
- MULTIPLE_CHOICE support (per-answer probability tracking)
- Volume-spike alerts (not just price)
- Cross-venue divergence alerts (vs Polymarket / Kalshi)
- State persistence
Tip jar
Free and stays free. If it saved you a refresh tic:
0x17Fb06dE9D5945eaFf6FBBf4c264E505D38182A4 # EVM (ETH / USDC / any EVM L2)
License
MIT. See LICENSE.
Release files for manifold-watch 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| manifold_watch-0.1.0.tar.gz | 12.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| manifold_watch-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.1 kB
Release files / manifold_watch-0.1.0.tar.gz
| Download URL | manifold_watch-0.1.0.tar.gz |
|---|---|
| Size | 12.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6a565d5428b58dd36d206374e9fef24170cdcc33500cf8b76696353a8442ccff
|
|
BLAKE2b-256 checksum How to use checksums |
fa10f651f9cc2bdbca9b59ab9866def94063d9a0aac6030e0c8e70fafc4fb684
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / manifold_watch-0.1.0-py3-none-any.whl
| Download URL | manifold_watch-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0fec7f384d971d4c580e08e202afb7e049cb8c2a4021a5499c1c42183b6947bf
|
|
BLAKE2b-256 checksum How to use checksums |
d6d35e58b927c79b309b22154ea816a8113952a93d342798cd421eb67834155c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|