# Digital Oracle: macro odds from thirteen financial data sources

> Digital Oracle is an agent skill, not a model: it reads SKILL.md, then pulls prediction-market prices, rate curves, regulator filings and derivatives data to answer macro questions with a probability and a reasoning chain. The design bet is that price action carries more signal than commentary, and the engineering bet is that twelve of its thirteen providers need nothing beyond the Python standard library.

**komako-workshop/digital-oracle** — 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 从金融数据中挖掘宏观趋势的数字先知

- Repository: https://github.com/komako-workshop/digital-oracle
- Stars: 859 · Forks: 170
- Language: Python
- License: MIT
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/komako-workshop-digital-oracle

## The premise is that prices already know what commentary does not

The argument starts from noise. Social media is full of emotional forecasts, one person saying housing will crash and another saying gold will fly, and those opinions follow crowd sentiment rather than analysis. Trading data is different, because when someone puts their own money behind an outcome they take it more seriously than they take a short video.

That is the efficient-market insight the skill is built on: public information has already been digested into prices, so everything worth knowing is in the candlesticks. Digital Oracle turns that into a tool by connecting thirteen financial data sources and answering questions with structured probability estimates plus a reasoning chain.

The questions it advertises are the ones that are usually argued rather than measured: the probability of WW3, how long Chinese housing prices will keep falling, whether AI is a bubble, whether now is a good time to buy gold, whether bitcoin has bottomed, whether NVDA options premium is too high. The scope rule is simple: if a market prices it, the skill can put a number on it.

## Thirteen sources, and every API is free and keyless

The source list is where the skill earns its confidence, because it spans markets that disagree with each other on purpose:

| Provider | Data type | Use |
|----------|-----------|-----|
| Polymarket | prediction market contracts | event probability pricing |
| Kalshi | SEC-regulated binary contracts | US political and economic events |
| Stooq | stocks, ETFs, FX, commodities | price history and trends |
| Deribit | crypto derivatives | futures term structure, options IV |
| US Treasury | Treasury yields | rate curve, inflation expectations |
| CFTC COT | futures positions | institutional position direction, smart money |
| CoinGecko | crypto spot | BTC and ETH price, market cap |
| SEC EDGAR | insider trading | Form 4 buy and sell signals |
| BIS | central bank data | policy rates, credit-to-GDP gap |
| World Bank | development indicators | GDP, population, trade |
| Yahoo Finance | US options chain | IV, Greeks, put/call ratio |
| Eastmoney | A-share quotes and money flow | quotes, K-lines, split-order money flow, sector rotation |
| Web Search | web search | VIX, CDS and other supplementary data |

Two entries are worth noticing because they change what a question means. Web Search is counted as one of the thirteen, so the skill is not entirely closed to outside text, and Kalshi is scoped to US political and economic events rather than global ones.

The README states that all APIs are free and require no API key, which removes the usual first obstacle to building on top of them.

## Twelve of the thirteen providers are pure standard library

The dependency story is unusually light. The runtime prerequisite is `uv`, the Python package manager, which the skill uses to execute its Python scripts. Beyond that, twelve of the thirteen data sources have zero external dependencies and run on the Python standard library alone. The exception is options chain analysis, which needs one extra install:

```bash
uv pip install yfinance
```

Four design principles explain why it stays that way. Zero dependency first, which is what makes a skill that an agent clones on demand plausible in the first place. Dependency injection, since every provider accepts an optional `http_client` parameter, which is what makes a provider testable without a socket. Partial failure tolerance, meaning one data source failing does not take down the other results. And snapshot testing: real HTTP responses are recorded and replayed, so the test suite runs in CI with no network at all.

That last point is the one to notice. A skill whose entire value depends on live market data is normally untestable off-network, and this one records responses into `snapshots.py` so its tests stay deterministic.

## Three or more independent sources, pulled in parallel

The method is five steps, and each one is a decision rather than a prompt:

1. Understand the question, breaking down the core variables, the time window, and whether the thing is priceable at all.
2. Choose signals, picking three or more independent data sources according to the type of question.
3. Fetch in parallel, calling several providers at once with `gather()`.
4. Reason about contradictions, finding disagreement between markets and explaining how they can all be correct at the same time.
5. Output a report, a structured multi-layer signal table plus a probability estimate and scenario analysis.

Step two is the anti-confirmation rule: three sources minimum, and independent ones, so a question about gold does not get answered from three price series that move together.

Step four is the part that distinguishes this from a data aggregator. Disagreement between markets is treated as information to explain rather than noise to average away, which is what lets a report say that one market prices an event at a much lower probability than another and give a reason for the gap.

## A-share flow detail is specific: split-order magnitude and sector rotation

Two rows in the source list carry more detail than the others, and both are the kind of thing that only matters if you read the spec closely. The Eastmoney row covers A-share quotes and money flow, and spells out individual stock and ETF quotes, K-line data, split-order-scale money flow, and sector rotation. Split-order tracking is the specific claim here, since large orders broken into retail-sized pieces are exactly the flow a quote-only view misses.

The Yahoo Finance row is scoped to the US options chain for implied volatility, Greeks and the put/call ratio, which is what an options-premium question such as the NVDA example needs. Deribit covers crypto derivatives for futures term structure and options IV, which is the bitcoin-cycle side of the catalogue.

