Yarrow — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Yarrow (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Yarrow lets you (and your agents) consult the Book of Changes — cast a hexagram, read the classical sources, and get a Wilhelm/Baynes-style reflection. Offline-first iOS app, plus a public MCP server so any LLM agent can reach the same oracle.
"The I-Ching does not predict; it mirrors. The question you bring decides the reading."
| Path | What |
|---|---|
src/ | Cloudflare Workers source — public MCP endpoint + iOS app proxy |
src/data_hexagrams.json | 64 hexagrams with bilingual classical sources (杨天才 / 朱熹 / 断易天机 / 白话题解) |
src/hexagram.ts | Deterministic casting (coins / yarrow stalks / random), seeded by FNV-1a + mulberry32 |
src/mcp.ts | MCP JSON-RPC 2.0 handler (3 tools, 30 readings/day per anonymous caller) |
.claude-plugin/marketplace.json | Claude Code / Codex plugin marketplace manifest |
skills/yarrow/SKILL.md | The Yarrow skill — pluggable into any Claude Code or Codex install |
npm/yarrow-mcp/ | @shaozhengkun/yarrow-mcp — stdio bridge for clients that don't speak HTTP MCP |
submissions/ | Drafts for modelcontextprotocol/servers, Smithery, mcp.run |
INTEGRATIONS.md | Copy-paste configs for Claude Code / Claude Desktop / Codex / Hermes |
The iOS source lives separately at yarrow-ios (TODO).
Download on the App Store → · $4.99 · iOS 17+ · no tracking, no account.
All 64 hexagrams and their classical commentary ship in the app; AI reading is optional and runs through this Worker.
Claude Code — install the plugin:
claude plugin marketplace add https://github.com/shaozhengkun123/yarrow
claude plugin install yarrowClaude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"yarrow": { "url": "https://yarrow-oracle.shaozhengkun.workers.dev/mcp" }
}
}Codex CLI / Hermes / older Claude Desktop — use the stdio bridge:
npx @shaozhengkun/yarrow-mcpOr pin it in your client's config — see INTEGRATIONS.md for every platform.
Anyone with `curl` —
curl -s -X POST https://yarrow-oracle.shaozhengkun.workers.dev/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
"name":"divine",
"arguments":{"question":"Should I take the new job?","locale":"en"}
}}'| Tool | Purpose |
|---|---|
cast_hexagram | Toss the coins / cast the stalks. Returns primary hexagram + moving lines + changing hexagram, all metadata. Deterministic if you pass seed. |
lookup_hexagram | Get a hexagram's classical text — Wilhelm-style header, judgment, image, and 杨天才 / 朱熹 / 断易天机 / 白话 commentaries. |
divine | One-shot reading: casts, looks up, and generates a Wilhelm/Baynes-style reflection grounded in the sources. 30/day per anonymous caller. |
This Worker is MIT — fork, deploy your own, point your agents at your URL.
git clone https://github.com/shaozhengkun123/yarrow
cd yarrow
npm install
npx wrangler login
npx wrangler kv:namespace create QUOTA # copy id into wrangler.toml
echo -n '<your OpenAI-compatible chat URL>' | npx wrangler secret put PROXY_URL
echo -n '<your API key>' | npx wrangler secret put PROXY_KEY
npx wrangler deployYour endpoint will be https://yarrow-oracle.<your-subdomain>.workers.dev.
Yarrow is for reflection, not prediction. The system prompt baked into the Worker refuses:
The classical voice is direct; the framing is Jungian. This is the line we draw, in the iOS app and the MCP both.
MIT for code; classical sources are in the public domain. See LICENSE.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.