Model or dataset
komako-workshop/digital-oracle avatar
komako-workshop/digital-oracle

Digital Oracle: Probability Estimates for Macro Questions, Built as an Agent Skill

AI agent skill that answers macro questions — housing, gold, BTC, geopolitics — with probability estimates mined from 13 financial data sources (Polymarket, Kalshi, CFTC, SEC & more). For Claude Code / Cursor / Codex / OpenClaw. | 让 AI Agent 从金融数据中挖掘宏观趋势的数字先知

816 stars164 forksPythonMIT

At a glance

What is it?
Digital Oracle is an MIT-licensed Python skill that lets an AI agent pull from 13 free financial data sources and return structured probability estimates for questions like housing, gold, BTC and conflict risk. The design is honest about where it gets its numbers, but the output is only as good as the markets it can reach.
Who is it for?
Adopt Digital Oracle if you already run Claude Code, Cursor, Codex or OpenClaw and want a reproducible, free-data path from a macro question to a probability estimate with a visible reasoning chain. Skip it if your question has no liquid market pricing it, or if you need a maintained product with releases and support.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 51 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The Gap Digital Oracle Fills: From Opinion to Priced Probability

Most macro commentary arrives as a claim with no number attached. The README frames the problem directly: social feeds carry emotional predictions about housing crashes, gold rallies and imminent conflict, and those predictions track crowd mood rather than data. Digital Oracle's wager is that traded prices are a better input, because someone putting money behind an outcome behaves differently from someone posting a clip. The project states this as the efficient market insight that all public information is already absorbed into price.

The audience is narrow and specific. This is an agent skill, not a standalone application. It targets people running Claude Code, Cursor, Codex or OpenClaw who want their agent to answer questions such as the probability of a wider war, how long Chinese housing declines persist, whether AI is a bubble, or whether NVDA option premiums are stretched. The README lists those exact prompts. If you do not already have one of those agents in your workflow, there is nothing here to adopt.

How the Skill Turns a Question into a Signal Table

The pipeline described in the README has five stages. The agent first decomposes the question into core variables, a time window and a check on whether the question is priceable at all. It then selects at least three independent data sources matched to the question type. Providers are called concurrently through a `gather()` helper. The fourth stage is the interesting one: the agent looks for disagreement between markets and explains why two markets can both be right at the same time. The output is a structured multi-layer signal table plus a probability estimate and scenario analysis.

The concurrent execution lives in `digital_oracle/concurrent.py`, and HTTP access is abstracted in `digital_oracle/http.py`. Every provider accepts an optional `http_client` argument, which is dependency injection for testing. `digital_oracle/snapshots.py` records and replays HTTP responses, so the test suite runs in CI without network access. Partial failure is tolerated by design: one dead provider does not void the other results. That matters because the skill depends on thirteen external endpoints that it does not control.

The 13 Providers and What Each One Is Actually For

The provider table is the substance of the project. Polymarket supplies prediction market contracts for event probability pricing. Kalshi supplies SEC-regulated binary contracts covering US political and economic events. Stooq covers equities, ETFs, FX and commodities for price history and trend. Deribit provides crypto derivatives, specifically futures term structure and option implied volatility. US Treasury gives the yield curve and inflation expectations. CFTC COT reports institutional futures positioning, which the README labels smart money direction. CoinGecko covers crypto spot prices and market cap. SEC EDGAR surfaces Form 4 insider buy and sell signals. BIS contributes central bank policy rates and credit-to-GDP gaps. World Bank adds development indicators such as GDP, population and trade. Yahoo Finance supplies US option chains with IV, Greeks and put/call ratio. Eastmoney covers A-share quotes and fund flows, including order-splitting flow magnitude and sector rotation. A web search provider backfills VIX, CDS and similar data.

According to the README, all APIs are free and require no API key. That is the single most consequential design decision in the project, and it cuts both ways: no key management, but also no service level agreement, no quota guarantee and no support channel if a provider changes its response format.

Installation Paths and the One Dependency That Is Not Optional Everywhere

For OpenClaw, installation is a single command: `clawhub install digital-oracle`. For other agents, the README's instruction is to tell the agent to install the project and read `SKILL.md` as its working instructions, pointing at the repository URL. The agent is expected to clone the code, read the methodology and call providers itself.

