DeepTutor ties 737,316 lines to one learning workspace
commit ef2d9e5 contained 3,498 files and about 737,316 lines of source. That size buys more than a themed chat screen. DeepTutor connects conversations, knowledge bases, notebooks, question banks, writing, generated books, reading progress, memory, outside agents, and messaging Partners. A lesson can move between these surfaces without rebuilding its context in each app. That continuity is the case for DeepTutor. If you will not use it, the same breadth becomes upkeep.
The checkout itself occupied 58.2 MB before installation. Its Python backend and Next.js frontend support a Web app and a machine-readable CLI, while the knowledge layer can use LlamaIndex, PageIndex, GraphRAG, LightRAG, Kiwix, Obsidian, and other connected stores. This is closer to a personal learning system than a PDF question box. It also means upgrades can touch storage, retrieval, UI, model routing, or account policy at once.
Version 1.6.12 shares context across study modes
Version 1.6.12 lets Chat, Quiz, Research, Solve, Mastery Path, Immersive Reading, and other modes draw from the same workspace. Books compile source material into editable blocks, quizzes, figures, and notes. Memory is exposed as 3 layers rather than hidden behind a single opaque index. Learners can inspect what the system retained and trace summaries back to lower-level records.
That shared context is useful when the work lasts longer than one answer. A learner can read a cited passage, save a question, practice it later, and bring the same material into a writing session. The CLI can emit NDJSON for another agent, and DeepTutor can consult connected Claude Code or Codex sessions. Those features justify the project for a committed personal setup or a technically staffed lab. They are excess machinery for occasional homework questions.
What happened when we ran it
Our sandbox installed commit ef2d9e5 in 127 seconds, adding 218 packages and using 728 MB on disk. The build completed successfully in another 15 seconds. We used 3 CPUs, 8 GB of RAM, Python 3.12 on Debian, no secrets, and an unprivileged container. The repository also contained 4 CI workflow files, a Dockerfile, a Compose file, and a tests directory.
The test command did not finish inside 900 seconds. Its last output was a steady run of progress dots through 9%, with no exception or failure trace in the supplied tail. We cannot say how many tests would have passed, why the run was slow, or whether it would finish on different hardware. Pip-audit separately reported 4 known vulnerabilities. A release review should rerun the complete suite and inspect those advisories rather than treating the successful build as a substitute.
Python 3.11 is only the start of the setup
The PyPI route supports Python 3.11 through 3.14 and needs Node.js 20 or newer for the packaged frontend. The usual flow is to create a runtime home, install DeepTutor, run deeptutor init, and start the app. Initialization asks for ports and a language-model provider. Without an LLM profile, the interface can boot, but the tutor has no model to answer with.
Knowledge-base features introduce another choice: embeddings, parsing, and sometimes search. Hosted providers need credentials; local providers need reachable services and compatible model settings. Docker reduces host dependency work and exposes the Web app on port 3782, but its volume contains settings, keys, chat history, memory, and indexes. Back up that volume. Native DashScope or Volcengine microphone transcription also needs FFmpeg on the service path.
Three execution paths provide different safety boundaries
The README describes 3 paths for model-written code: a runner sidecar, Linux bubblewrap, or a restricted subprocess fallback. DeepTutor's office skills use that facility to create DOCX, PDF, PPTX, and XLSX files. The fallback is marked best effort when the stronger options are absent. That distinction matters if untrusted documents, community skills, or multiple users can influence a turn.
A personal Docker trial at least places the app inside a container. Shared deployments need a deliberate policy for code execution, model credentials, MCP services, and CLI apps. DeepTutor supports per-user grants, yet open issue 1222 reports that learner-policy restrictions can surface as 403 errors in the interface and can hide existing conversations. Schools should test the exact learner role and disabled surfaces they intend to ship.
v1.6.12 is active and still carries learning regressions
Release v1.6.12 shipped on September 27, 2026, the same date as the last repository push we found. GitHub showed 40,583 stars, 111 open issues, and 138 open pull requests on September 30. New issues and pull requests were still arriving that day, so DeepTutor is plainly maintained. The large queue also says that maintainers and deployers are absorbing a lot of change. Pin releases and read upgrade notes before moving a working study library.
Some current reports touch the product's core promise. Issue 1614 says v1.6.12 showed only about 7 rounds from a 310-round chat and attached new messages to the wrong earlier point. Issue 1624 reports Mastery Path sending a one-letter quiz answer to retrieval without the question context. These are user reports, not results from our sandbox, but they deserve regression tests if long-term memory or grounded assessment decides your adoption.
The 218-package install pays off only with repeated use
Our run leaves a clean decision: 218 packages and 728 MB are reasonable for a private study environment used every day, and excessive for occasional document chat. DeepTutor is the better pick when reading, practice, writing, memory, and agent access need to share one durable workspace. Start with one model and one knowledge base, keep code execution off unless you need it, and do not promote the system until the 900-second test ceiling and 4 audit findings have been resolved for your deployment.

