Skip to main content

Oraclebone

The bone cracks. The model reads.

Three thousand years ago, Shang kings carved their divinations into bone — the first auditable record of an oracle at work. Oraclebone brings the same discipline to AI agents: audited scripts produce the draw, the hexagram, the pillars; the model only interprets what it is given. It never invents the result.

English | 简体中文 | 日本語

oraclebone demo: pip install, tarot draw, I Ching cast, MCP server stdio

tests release PyPI PyPI Downloads Latest release License: MIT Python GitHub Discussions

🔮 Open-source divination toolkit for AI agents, formerly known as ai-divination-skills (renamed in v8.0.0 — the old PyPI package is frozen; install oraclebone instead).

oraclebone is a practical skill collection for tarot, I Ching, Xiao Liu Ren, and future symbolic systems. It is built for agent workflows that need auditable randomness, clear method boundaries, and reusable interpretation templates.

This project treats divination as symbolic reasoning and reflection, not deterministic prediction.

⚡ One-line Install for AI Agents

Paste this into your AI agent:

Install Oraclebone for this agent: https://raw.githubusercontent.com/sapuyou45-bit/oraclebone/main/docs/install.md

Or install directly for Claude-style local skills:

curl -fsSL https://raw.githubusercontent.com/sapuyou45-bit/oraclebone/main/install.sh | bash

The default target is ~/.claude/skills. Set AI_SKILLS_DIR for another agent skill directory.

✨ Overview

Most AI divination prompts let the model invent the result. This repo separates the two jobs:

  1. A local script produces the card draw, hexagram, or Xiao Liu Ren position.
  2. The AI agent interprets that generated result with clear safety boundaries.

That makes readings easier to test, reproduce, audit, and reuse across agents.

🧭 Methodological Rigor

The core rule is simple: scripts or user-provided physical casts generate the divination result; AI interprets that result and does not generate the divination result.

This is not scientific proof of divination efficacy. It is a stricter workflow for symbolic reasoning:

  • real readings use system randomness by default
  • seeded mode is only for tests and reproducible demos
  • traditional methods and limitations are documented per skill
  • JSON outputs include enough metadata to audit the method
  • approximate modes emit warnings instead of pretending to be traditional

🌐 Multilingual Docs

The GitHub Pages site now defaults to Simplified Chinese. Use the page header switcher there when you want English or Japanese.

Open the published site

Local preview:

python3 -m http.server 8000 -d docs

Published site:

https://sapuyou45-bit.github.io/oraclebone/

🧩 Included Skills

Skill What it does Script
tarot Draws tarot cards for reflection, decisions, creative blocks, and project reframing. skills/tarot/scripts/draw.py
iching Casts six-line I Ching hexagrams with primary and resulting hexagrams. skills/iching/scripts/cast.py
xiaoliuren Casts Xiao Liu Ren from lunar-style numbers or a Gregorian time fallback. skills/xiaoliuren/scripts/cast.py
bazi Casts a Bazi (Four Pillars / 八字) chart from a Gregorian birth datetime. Requires the optional lunar-python extra. skills/bazi/scripts/cast.py

🚀 Quick Start

Install from PyPI:

pip install oraclebone

Or from a checkout:

pip install .

Use editable mode while developing:

pip install -e .

Use one command for every system:

ai-divination tarot --deck major --spread three-card --reversals
ai-divination iching --method yarrow
ai-divination xiaoliuren --method numbers --month 3 --day 12 --hour 7

Ask for an agent interpretation template:

ai-divination template tarot

Use the Python API directly:

from oraclebone.tarot import draw
from oraclebone.iching import cast
from oraclebone.xiaoliuren import cast_numbers

You can still run the underlying scripts directly:

python3 skills/tarot/scripts/draw.py --deck major --spread three-card --reversals
python3 skills/iching/scripts/cast.py --method coins
python3 skills/iching/scripts/cast.py --method yarrow
python3 skills/xiaoliuren/scripts/cast.py --method numbers --month 3 --day 12 --hour 7

Use a seed for reproducible demos:

python3 skills/tarot/scripts/draw.py --spread decision --seed demo
python3 skills/iching/scripts/cast.py --method yarrow --seed demo

All scripts output JSON.

📦 Install as Agent Skills

For AI-agent-guided setup, use the remote install runbook:

Install Oraclebone for this agent: https://raw.githubusercontent.com/sapuyou45-bit/oraclebone/main/docs/install.md

For direct shell install:

curl -fsSL https://raw.githubusercontent.com/sapuyou45-bit/oraclebone/main/install.sh | bash

The installer copies tarot, iching, and xiaoliuren into ~/.claude/skills by default. To target another agent, set AI_SKILLS_DIR before running it.

Manual install is just copying the folders you want into your agent's skill directory:

mkdir -p ~/.claude/skills
cp -R skills/tarot ~/.claude/skills/tarot
cp -R skills/iching ~/.claude/skills/iching
cp -R skills/xiaoliuren ~/.claude/skills/xiaoliuren

