A model asked for a tarot reading will happily invent the cards, and nothing in the output shows it did. Moving the draw into a script — with system randomness by default, seeded mode quarantined to tests, and method metadata in the JSON — makes the result reproducible and auditable, which is a real property whatever you think of divination. The project states its own frame plainly: this is symbolic reasoning and reflection, not prediction, and approximate modes emit warnings rather than passing themselves off as traditional.
A divination toolkit for AI agents, published as the `oraclebone` package, that separates two jobs most prompts blur together. A local script produces the card draw, the hexagram, the Xiao Liu Ren position or the Bazi chart; the model reads that result and interprets it. It never generates the result itself.
- A tarot draw using an audited Fisher-Yates shuffle, major or full deck, with spreads and reversals — `tarot_draw`
- An I Ching cast by coins, yarrow or manual lines, returning both the primary and the resulting hexagram — `iching_cast`
- A Xiao Liu Ren cast from lunar-style numbers, a time, or lunar time — `xiaoliuren_cast`
- A Bazi (Four Pillars) chart from a Gregorian birth datetime — `bazi_cast`
- The hard-rules template the model is expected to follow before writing an interpretation — `interpretation_template`
- The same systems as a CLI and a Python API, all emitting JSON with enough metadata to audit which method produced the result
- A seeded mode for reproducible demos and tests, kept separate from real readings, which use system randomness by default
No account and no key — everything runs locally. `pip install oraclebone`; the client entry uses the `ai-divination-mcp` command over stdio, and the server speaks JSON-RPC 2.0 with no third-party dependencies. The Bazi and lunar-time paths need the optional extra: `pip install 'oraclebone[lunar]'`. Published as `oraclebone` (8.2.0); the package was renamed in v8.0.0 and the old PyPI name is frozen, so install the new one. The skills can also be copied into an agent skill directory, defaulting to `~/.claude/skills` and overridable with `AI_SKILLS_DIR`. MIT licensed.
One command — pip install oraclebone