The regulator and institutional sources do the slow-moving work. SEC EDGAR supplies Form 4 buy and sell signals, CFTC commitment-of-traders data gives institutional position direction described as smart money, BIS supplies policy rates and the credit-to-GDP gap, and the World Bank layer covers GDP, population and trade. Treasury yields carry the rate curve and inflation expectations, so a housing question can lean on the macro side rather than on sentiment.

## Install is one clawhub command, or one sentence to your agent

For OpenClaw the install is a single command:

```bash
clawhub install digital-oracle
```

For Claude Code, Cursor, Codex and similar agents the instruction is to tell the agent to install the open-source project and read SKILL.md as its working instructions, pointing it at the repository URL. The agent then clones the code, reads the methodology, and calls the providers itself. There is no packaging step and no registry entry to register, which is why the skill ships a single instruction file at its root.

The README also carries an English version at `README.en.md` alongside the Chinese one this article is drawn from, and a `README.md` that is the default. Note what the install path does not require: no API key, no account, no model download, since every provider is free and unauthenticated.

The one runtime requirement is that `uv` be present, because the skill uses it to run its Python rather than assuming a system interpreter.

## The tree is four directories and one instruction file

The layout explains the whole design:

```
digital-oracle/
├── SKILL.md                # Skill 定义（OpenClaw 读取这个文件）
├── digital_oracle/         # Python 源码
│   ├── concurrent.py       # 并行执行工具
│   ├── http.py             # HTTP 客户端抽象
│   ├── snapshots.py        # HTTP 响应录制/回放（测试用）
│   └── providers/          # 13 个数据 provider
├── references/             # API 速查
│   ├── providers.md        # Provider API 参考
│   └── symbols.md          # 交易符号目录
├── scripts/                # Demo 脚本
└── tests/                  # 单元测试 + fixtures
```

`SKILL.md` is the contract, since that is the file OpenClaw reads and the file an agent is told to load. The `http.py` abstraction is what the `http_client` parameter is injected into, and `snapshots.py` is where recorded responses live, which is why both a testing seam and a network-free test run fit in a small repository.

`references/` holds a provider API reference and a symbol catalogue, so an agent can look up a ticker without re-deriving the naming conventions. There is also an `ITERATION_PLAN.md` at the root, the licence is MIT, the repository has no GitHub releases, and the last push to `main` was 2026-07-26.

## Conclusion

Digital Oracle fits an agent workflow where a macro question deserves a sourced number rather than an opinion, particularly for prediction-market events, options positioning and A-share flow questions where public data is fragmented across a dozen sites. It does not fit as a general research assistant, since it answers only what some market prices, and it will not tell you about a company event nobody is trading. Check three things before you trust a number from it: that the question is actually priceable, because that is its own admission criterion; that at least three independent sources contributed, since a report resting on one market is a quote and not an estimate; and that `uv` is installed, because the skill runs its Python through it and the options chain path additionally needs `yfinance`. For anything involving data it does not cover, treat web search as the weak link in an otherwise closed design.

## FAQ

### What is Digital Oracle?

It is an open-source agent skill that answers macro questions with probability estimates mined from 13 financial data sources rather than from news or commentary. It works on OpenClaw, Claude Code, Cursor and Codex, and its output is a structured multi-layer signal table with a probability estimate and scenario analysis.

### Which data sources does Digital Oracle use?

Thirteen: Polymarket and Kalshi for prediction markets, Stooq for price history, Deribit for crypto derivatives, US Treasury yields, CFTC commitment of traders, CoinGecko for crypto spot, SEC EDGAR Form 4 filings, BIS central bank data, World Bank indicators, Yahoo Finance for the US options chain, Eastmoney for A-share quotes and money flow, and web search for things like VIX and CDS. All APIs are free and need no API key.

### How does Digital Oracle choose its sources?

In five steps: it breaks the question into variables, time window and whether it is priceable; it selects three or more independent data sources; it fetches them in parallel with gather(); it reasons about contradictions between markets, explaining how they can all be correct; and it outputs a structured signal table with a probability estimate and scenario analysis.

### What does Digital Oracle need installed to run?

uv, the Python package manager, which the skill uses to execute its Python scripts. Twelve of the thirteen providers then need nothing beyond the standard library, while options chain analysis requires one extra install: uv pip install yfinance. Providers also accept an optional http_client for testing, and recorded HTTP responses let the test suite run without network access.

### How do I install the Digital Oracle skill?

On OpenClaw, run clawhub install digital-oracle. On Claude Code, Cursor or Codex, tell the agent to install the open-source project and read SKILL.md as its working instructions, giving it the repository URL; it clones the code, reads the methodology and calls the providers itself.

## Sources

- [Issues](https://github.com/komako-workshop/digital-oracle/issues)
- [komako-workshop/digital-oracle on GitHub](https://github.com/komako-workshop/digital-oracle)
- [License: MIT](https://github.com/komako-workshop/digital-oracle/blob/main/LICENSE)
- [README](https://github.com/komako-workshop/digital-oracle/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/komako-workshop-digital-oracle