Each skill is self-contained:

skills/name/
  SKILL.md
  agents/openai.yaml
  scripts/
  references/

Install individual folders, not the entire repository, when you only want one skill.

Each skill script also works in single-folder mode. If the Python package is installed, the script delegates to the package runtime. If only the skill folder is copied, it falls back to the bundled standalone script in that skill.

Per-host adapters

Every skill ships four adapter files in skills/<skill>/agents/:

Host File How it is invoked
OpenAI / Codex skills openai.yaml Skill metadata + brand icons.
Claude Desktop / claude.ai project skills claude.yaml Tool spec that runs ai-divination <skill>.
Gemini CLI / Gemini Extensions gemini.yaml Extension manifest that runs the same CLI.
Cursor cursor.mdc Rule file with hard "never invent the draw" guard.

All four adapters route through the same audited ai-divination <skill> CLI, so the agent host never invents the result.

🧠 Use it from Claude Desktop / Codex / any MCP host

oraclebone ships a built-in MCP server (ai-divination-mcp). Any Model Context Protocol host — Claude Desktop, Codex, Continue, Cursor — can mount it with a single config line, and the model gets five tools: tarot_draw, iching_cast, xiaoliuren_cast, bazi_cast, and interpretation_template.

The model never invents the draw; the server runs the audited scripts locally.

Claude Desktop

Install the package once:

pip install oraclebone

Then edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "divination": {
      "command": "ai-divination-mcp"
    }
  }
}

Restart Claude Desktop. Ask "draw three tarot cards for my decision" — Claude will call tarot_draw and interpret the JSON output.

Codex / Continue / Cursor

Any MCP-aware host follows the same pattern. The server speaks JSON-RPC 2.0 over stdio with no third-party dependencies.

Per-client setup guides

Copy-paste JSON configs and example prompts for each host:

🤖 Agent Behavior

Each skill instructs the agent to:

  • generate or accept a concrete draw/cast result
  • read concise reference material only when needed
  • interpret with the shared response contract
  • avoid certainty, fatalism, and professional advice

Shared guidance lives in:

  • shared/methodology.md
  • shared/interpretation-protocol.md
  • shared/response-contract.md
  • shared/randomness-protocol.md
  • shared/safety-policy.md
  • shared/interpretation-style.md

🧪 Examples

  • examples/tarot-decision.md
  • examples/iching-strategy.md
  • examples/xiaoliuren-daily.md

🛡️ Safety Boundaries

These skills are not for medical, legal, financial, or crisis guidance.

Good readings should:

  • frame the result as symbolic reflection
  • connect claims to the generated result
  • preserve user agency
  • offer small, reversible next steps
  • state uncertainty clearly

See ETHICS.md for the full project stance.

🛠️ Development

No runtime dependencies are required beyond Python 3.

Run tests:

python3 -m unittest discover -s tests

Current coverage checks:

  • unified CLI routing
  • package-only CLI execution
  • importable Python APIs
  • single-folder skill execution
  • skill metadata and asset contracts
  • interpretation protocol templates
  • tarot spread output
  • I Ching cast structure and manual lines
  • Xiao Liu Ren number and time fallback behavior

💬 Community

🗺️ Roadmap

Near-term:

  • Add a published package workflow.
  • Expand automated skill validation in CI.
  • Add richer reference material for each MVP skill.
  • Add more example readings.
  • Add more agent integration examples.

Later:

  • meihua
  • liuyao
  • runes
  • numerology
  • astrology

📄 License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oraclebone-8.1.0.tar.gz (52.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oraclebone-8.1.0-py3-none-any.whl (41.5 kB view details)

Uploaded Python 3

File details

Details for the file oraclebone-8.1.0.tar.gz.

File metadata

  • Download URL: oraclebone-8.1.0.tar.gz
  • Upload date:
  • Size: 52.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for oraclebone-8.1.0.tar.gz
Algorithm Hash digest
SHA256 a07393f06773c0f1db5c2327d39349500eb6b8dbe074cc27979d32b69cbc6a43
MD5 7415db48355277f8b6c7c7f42480603d
BLAKE2b-256 f09d96624c4b73c50d40b3fd74fa4643acd8f7b4287fee2ea06488534ca419c7

See more details on using hashes here.

File details

Details for the file oraclebone-8.1.0-py3-none-any.whl.

File metadata

  • Download URL: oraclebone-8.1.0-py3-none-any.whl
  • Upload date:
  • Size: 41.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for oraclebone-8.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 95e0b0e8e42d469f4ab2c1f5d8e05339fd1572173581af744c3807e962911b1e
MD5 b3e1d0bdd597e055429df3fef5e1b49e
BLAKE2b-256 3844d2585868096cd33f79958161f196d472d042f84a10ef4851e4c03619d4df

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page