Agent-native teaching OS: gives your AI a classroom that remembers. 50 tools for courses, lessons, FSRS flashcards, graded exercises, real-time teaching sessions, and teaching-memory read-back (getcontext) β the agent authors and grades, reflects with evidence, and revises its own lessons; lesson completion belongs to the learner. Self-hosted (Postgres + web app), MIT.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Your AI is becoming the one who knows you best. Learn Shell gives it a classroom that remembers β an agent-native teaching OS that turns your AI's teaching intent into things a learner can actually study, practice against, and get graded on.
Codename: learn-shell Β· Status: working system, actively dogfooded since 2026-07-02. Not authenticated. AGPL-3.0 licensed (v0.x was MIT; relicensed 2026-08-16, see note below); v1 is a single-machine, no-auth trust model.
Setting this up from a code snapshot? Follow SETUP.md β from-zero bring-up (Docker Postgres β migrate β seed β run β connect your own AI over MCP), every command verified against this repo's real config. Once it's running, the product tutorial (Chinese-first: cold-start pitfalls, the recommended lesson path, the agent's onboarding letter) is docs/TUTORIAL.md.
If you already have an AI you talk to daily β a work assistant, a long-running companion β it is quietly becoming the person who knows you best: it has read your every answer and seen your every hesitation. What it's missing is not knowledge of you. It's a floor. A chat window has no floor: the evidence of teaching evaporates with the context window, every new session your teacher wakes up a stranger, and you introduce yourself, again, to the one who knows you best.
Learn Shell is the floor. It doesn't replace your AI β it gives its teaching somewhere to live: courses, lessons, flashcards (FSRS-scheduled), exercises with grading, a mindmap, a document reader, and a memory layer the agent reads back (get_context / get_learner_brief) instead of re-deriving you from scratch every session. The teacher can change sessions, change models entirely β walk back in, and the classroom is exactly as it was left.
The agent talks to Learn Shell through MCP β 50 tools at this writing, plus data resources and a composable skill/prompt layer. The exact surface is self-describing: the manifest://capabilities resource is generated live from the running registries, so it can't drift the way this sentence can. MCP itself is evolving β the 2026-07-28 spec revision (stateless core, Apps and Tasks extensions) is on our roadmap watch list, tracked but not yet promised. Surfaces are bilingual: docs and receipts are English-first, MCP tool descriptions and the prep-report Chinese-first in v0.1 β agents read both; full EN localization is on the roadmap. A human talks to it through a normal web app. Both surfaces read and write the same data.
Full vision: docs/VISION.md (v5.2 β voice recast 2026-07-27, promises unchanged; red-team calibrated; assertion-by-assertion status tracked internally, not part of this package β a promise-level summary is public in Promise status below). Product direction / what's being hardened next is tracked in an internal working doc.
Real product, demo environment (the seeded English TVM course), no mockups. Every image follows your color scheme β dark readers see the dark app, light readers the light one.
Lesson β graded exercise feedback. The teacher quotes the learner's answer back verbatim before correcting it; the mistake shown is a real one, kept because it was worth being wrong about.
Journal β the learning biography. Lessons, reviews and live sessions on one timeline; scrolling it reads like a record of a relationship, because it is one.
Review β FSRS-scheduled flashcards, authored by the teacher out of what the lessons actually covered.
Live Teaching β a real-time, turn-based session beside the course text. The learner ends it, not the teacher: the close bell is theirs.
The pages above are the learner's surface. The teacher's surface is receipts β here is a real get_context return from that same demo environment, data field verbatim, nothing truncated:
One call, and a teacher who has never met this session knows where the relationship stands. That β not the pages β is the point.
v1's trust model is single-machine. The server binds 127.0.0.1 by default β your data is visible only to processes on the same machine. No account system exists because this is local-first by design, not an oversight: there is no per-agent credential, no scoped token, no audit trail beyond "actor: mcp", because v1 assumes one machine, one trust boundary.
Cross-device deployment (HOST=0.0.0.0) is an explicit opt-in. Setting it means you trust every device on that network β only do this on a trusted LAN, and never expose the server (REST or the MCP stdio bridge) to the public internet. Real authentication is on the roadmap, targeted at the multi-device case: agent credential β principal β pair derivation β real-name audit, scoped as its own dedicated batch, not a full multi-tenant system.
Learn Shell is not a demo. It has been in continuous daily use as one real teaching relationship β one learner preparing for a real exam, one agent as her teacher β since the first real lesson on 2026-07-02. Every rule in the recipes traces back to a real lesson or a real failure: a course was once published into the void, so now there is a publish gate; a summary once outran the learner's own words, so now closing a lesson is a handshake; a green check once lied about "done", so now the lesson-completion check has exactly one owner β the learner.
What's actually shipped, as of this writing:
pair:// data resources + the manifest://capabilities menu + per-recipe recipe:// volumes + a composable skill/prompt stack (domain Γ modality Γ intensity Γ tone Γ pace, picked per contract β ledger and verification layers are fixed, tone is never auto-imposed: the teacher's own voice wins). Mutating tools return a structured success/error envelope (resource_id/created_refs/next_recommended_actions on success; a closed VALIDATION/NOT_FOUND/CONFLICT/PERMISSION/RETRYABLE taxonomy on failure); most (34 of 50 at this writing) accept an optional idempotency_key for retry safety.Revised Β· v{n}.get_teacher_inbox): a single incremental to-do list β pending grading, unreflected Live sessions, unanswered AdHoc messages, flashcard trouble spots, unsigned contracts β each item naming which tool to call next.An exact, current-as-of-code inventory of every route, table, and known drift between docs and implementation is maintained internally, kept honest against git HEAD, not against intent. When this README and the code disagree, trust the code.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/sf-shenfeng-learn-shell)<a href="https://allmcps.com/mcp/sf-shenfeng-learn-shell"><img src="https://allmcps.com/api/badge/sf-shenfeng-learn-shell?style=directory" alt="Learn Shell on AllMCPs" /></a>