expert-mentor
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.
Why
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.
Highlights
- 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.
Install
# 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 ....
Quick start
# 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"
Live sessions
# 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:11434
Credentials come from the environment or a .env file
(ANTHROPIC_API_KEY, OPENAI_API_KEY). See
docs/providers.md.
Remembering a learner
# 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 rust
Profiles, transcripts, prompts, and cards live under
~/.config/expert-mentor/ as plain JSON/markdown you can read and edit.
Commands
| 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 interactive |
build a profile by answering prompts |
Full reference: docs/commands.md.
Documentation
- Getting started
- Command reference
- Providers & credentials
- How the mentor teaches
- Configuration
- Using it as an agent skill
- Development
Requirements
Python 3.8+. No third-party runtime dependencies. A local Ollama or llama.cpp server is optional (for offline use).
Contributing
See CONTRIBUTING.md. Run make test before opening a PR.
License
MIT © expert-mentor contributors.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file expert_mentor-0.6.1.tar.gz.
File metadata
- Download URL: expert_mentor-0.6.1.tar.gz
- Upload date:
- Size: 69.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
850b695345c8da0391843d19e088eddf3047ec4054620b4c164295e70345b87a
|
|
| MD5 |
e787e0e4c4730f8161dd6bbe4c5a9081
|
|
| BLAKE2b-256 |
bcd8ddbeb6854ecd9c176885bd4eac713972a38d7f0cfa2e63582836361899ba
|
Provenance
The following attestation bundles were made for expert_mentor-0.6.1.tar.gz:
Publisher:
release.yml on voidstackloop/expert-mentor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
expert_mentor-0.6.1.tar.gz -
Subject digest:
850b695345c8da0391843d19e088eddf3047ec4054620b4c164295e70345b87a - Sigstore transparency entry: 2810445207
- Sigstore integration time:
-
Permalink:
voidstackloop/expert-mentor@aecb7d4e4ab5b77498f7318eee2f8998ab8ffe39 -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/voidstackloop
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@aecb7d4e4ab5b77498f7318eee2f8998ab8ffe39 -
Trigger Event:
push
-
Statement type:
File details
Details for the file expert_mentor-0.6.1-py3-none-any.whl.
File metadata
- Download URL: expert_mentor-0.6.1-py3-none-any.whl
- Upload date:
- Size: 50.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39839c882d7d555a547bc8d6f552ae0847560fffcfbbe64e3a7859afac378d3b
|
|
| MD5 |
114303224a7fb5af02a9cfcf547c0f6f
|
|
| BLAKE2b-256 |
0da14b14e0d94ebc8e68ffd5fe1130abdaeba29662457972495aa1d6a2ade7be
|
Provenance
The following attestation bundles were made for expert_mentor-0.6.1-py3-none-any.whl:
Publisher:
release.yml on voidstackloop/expert-mentor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
expert_mentor-0.6.1-py3-none-any.whl -
Subject digest:
39839c882d7d555a547bc8d6f552ae0847560fffcfbbe64e3a7859afac378d3b - Sigstore transparency entry: 2810445231
- Sigstore integration time:
-
Permalink:
voidstackloop/expert-mentor@aecb7d4e4ab5b77498f7318eee2f8998ab8ffe39 -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/voidstackloop
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@aecb7d4e4ab5b77498f7318eee2f8998ab8ffe39 -
Trigger Event:
push
-
Statement type: