Research-backed interactive coding tutor for Claude Code.
Bodhi (Pali: "awakening") is a patient, wise guide that teaches you anything in the world of coding, software engineering, and tech. It does not write code for you. It teaches you to write code yourself.
- Research-backed: Built on proven learning science (Oakley, Feynman, Bloom, Vygotsky, Ericsson, Dweck, Bjork)
- Deeply personalized: Assesses your unique skill level, builds a custom learning plan, adapts to your pace
- Proactive teaching:
/teachwalks you through concepts step by step, not just answering questions - Hands-on: Learn by doing. Exercises, projects, code review. Never just reading.
- Remembers your journey: Spaced repetition, progress tracking, cross-session continuity
- Metacognitive reflection: End-of-session
/reflectbuilds your awareness of HOW you learn - One command sessions:
/continueauto-invokes status, teaching, practice, and reflection - Honest and wise: Feedback that is respectful, specific, and genuinely helpful
/plugin marketplace add https://codeberg.org/AnjanJ/bodhikit.git
/plugin install bodhikit@bodhikit
Restart Claude Code after installing to load the plugin.
Important: Enable only where you need it. BodhiKit loads 15 knowledge bases. To avoid polluting context in other projects, enable it per-project instead of globally. In your learningWithBodhi/.claude/settings.json:
{
"enabledPlugins": {
"bodhikit@bodhikit": true
}
}Or disable it in projects where you do not need it by adding to .claude/settings.local.json:
{
"enabledPlugins": {
"bodhikit@bodhikit": false
}
}Or test locally without installing:
claude --plugin-dir ~/code/bodhikit
That's it. All skills, agents, rules, and knowledge bases are immediately available.
/bodhikit:learn react # Start learning React
/bodhikit:continue # Resume — auto-runs status, teach, reflect
/bodhikit:teach # Guided teaching of the next concept
/bodhikit:quiz # Test your knowledge
/bodhikit:status # Quick 3-line check-in
/bodhikit:progress # Full progress dashboard
| Skill | Description |
|---|---|
/learn |
Start a new learning project with assessment and personalized plan |
/continue |
Resume from where you left off — auto-invokes teach, reflect, status |
/teach |
Proactive guided teaching: explain, demonstrate, practice, verify |
/assess |
Standalone skill assessment on any topic |
/review |
Educational code review (local files, GitHub, GitLab, Codeberg) |
/quiz |
Active recall check with spaced repetition tracking |
/plan |
View, adjust, or regenerate your learning plan |
/progress |
Learning progress dashboard |
/resources |
Find, verify, and manage learning resources |
/explain |
Deep-dive explanation using the Feynman technique |
/practice |
Hands-on exercise calibrated to your level |
/evaluate |
Comprehensive evaluation of your learning journey |
/reflect |
End-of-session metacognitive reflection |
/status |
Quick 3-line check-in: project, module, streak, concepts due |
/mentor |
Career and learning path guidance using the GROW model |
/pair |
Pair programming: strong-style, ping-pong, or navigator mode |
/debug-together |
Scientific debugging: reproduce, hypothesize, probe, isolate, fix |
| Agent | Model | Purpose |
|---|---|---|
| skill-assessor | Sonnet | Adaptive Bloom's taxonomy skill evaluation |
| code-reviewer | Sonnet | Educational code review (what code reveals about understanding) |
| resource-finder | Haiku | Web search for verified free learning resources |
Each learning methodology lives in its own focused knowledge base, loaded only when needed (progressive disclosure):
| Knowledge Base | Purpose |
|---|---|
| spaced-repetition | Ebbinghaus forgetting curve, Leitner box system |
| blooms-taxonomy | 6 cognitive levels for programming, mastery criteria |
| zone-of-proximal-development | Three zones, detection signals, scaffolding strategy |
| feynman-technique | 4 steps for deep understanding, when to use |
| deliberate-practice | Targeted exercises at the edge of ability |
| growth-mindset | Language patterns, praising strategy over talent |
| desirable-difficulties | Spacing, interleaving, retrieval, generation, variation |
| metacognition | Teaching learners HOW to learn, Dunning-Kruger, illusions of competence |
| constructivism | Spiral curriculum, project progression by level |
| ai-learning-safeguards | Risks of AI over-reliance, structural safeguards |
| mentoring-theory | GROW model, Kram's career and psychosocial functions |
| pair-programming | Strong-style, driver/navigator, ping-pong TDD, Williams & Kessler |
| scientific-debugging | TRAFFIC method, debugging mindset, wolf fence, expert vs novice |
| assessment-framework | Question templates by Bloom's level, exercise design |
| teaching-personality | Oogway/Yoda/Buddha/Ambedkar personality guide |
| Rule | Activates On |
|---|---|
| learning-project | Files inside learningWithBodhi/ directories |
When you start learning, BodhiKit creates a project folder:
learningWithBodhi/
├── react-fundamentals/
│ ├── .bodhi/ # Progress tracking
│ │ ├── state.json # Current position, streak, session history
│ │ ├── plan.md # Your personalized learning plan
│ │ ├── progress.md # Per-topic mastery levels
│ │ ├── spaced-review.json # Leitner box system for retention
│ │ ├── assessment.md # Assessment history
│ │ └── resources.md # Curated resources
│ ├── exercises/ # Hands-on exercises
│ ├── projects/ # Larger project work
│ └── notes/ # Your personal notes
We recommend backing this with git and a remote repository.
See docs/example-project/ for a realistic example of what these tracking files look like after a few sessions.
Run /bodhikit:continue and the plugin handles the entire flow:
/continue
├── /status → quick 3-line check-in
├── spaced review → quiz on concepts due for review
├── /teach → guided teaching of the next concept
│ ├── explain with analogies and code examples
│ ├── work through a problem together
│ ├── independent exercise
│ └── quick retention check
└── /reflect → end-of-session metacognitive reflection
One command. Complete learning session. No need to remember which skills to invoke.
BodhiKit integrates these research-backed methodologies. We stand on the shoulders of giants:
-
Spaced Repetition — Review concepts at expanding intervals for durable memory
- Hermann Ebbinghaus, Memory: A Contribution to Experimental Psychology (1885)
- Sebastian Leitner, Learning to Learn (1972)
-
Learning How to Learn — Focused/diffuse modes, chunking, interleaving, overcoming procrastination
- Dr. Barbara Oakley, A Mind for Numbers (2014)
- Dr. Barbara Oakley and Dr. Terrence Sejnowski, Learning How to Learn (Coursera, most popular online course in the world)
-
Bloom's Taxonomy — Assess and track skills across 6 cognitive levels (Remember to Create)
- Benjamin Bloom, Taxonomy of Educational Objectives (1956)
- Lorin Anderson and David Krathwohl, A Taxonomy for Learning, Teaching, and Assessing (2001, revised taxonomy)
-
Zone of Proximal Development — Calibrate difficulty to where learning is most productive
- Lev Vygotsky, Mind in Society (1978)
-
Feynman Technique — Explain concepts simply to reveal gaps in understanding
- Richard Feynman, inspired by his teaching philosophy at Caltech
- Popularized by James Gleick, Genius: The Life and Science of Richard Feynman (1992)
-
Deliberate Practice — Targeted exercises at the edge of ability with immediate feedback
- K. Anders Ericsson, Peak: Secrets from the New Science of Expertise (2016)
- K. Anders Ericsson, The Role of Deliberate Practice in the Acquisition of Expert Performance (1993)
-
Growth Mindset — Feedback that promotes learning over performance
- Dr. Carol Dweck, Mindset: The New Psychology of Success (2006)
-
Desirable Difficulties — Interleaving, retrieval practice, and variation for stronger retention
- Dr. Robert Bjork and Dr. Elizabeth Bjork, Making Things Hard on Yourself, But in a Good Way (2011)
-
Constructivism and Spiral Curriculum — Learning by building, revisiting concepts at increasing depth
- Jean Piaget, The Construction of Reality in the Child (1954)
- Jerome Bruner, The Process of Education (1960)
- Seymour Papert, Mindstorms: Children, Computers, and Powerful Ideas (1980)
-
Mastery-Based Learning — Demonstrate competence before advancing, not time-based
- Benjamin Bloom, Learning for Mastery (1968)
-
Metacognition — Teach learners HOW to learn, not just WHAT to learn
- John Flavell, who coined the term in Metacognition and Cognitive Monitoring (1979)
-
Mentoring Theory — Career and psychosocial functions of effective mentoring
- Kathy Kram, Mentoring at Work (1985)
- Sir John Whitmore, Coaching for Performance (GROW Model) (1988)
-
Pair Programming — Collaborative coding that improves learning, quality, and retention
- Kent Beck, Extreme Programming Explained (1999)
- Laurie Williams and Robert Kessler, Pair Programming Illuminated (2002)
- Llewellyn Falco, Strong-Style Pairing (2014)
-
Scientific Debugging — Systematic, hypothesis-driven approach to finding and fixing bugs
- Andreas Zeller, Why Programs Fail (2005)
- Devon H. O'Dell, The Debugging Mindset (2017, ACM Queue)
- Edward J. Gauss, Wolf Fence Algorithm (1982, ACM)
BodhiKit speaks with the voice of a wise, patient teacher. Think Master Oogway, Yoda, Gautama Buddha, and Dr. B.R. Ambedkar.
- The learner writes code. BodhiKit asks questions.
- Every struggle is an opportunity for growth.
- Honest feedback, wrapped in compassion.
- The goal is to become unnecessary.
Read the full blog post on Medium — detailed scenarios, the science behind the plugin, and how to get the most out of it.
/plugin uninstall bodhikit@bodhikit
Your learningWithBodhi/ project folders are not affected.
MIT
If this project saves you time, consider sponsoring. It keeps development going and lets me know people are finding it useful.
Made with ❤️ by Anjan