A runtime for bodhikit that brings the research-backed coding tutor to any model — Claude, GPT, Gemini, DeepSeek, Qwen, local Ollama, and more.
The Claude Code plugin and this CLI are two runtimes reading the same markdown. The pedagogy (Bloom, Vygotsky, Leitner, Feynman, GROW, Kram, Flavell) lives in bodhikit/. bodhi-cli orchestrates it outside Claude Code.
Status: v0 in progress. The spike is done (
docs/SPIKE-RESULTS.md) and landed on frontier-only v0 with Ollama as a research track (ADR-005). The runtime now dispatches any bodhikit skill (bodhi teach,bodhi continue,bodhi quiz, …) as an interactive session with the full Claude Code-style toolset: Read/Write/Edit/Grep/Glob/Bash, sub-agents via the Agent tool, progressive KB loading via LoadKnowledge, and sub-skill chaining via LoadSkill. Tracking-JSON writes route through bodhikit'sscripts/bodhi-state, exactly as in the plugin. Not yet validated against a live Anthropic key — that smoke test is the next step.
Is:
- A CLI runtime that executes bodhikit skills against any supported model provider.
- A provider abstraction so switching from Claude to Ollama to Gemini is a config flag.
- A filesystem-compatible state store —
.bodhi/projects created by the plugin work in the CLI and vice versa.
Isn't:
- A fork of bodhikit content. The content stays in the bodhikit repo; this is just a runtime.
- A reinvention of Claude Code. Tool names, semantics, and permission vocabulary mirror Claude Code so muscle memory transfers.
bodhikit's pedagogy is excellent but trapped inside Claude Code. Learners on ChatGPT, Gemini, local Ollama, or any future surface can't use it. This CLI is the runtime that frees the pedagogy from any one harness.
- Providers: Anthropic (native SDK) plus one OpenAI-compatible adapter covering OpenAI, DeepSeek, Kimi/Moonshot, Mistral, OpenRouter, and Gemini (ADR-006). Each non-Anthropic provider is wired but unverified until a transcript-checked dogfood pass; Ollama stays in-tree as a research track (ADR-005).
- Tools: Read, Write, Edit, Grep, Glob, Bash, Agent, LoadKnowledge, LoadSkill (writes scoped to the learning project;
bodhi-stateis the canonical JSON write path) - State:
FsStore(filesystem, byte-identical to the plugin) + the state-schema KB's discovery procedure - Skills: all 18 user-invocable skills from bodhikit
- Sub-agents: all 4 (skill-assessor, code-reviewer, resource-finder, trajectory-analyzer)
ln -s ~/code/bodhikit adapters/bodhikit-content # content symlink
npm install
export ANTHROPIC_API_KEY=sk-ant-…
npx tsx src/cli/index.ts doctor # plumbing check
npx tsx src/cli/index.ts teach "indexing" # interactive /teach session
npx tsx src/cli/index.ts progress quick --once # one-shotFor users and integrators:
docs/USER-GUIDE.md— setup, first session, providers and keys, where your data lives, troubleshootingdocs/INTEGRATION.md— embedding the tutor in web / desktop / mobile / enterprise appsdocs/JSONL-PROTOCOL.md— the--jsonlwire protocol host apps speak
For contributors:
docs/ARCHITECTURE.md— the founding architecture sketchdocs/SPIKE.md— 2-week spike plan to prove the riskiest assumption (small models can hold Socratic discipline)docs/SPIKE-RESULTS.md— what the spike found (why local models are research-track)docs/DECISIONS.md— ADR-style decision logdocs/TODO.md— severity-ordered gaps between here and production
TBD before v0 ship. Likely MIT to match bodhikit, but AGPL is on the table to protect against closed-source hosted forks. Tracked as an open question in ARCHITECTURE.md.