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.
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| manifold_watch-0.1.0.tar.gz | 12.4 kB | Without provenance | Details for manifold_watch-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| manifold_watch-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for manifold_watch-0.1.0-py3-none-any.whl |
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
|
Security for manifold-watch 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.