{
  "markdown": "# Oraclebone\n\n<div align=\"center\">\n  <img src=\"docs/assets/icon.svg\" alt=\"Oraclebone icon: oracle-bone crack joined with JSON braces\" width=\"140\">\n  <h3><b>The bone cracks. The model reads.</b></h3>\n  <p>\n    <a href=\"https://pypi.org/project/oraclebone/\"><code>uvx oraclebone-mcp</code></a> ·\n    <a href=\"https://sapuyou45-bit.github.io/oraclebone/\">Homepage</a> ·\n    <a href=\"https://github.com/sapuyou45-bit/oraclebone/releases/tag/v8.2.0\">v8.2.0</a>\n  </p>\n</div>\n\n> 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.\n\n<!-- mcp-name: io.github.sapuyou45-bit/oraclebone -->\n\n[English](README.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md)\n\n<details>\n<summary>Demo</summary>\n<p align=\"center\">\n  <a href=\"https://pypi.org/project/oraclebone/\">\n    <img src=\"docs/assets/demo.svg\" alt=\"oraclebone demo: pip install, tarot draw, I Ching cast, MCP server stdio\" width=\"100%\">\n  </a>\n</p>\n</details>\n\n[![tests](https://github.com/sapuyou45-bit/oraclebone/actions/workflows/tests.yml/badge.svg)](https://github.com/sapuyou45-bit/oraclebone/actions/workflows/tests.yml)\n[![release](https://github.com/sapuyou45-bit/oraclebone/actions/workflows/release.yml/badge.svg)](https://github.com/sapuyou45-bit/oraclebone/actions/workflows/release.yml)\n[![PyPI](https://img.shields.io/pypi/v/oraclebone?color=blue)](https://pypi.org/project/oraclebone/)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/oraclebone)](https://pypi.org/project/oraclebone/)\n[![Latest release](https://img.shields.io/github/v/release/sapuyou45-bit/oraclebone?sort=semver)](https://github.com/sapuyou45-bit/oraclebone/releases)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)](https://github.com/sapuyou45-bit/oraclebone/actions/workflows/tests.yml)\n[![GitHub Discussions](https://img.shields.io/github/discussions/sapuyou45-bit/oraclebone)](https://github.com/sapuyou45-bit/oraclebone/discussions)\n\n🔮 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).\n\n`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.\n\nThis project treats divination as symbolic reasoning and reflection, not deterministic prediction.\n\n## ⚡ One-line Install for AI Agents\n\nPaste this into your AI agent:\n\n```text\nInstall Oraclebone for this agent: https://raw.githubusercontent.com/sapuyou45-bit/oraclebone/main/docs/install.md\n```\n\nOr install directly for Claude-style local skills:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/sapuyou45-bit/oraclebone/main/install.sh | bash\n```\n\nThe default target is `~/.claude/skills`. Set `AI_SKILLS_DIR` for another agent skill directory.\n\n## ✨ Overview\n\nMost AI divination prompts let the model invent the result. This repo separates the two jobs:\n\n1. A local script produces the card draw, hexagram, or Xiao Liu Ren position.\n2. The AI agent interprets that generated result with clear safety boundaries.\n\nThat makes readings easier to test, reproduce, audit, and reuse across agents.\n\n## 🧭 Methodological Rigor\n\nThe 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.\n\nThis is not scientific proof of divination efficacy. It is a stricter workflow for symbolic reasoning:\n\n- real readings use system randomness by default\n- seeded mode is only for tests and reproducible demos\n- traditional methods and limitations are documented per skill\n- JSON outputs include enough metadata to audit the method\n- approximate modes emit warnings instead of pretending to be traditional\n\n## 🌐 Multilingual Docs\n\nThe GitHub Pages site ships a six-language switcher — 简体中文, English, 日本語, Português, 한국어, Español. It follows your browser language by default and remembers your manual choice.\n\n[Open the published site](https://sapuyou45-bit.github.io/oraclebone/)\n\nLocal preview:\n\n```bash\npython3 -m http.server 8000 -d docs\n```\n\nPublished site:\n\n```text\nhttps://sapuyou45-bit.github.io/oraclebone/\n```\n\n## 🧩 Included Skills\n\n| Skill | What it does | Script |\n| --- | --- | --- |\n| `tarot` | Draws tarot cards for reflection, decisions, creative blocks, and project reframing. | `skills/tarot/scripts/draw.py` |\n| `iching` | Casts six-line I Ching hexagrams with primary and resulting hexagrams. | `skills/iching/scripts/cast.py` |\n| `xiaoliuren` | Casts Xiao Liu Ren from lunar-style numbers or a Gregorian time fallback. | `skills/xiaoliuren/scripts/cast.py` |\n| `bazi` | Casts a Bazi (Four Pillars / 八字) chart from a Gregorian birth datetime. Requires the optional `lunar-python` extra. | `skills/bazi/scripts/cast.py` |\n\n## 🚀 Quick Start\n\nInstall from PyPI:\n\n```bash\npip install oraclebone\n```\n\nOr from a checkout:\n\n```bash\npip install .\n```\n\nUse editable mode while developing:\n\n```bash\npip install -e .\n```\n\nUse one command for every system:\n\n```bash\nai-divination tarot --deck major --spread three-card --reversals\nai-divination iching --method yarrow\nai-divination xiaoliuren --method numbers --month 3 --day 12 --hour 7\n```\n\nAsk for an agent interpretation template:\n\n```bash\nai-divination template tarot\n```\n\nUse the Python API directly:\n\n```python\nfrom oraclebone.tarot import draw\nfrom oraclebone.iching import cast\nfrom oraclebone.xiaoliuren import cast_numbers\n```\n\nYou can still run the underlying scripts directly:\n\n```bash\npython3 skills/tarot/scripts/draw.py --deck major --spread three-card --reversals\npython3 skills/iching/scripts/cast.py --method coins\npython3 skills/iching/scripts/cast.py --method yarrow\npython3 skills/xiaoliuren/scripts/cast.py --method numbers --month 3 --day 12 --hour 7\n```\n\nUse a seed for reproducible demos:\n\n```bash\npython3 skills/tarot/scripts/draw.py --spread decision --seed demo\npython3 skills/iching/scripts/cast.py --method yarrow --seed demo\n```\n\nAll scripts output JSON.\n\n## 📦 Install as Agent Skills\n\nFor AI-agent-guided setup, use the remote install runbook:\n\n```text\nInstall Oraclebone for this agent: https://raw.githubusercontent.com/sapuyou45-bit/oraclebone/main/docs/install.md\n```\n\nFor direct shell install:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/sapuyou45-bit/oraclebone/main/install.sh | bash\n```\n\nThe installer copies `tarot`, `iching`, and `xiaoliuren` into `~/.claude/skills` by default. To target another agent, set `AI_SKILLS_DIR` before running it.\n\nManual install is just copying the folders you want into your agent's skill directory:\n\n```bash\nmkdir -p ~/.claude/skills\ncp -R skills/tarot ~/.claude/skills/tarot\ncp -R skills/iching ~/.claude/skills/iching\ncp -R skills/xiaoliuren ~/.claude/skills/xiaoliuren\n```\n\nEach skill is self-contained:\n\n```text\nskills/name/\n  SKILL.md\n  agents/openai.yaml\n  scripts/\n  references/\n```\n\nInstall individual folders, not the entire repository, when you only want one skill.\n\nEach 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.\n\n\n### Per-host adapters\n\nEvery skill ships four adapter files in `skills/<skill>/agents/`:\n\n| Host | File | How it is invoked |\n|---|---|---|\n| OpenAI / Codex skills | `openai.yaml` | Skill metadata + brand icons. |\n| Claude Desktop / claude.ai project skills | `claude.yaml` | Tool spec that runs `ai-divination <skill>`. |\n| Gemini CLI / Gemini Extensions | `gemini.yaml` | Extension manifest that runs the same CLI. |\n| Cursor | `cursor.mdc` | Rule file with hard \"never invent the draw\" guard. |\n\nAll four adapters route through the same audited `ai-divination <skill>` CLI, so the agent host never invents the result.\n\n## 🧠 Use it from Claude Desktop / Codex / any MCP host\n\n`oraclebone` ships a built-in **MCP server** (`ai-divination-mcp`). Any\n[Model Context Protocol](https://modelcontextprotocol.io/) host — Claude Desktop, Codex,\nContinue, Cursor — can mount it with a single config line, and the model gets five tools:\n`tarot_draw`, `iching_cast`, `xiaoliuren_cast`, `bazi_cast`, and `interpretation_template`.\n\nThe model never invents the draw; the server runs the audited scripts locally.\n\n### Claude Desktop\n\nInstall the package once:\n\n```bash\npip install oraclebone\n```\n\nThen edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or\n`%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"divination\": {\n      \"command\": \"ai-divination-mcp\"\n    }\n  }\n}\n```\n\nRestart Claude Desktop. Ask \"draw three tarot cards for my decision\" — Claude will call\n`tarot_draw` and interpret the JSON output.\n\n### Codex / Continue / Cursor\n\nAny MCP-aware host follows the same pattern. The server speaks JSON-RPC 2.0 over stdio\nwith no third-party dependencies.\n\n### Per-client setup guides\n\nCopy-paste JSON configs and example prompts for each host:\n\n- [Claude Desktop](docs/clients/claude-desktop.md)\n- [Codex CLI](docs/clients/codex.md)\n- [Cursor](docs/clients/cursor.md)\n- [Continue](docs/clients/continue.md)\n\n## 🤖 Agent Behavior\n\nEach skill instructs the agent to:\n\n- generate or accept a concrete draw/cast result\n- read concise reference material only when needed\n- interpret with the shared response contract\n- avoid certainty, fatalism, and professional advice\n\nShared guidance lives in:\n\n- `shared/methodology.md`\n- `shared/interpretation-protocol.md`\n- `shared/response-contract.md`\n- `shared/randomness-protocol.md`\n- `shared/safety-policy.md`\n- `shared/interpretation-style.md`\n\n## 🧪 Examples\n\n- `examples/tarot-decision.md`\n- `examples/iching-strategy.md`\n- `examples/xiaoliuren-daily.md`\n\n## 🛡️ Safety Boundaries\n\nThese skills are not for medical, legal, financial, or crisis guidance.\n\nGood readings should:\n\n- frame the result as symbolic reflection\n- connect claims to the generated result\n- preserve user agency\n- offer small, reversible next steps\n- state uncertainty clearly\n\nSee `ETHICS.md` for the full project stance.\n\n## 🛠️ Development\n\nNo runtime dependencies are required beyond Python 3.\n\nRun tests:\n\n```bash\npython3 -m unittest discover -s tests\n```\n\nCurrent coverage checks:\n\n- unified CLI routing\n- package-only CLI execution\n- importable Python APIs\n- single-folder skill execution\n- skill metadata and asset contracts\n- interpretation protocol templates\n- tarot spread output\n- I Ching cast structure and manual lines\n- Xiao Liu Ren number and time fallback behavior\n\n## 💬 Community\n\n- Releases: <https://github.com/sapuyou45-bit/oraclebone/releases>\n- Roadmap: [`ROADMAP.md`](./ROADMAP.md)\n- Discussions: <https://github.com/sapuyou45-bit/oraclebone/discussions>\n- Issues: pick a [`good first issue`](https://github.com/sapuyou45-bit/oraclebone/labels/good%20first%20issue) or propose a [`new-skill`](https://github.com/sapuyou45-bit/oraclebone/labels/new-skill)\n- Security: see [`SECURITY.md`](./SECURITY.md) for private vulnerability reporting\n\n## 🗺️ Roadmap\n\nNear-term:\n\n- Add a published package workflow.\n- Expand automated skill validation in CI.\n- Add richer reference material for each MVP skill.\n- Add more example readings.\n- Add more agent integration examples.\n\nLater:\n\n- `meihua`\n- `liuyao`\n- `runes`\n- `numerology`\n- `astrology`\n\n## 📄 License\n\nMIT\n",
  "bytes": 11813,
  "sha": "022fb6104ec444b859fe702493dc9584c9c6020a38f4c28935f3c603492eefba",
  "repo_slug": "sapuyou45-bit/oraclebone",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_sapuyou45_bit_oraclebone_a36e2d02/readme"
}