The prerequisite is `uv`, the Python package manager, used to execute the skill's Python scripts. Twelve of the thirteen providers use only the Python standard library. Option chain analysis is the exception and needs `uv pip install yfinance`. Note the gap between that instruction and the provider table: the table lists Yahoo Finance as the option chain source, and the dependency note names yfinance. The README does not spell out whether the Yahoo provider is the only one affected or whether yfinance is a transitive requirement elsewhere, so verify that before relying on options data.

The repository layout is flat and readable: `SKILL.md` at the root, `digital_oracle/` for source, `references/providers.md` and `references/symbols.md` for API and symbol lookups, plus `scripts/` demos and `tests/` with fixtures. There are no releases listed in the material provided, so there is no versioned artifact to pin against.

Where Digital Oracle Breaks Down

The core limitation is stated in the project's own framing: it can answer a question only when a market is pricing that question. The README says so explicitly, that as long as a market is pricing something, the skill can give a trading-data-based estimate. The inverse is the failure mode. A question with no liquid contract, no relevant futures positioning and no tradable proxy has nothing for the providers to mine, and the skill has no fallback beyond web search for items like VIX and CDS. If your question is about a local policy decision, a private company or a regional housing market with no derivatives, the skill will either return thin signals or silently lean on the weakest available proxy.

The second issue is dependency on third-party endpoints it does not operate. Thirteen free APIs with no key means thirteen possible silent changes. Partial failure tolerance keeps the report from collapsing, but it also means a report can be produced from four providers when you expected six. The README does not describe any staleness indicator or per-provider health check in the output format, so the burden of noticing a missing layer falls on the reader.

Third, the output is a probability estimate with a reasoning chain, not a calibrated model. Nothing in the material describes backtesting, calibration curves or historical accuracy measurement. Treat the number as a structured summary of what markets imply today, not as a forecast with a known error rate.

How It Differs from Asking a General-Purpose Agent Directly

The obvious alternative is to ask Claude Code or Cursor the same macro question with no skill installed. The difference is not intelligence, it is provenance. A general agent answers from training data and whatever it retrieves at inference time, and the sourcing is opaque. Digital Oracle constrains the agent to a fixed provider set, forces selection of at least three independent sources per question, and requires the disagreement step to be written out. The output is a table you can audit line by line against `references/providers.md`.

The trade-off runs the other way too. A general agent can reason about a question no market prices; Digital Oracle cannot. A general agent can read a filing or a policy document; Digital Oracle deliberately does not read articles, videos or podcasts, only financial data. That self-imposed blindness is the source of its discipline and also its ceiling. If your question is fundamentally qualitative, the skill's constraint becomes a liability rather than a feature.

Licence, Maintenance and What You Are Actually Taking On

The project is MIT licensed, copyright 2026 komako-workshop, with the licence file at `LICENSE`. MIT permits commercial use, modification and redistribution provided the copyright notice and permission notice are retained. That is a permissive baseline, but it says nothing about the upstream data providers, whose own terms govern how their data may be used. Several of the named sources, including SEC EDGAR and BIS, publish under their own conditions. If you plan to redistribute outputs commercially, read those terms separately; this is not legal advice.

Maintenance cost is the real variable. The material shows no releases, no version tags and no changelog, so updates arrive as commits to `main`. The snapshot testing infrastructure in `digital_oracle/snapshots.py` is the mitigation: recorded HTTP responses mean a provider schema change should surface as a failing test rather than a silent wrong number. That only works if you run the test suite, and only for providers covered by fixtures. Budget for periodic `uv` environment refreshes and for the possibility that one of the thirteen free endpoints disappears without notice.

Editorial conclusion

Adopt Digital Oracle if you already run Claude Code, Cursor, Codex or OpenClaw and want a reproducible, free-data path from a macro question to a probability estimate with a visible reasoning chain. Skip it if your question has no liquid market pricing it, or if you need a maintained product with releases and support. Before trusting any output, verify that the providers it selected actually price your question, and check whether the optional yfinance dependency is installed if you expect options-chain analysis.

Official sources

  1. Issues
  2. komako-workshop/digital-oracle on GitHub
  3. License: MIT
  4. README
Community notes

Community notes