Turn any LLM — Claude, ChatGPT, Gemini, or a local Ollama / llama.cpp model — into a professional teacher for any field.
expert-mentor generates a calibrated expert-mentor system prompt for a field and
level, runs the tutoring session directly, remembers what you've mastered across
sessions, and reviews your progress from the transcript.
Most "tutor" prompts are a persona and a vibe. This one is a system: a teaching contract grounded in learning science (retrieval practice, spacing, scaffolding), provider-native request handling, and a persistent learner model. The mentor teaches to the standard a real senior practitioner would recognise — one concept at a time, checking understanding, and never fabricating sources.
- Provider-native prompts — XML-shaped, prompt-cached system blocks for
Claude;
developerrole,max_completion_tokens, andreasoning_effortfor ChatGPT reasoning models; correct handling for Gemini, Ollama, and llama.cpp. - Live tutoring sessions over Anthropic, OpenAI, Ollama, and llama.cpp — standard library only, no runtime dependencies.
- Persistent learner memory — mastered / shaky / misconceptions / open questions, injected into every future session.
- Model-assisted review — turn a session transcript into an updated profile.
- Spaced repetition — generate flashcards from a session and review them with
an SM-2-lite scheduler (
mentor cards/mentor quiz). - Curriculum design — a structured, sequenced multi-week plan for any field.
- Usable as an agent skill — ships with
SKILL.mdfor Claude Code / opencode.
# from PyPI (once published)
pipx install expert-mentor # or: pip install expert-mentor
# from source
git clone https://github.com/voidstackloop/expert-mentor
cd expert-mentor
./install.sh # installs `mentor` + links the skill, or:
pipx install .No install needed: run it in place with ./bin/mentor ... or
python3 scripts/expert_mentor.py ....
# Generate a system prompt for a field
mentor --field "quantum computing" --level beginner
# Run a live tutoring session (local model)
mentor run --field "Rust" --provider ollama --model qwen2.5:7b
# Run with Claude, remembering progress between sessions
mentor run --field "Rust" --provider claude --remember
# Build a curriculum
mentor curriculum --field "Rust" --duration "6 weeks, 5h/week"# Claude — system prompt is cached and XML-shaped; optional extended thinking
mentor run --field "contract law" --provider claude --model claude-sonnet-5 --thinking
# ChatGPT — reasoning effort, developer role, usage reported per turn
mentor run --field "Rust" --provider chatgpt --model gpt-5.6 --reasoning-effort high
# Local — Ollama or a llama.cpp / LM Studio server
mentor run --field "music theory" --provider ollama --host http://localhost:11434Credentials come from the environment or a .env file
(ANTHROPIC_API_KEY, OPENAI_API_KEY). See
docs/providers.md.
# Persist progress automatically (named from the field)
mentor run --field "Rust" --provider claude --remember
# Inspect or curate the profile
mentor learners
mentor progress rust --add-mastered ownership --add-shaky lifetimes --goal "ship idiomatic Rust"
# Assess the last session and update the profile
mentor review rust --apply
# Turn the session into flashcards and review them over time
mentor cards rust --generate
mentor quiz rustProfiles, transcripts, prompts, and cards live under
~/.config/expert-mentor/ as plain JSON/markdown you can read and edit.
| Command | Purpose |
|---|---|
mentor --field F [...] |
generate a teaching prompt |
mentor run [NAME] |
live tutoring session (cloud or local) |
mentor save/show/saved |
store and reuse mentor prompts |
mentor curriculum |
sequenced multi-week curriculum prompt |
mentor models |
list / discover Claude & ChatGPT models |
mentor fields / providers |
curated field profiles / providers |
mentor learners / progress / sessions / transcript / review |
learner memory & assessment |
mentor cards / quiz |
spaced-repetition flashcards |
mentor config |
saved defaults |
mentor doctor |
health check |
mentor skill |
install the Claude Code / opencode skill (pip/pipx installs included) |
mentor interactive |
build a profile by answering prompts |
Full reference: docs/commands.md.
- Getting started
- Command reference
- Providers & credentials
- How the mentor teaches
- Configuration
- Using it as an agent skill
- Development
Python 3.8+. No third-party runtime dependencies. A local Ollama or llama.cpp server is optional (for offline use).
See CONTRIBUTING.md. Run make test before opening a PR.
MIT © expert-mentor contributors.