DeepTutor: AI Tutor for Personalized Learning
DeepTutor is a self-hosted AI tutor that runs chat, quiz, research, visualization, and mastery-practice modes on one agent loop instead of separate disconnected tools. Reach for it if you want one workspace where knowledge bases and memory carry across every mode and you're fine running your own stack. Skip it if you want an instant answer with zero setup — deeptutor init and deeptutor start are still required first.
What is DeepTutor?
DeepTutor is an open-source, self-hosted learning workspace built around an agent loop that powers Chat, Quiz, Research, Visualize, Solve, and Mastery Path from the same context. It ties together knowledge bases (LlamaIndex, PageIndex, GraphRAG, or LightRAG), books, notebooks, and a three-layer L1/L2/L3 memory system, and it ships as a CLI (deeptutor) alongside a Next.js web app you run yourself.
Core Features for Personalized Learning
- ✓One agent loop drives Chat, Quiz, Research, Visualize, Solve, and Mastery Path, so switching modes doesn't reset your context.
- ✓Knowledge bases, books, Co-Writer drafts, notebooks, question banks, personas, and Memory stay attached across every mode instead of living in separate tools.
- ✓Subagents and Partners let you consult a live coding CLI — Claude Code, Codex, Gemini, Kimi, opencode, or MiMo — from inside a chat turn, or run persistent IM companions on the same memory.
- ✓Retrieval runs through LlamaIndex, PageIndex, GraphRAG, or LightRAG, or a linked Obsidian vault, that includes pluggable document parsing engines.
- ✓Extensibility comes from built-in tools, MCP servers, CLI apps, image video voice generation models, alongside installable community skills provided by EduHub.
- ✓Memory is inspectable rather than a black box: L1 traces, L2 surface summaries, and L3 synthesis, plus a Memory Graph that traces claims back to their source.
Setting Up DeepTutor
DeepTutor ships four install paths sharing one workspace layout under data/user/settings/. The fastest is PyPI: pip install -U deeptutor, then deeptutor init (prompts for backend port, default 8001; frontend port, default 3782; LLM provider; and an optional embedding provider) and deeptutor start, which spawns both backend and frontend — open the printed URL, default http://127.0.0.1:3782. This path needs Python 3.11–3.13 and a Node.js 20+ runtime on PATH, since deeptutor start spawns a packaged Next.js standalone server. For development against a checkout, clone the repo, create a venv (or a conda env via conda create -n deeptutor python=3.11), run pip install -e . plus npm ci --legacy-peer-deps in web/ (Node.js 22 LTS to match CI and Docker), then deeptutor init and deeptutor start --dev for hot reload. Optional extras add pieces individually: .[dev] for test/lint tools, .[partners] for IM channel SDKs, .[matrix]/.[matrix-e2e] for Matrix chat (E2EE needs libolm), and .[math-animator] for the Manim-based animator (needs LaTeX, ffmpeg, and system libraries).
Who Benefits from DeepTutor?
DeepTutor suits someone who already has an LLM API key (or a local model server) and wants one place to hold course material, chat about it, generate quizzes, and track mastery instead of juggling separate chatbot and flashcard apps. It also fits a small team standing up a shared tutoring instance, since multi-user deployments with isolated per-user workspaces are supported. It's a poor fit if you don't want to run a Python plus Node.js process yourself or manage your own model provider.
Strengths
- ✓Every mode — Chat, Quiz, Research, Visualize, Solve, Mastery Path — reads and writes the same Memory and knowledge base, so a fact established in Chat shows up in a generated Quiz.
- ✓Retrieval isn't locked to one engine: pick LlamaIndex, PageIndex, GraphRAG, or LightRAG per knowledge base, or link an existing Obsidian vault.
- ✓You can pull a live coding CLI — Claude Code, Codex, Gemini, Kimi, opencode, or MiMo — into a learning session as a subagent instead of switching windows to check an answer.
- ✓Apache-2.0 licensing keeps it usable in most commercial and personal setups without asking permission.
- ✓Release cadence is real: v0.2.0 to v1.5.9 landed in under eight months.
Considerations and Potential Challenges
- △Running it means operating two runtimes yourself — Python 3.11–3.13 and Node.js — plus supplying your own LLM (and optionally embedding) provider; there's no hosted version to just sign into.
- △The changelog moves fast — dozens of point releases from v0.2.0 through v1.5.9 in under eight months — so commands, settings layout, or CLI flags can shift between versions if you're not pinning one.
- △Optional extras carry real system dependencies: Matrix E2EE needs libolm, and the Manim-based Math Animator needs LaTeX, ffmpeg, and other system libraries installed separately.
- △No benchmark or adoption numbers are published in the README beyond GitHub star and fork counts, so you can't judge tutoring quality from the repo alone.
DeepTutor Alternatives
Frequently Asked Questions
DeepTutor is released under the Apache-2.0 license, per its GitHub repository.
DeepTutor needs Python 3.11–3.13 plus a Node.js 20+ runtime for the PyPI install, or Node.js 22 LTS when building from source to match CI and Docker.
DeepTutor supports multiple LLM providers — the changelog lists OpenAI, Anthropic, Gemini, NVIDIA NIM, Novita AI, Eden AI, Atlas Cloud, and local servers like LM Studio and llama.cpp, chosen during deeptutor init.
DeepTutor supports multi-user deployments: v1.3.8 added isolated per-user workspaces, admin grants, and scoped runtime access.
DeepTutor supports a user-authored Skills system, MCP servers, CLI apps, and installing community skills from ClawHub via deeptutor skill install.
DeepTutor's Knowledge Center indexes documents through LlamaIndex, PageIndex, GraphRAG, or LightRAG, or links an existing Obsidian vault, with pluggable document parsing.
The problem it solves
Studying with an LLM usually means bouncing between a separate chat window, a flashcard app, and a note tool that don't share what you've already learned — ask a question in one and the others have no idea. DeepTutor's agent loop keeps Chat, Quiz, Research, Visualize, Solve, and Mastery Path reading from the same knowledge base and memory, so a concept explained in Chat can feed a Quiz question without you re-uploading or re-explaining it.
Best use cases
- •Building a personal knowledge base from course PDFs or notes, then chatting, quizzing, and running Mastery Path against it without re-uploading material per mode.
- •Pulling a live coding CLI (Claude Code, Codex, Gemini, Kimi, opencode, or MiMo) into a study session to verify a code-based answer without leaving the chat.
- •Standing up a shared multi-user instance for a small class or team, with isolated per-user workspaces since v1.3.8.
- •Running Deep Research mode to produce a report from a knowledge base instead of manually cross-referencing sources.
- •Linking an existing Obsidian vault as a knowledge base rather than re-indexing notes into a separate system.
