mrkeyoor.com_
Thu 17 Sept 20:40 UTC
AI Toolsevaluationupdated 26 Aug 2026

DeepTutor review

DeepTutor is a self-hosted learning workspace that combines chat, document retrieval, guided study, quizzes, writing, books, and persistent AI partners. The main README is English and links translated documentation, while users bring their own local or hosted model providers.

+686stars / 7d
Verdict

Our DeepTutor run installed 200 packages and built successfully, but pytest collected 0 tests because configuration and a test dependency were missing, while pip-audit found 4 known vulnerabilities. That makes it a strong evaluation candidate for technical learners, not a release you should approve from the green build alone. Try the Docker or initialized workspace path, disable code execution if you do not need it, and require a passing test run before a school deployment.

We ran it

Lab card: what happened when we ran DeepTutorScreenshot of DeepTutor (arxiv.org/abs/2604.26962)
Install✓ · 120s200 packages · 660 MB
Build✓ · 17s
Tests✗ · 42s0 passed · 0 failed · 2 errors of 2 (pytest)
Known vulns4(pip-audit)
Repo2215 files~403,711 lines of source · 59.3 MB · 4 CI workflows · Dockerfile · tests dir

Answers from our run

Does DeepTutor build from source?

Dependencies installed in 120 seconds (200 packages), and the build succeeded in 17 seconds. We cloned commit 8515dfd into a clean Debian container with 3 CPUs and no project-specific setup.

Do DeepTutor's tests pass?

Yes: 0 of 2 passed when we ran the project's own test command (pytest), with 2 collection errors. Some failures need services or credentials a bare container does not have.

Does DeepTutor have known vulnerabilities in its dependencies?

pip-audit flagged 4 known advisories in the dependency tree at the time of our run.

Who should not use DeepTutor?

Anyone who expects the checked-out test suite to pass after the documented dependency install: our run stopped on a missing main.yaml and missing pytest_asyncio.

What are the alternatives to DeepTutor?

Open WebUI, AnythingLLM, LibreChat. Our DeepTutor run installed 200 packages and built successfully, but pytest collected 0 tests because configuration and a test dependency were missing, while pip-audit found 4 known vulnerabilities.

Setup3/5App paths are clear; the source test path failed before collection
Docs5/5Detailed install, workspace, model, retrieval, and security notes
Community5/5Current releases and active issue and pull-request traffic
Maturity3/5Large feature set, but our tests never reached execution

Who it’s for

Technical learners who want one private workspace for documents, tutoring chats, notes, and quizzes.
Educators and research groups willing to configure models, retrieval, user access, and backups.
Agent users who want Claude Code, Codex, MCP tools, and messaging channels connected to the same knowledge base.

Who it’s NOT for

Anyone who expects the checked-out test suite to pass after the documented dependency install: our run stopped on a missing main.yaml and missing pytest_asyncio.
Schools that need a low-change appliance: v1.5.17 shipped on 2026-08-24 and the repository was pushed again on 2026-08-25.
Operators unwilling to review model-generated code execution: the README says the office tools run generated Python in a restricted subprocess on local installs and that the sandbox is enabled by default.
Users seeking a fully offline tutor without selecting compatible local models, embeddings, parsers, and search services. Several major features require provider profiles or external services.
Small teams that only need chat with PDFs: the 660 MB Python environment, web frontend, retrieval choices, skills, channels, and partner system create a much larger maintenance surface.

Setup reality

Our install succeeded in 120 seconds with 200 packages and used 660 MB on disk; the build passed in 17 seconds. Tests failed in 42 seconds before any test ran, with 2 collection/setup errors and 4 known vulnerabilities reported by pip-audit.

One error said data/user/settings/main.yaml was missing. The other said pytest_asyncio was not installed. The README's normal application path is deeptutor init followed by deeptutor start, plus an LLM profile and optional embedding provider.

Docker publishes the web app on port 3782 and persists settings, API keys, logs, memory, and knowledge bases in a volume. Local office tools can execute model-written Python in a restricted subprocess, so review that default before using untrusted material.

DeepTutor is a learning system, not a PDF chat box

DeepTutor combines several jobs that normally live in separate applications. Chat can use documents, saved memory, skills, web search, MCP services, and external coding agents. A learner can turn the same material into a quiz, a guided mastery path, a notebook entry, a cited research report, or a generated book. Persistent Partners add their own personality, memory, library, and messaging connections.

That breadth is the reason to consider it and the first reason to hesitate. Our checkout had 2,215 files and about 403,711 lines of source. The repository includes a Python backend, a Next.js frontend, multiple retrieval engines, document parsers, model-provider catalogs, account isolation, a CLI, and channel adapters. If your goal is one conversation over a handful of PDFs, much of this system becomes maintenance rather than benefit.

The education features are concrete. Immersive Reading keeps a source beside the conversation and cites claims to pages. Mastery paths gate progress through questions, while the question bank saves the user's answer, a reference answer, and an explanation. Generated books contain editable blocks and track visits, bookmarks, quiz attempts, and weak chapters. This is closer to a personal study environment than a themed chatbot.

What happened when we ran it

Our install at commit 8515dfd finished in 120 seconds, adding 200 packages and 660 MB on disk. The build succeeded in 17 seconds. Pytest then exited with code 4 after 42 seconds: 0 tests passed, 0 failed, and 2 collection/setup errors prevented the suite from starting.

The first error was explicit: main.yaml was not found under /work/repo/data/user/settings. The second test module could not import pytest_asyncio because that package was absent. The log does not establish why either prerequisite was missing, so we will not assign a cause. It does show that the dependency and workspace state in our fresh Debian run were insufficient for the checked-out tests.

Pip-audit reported 4 known vulnerabilities. The repository has 4 CI workflow files, a Dockerfile, a Compose file, and a tests directory. Those are healthy engineering signals, but they do not cancel a collection failure. A team evaluating this commit should reproduce the initialized settings, install the intended test extras, rerun the full suite, and review each advisory before approving an environment.

The normal start path creates state before serving

For a local installation, the README recommends Python 3.11 through 3.13 and Node.js 22 LTS. The shortest application flow installs the package, runs deeptutor init, and then runs deeptutor start. Initialization writes the settings files, asks for ports and a model profile, and can configure embeddings. The default frontend is port 3782 and the backend is port 8001.

Docker is simpler to contain. Only port 3782 needs publishing for the usual single-container topology because Next.js proxies API and WebSocket traffic internally. A data volume holds settings, provider keys, logs, workspace files, memory, and knowledge bases. That volume needs backups because it contains both user work and the configuration required to interpret it.

Models remain your responsibility. DeepTutor supports hosted APIs, OpenAI-compatible servers, local engines, and an experimental Codex OAuth route tied to each user's ChatGPT plan. Knowledge bases may also require an embedding model and a parser. Tika is remote-only, Docling can be local or remote, and some optional extras need system packages such as LaTeX or FFmpeg.

Generated code is enabled for office tools

DeepTutor's office skills can ask a model to write Python for DOCX, PDF, PPTX, or XLSX work. On local and single-container installs, a restricted subprocess runs that code, and the README says the sandbox backend is active by default. A split deployment can send execution to a runner sidecar instead. This is useful, but it changes the threat model.

For personal experiments, the container itself provides a boundary from the host. Multi-user or internet-facing deployments need more: disable the feature when unnecessary, restrict grants, isolate the runner, and assume uploaded documents can influence generated instructions. DeepTutor has an import safety gate for community skills, yet a reviewed skill can still direct powerful tools. Administrators decide which users receive models, knowledge bases, skills, MCP access, CLI apps, and code execution.

Authentication also deserves deliberate setup. The first registered user becomes administrator and owns shared provider credentials and grants. Later users get separate workspaces and redacted settings. That is a sensible model, provided registration is controlled during first boot and the administrator account is backed by TLS and a strong credential.

Retrieval choice brings tuning work

A knowledge base can use LlamaIndex, PageIndex, GraphRAG, LightRAG, a remote LightRAG server, FAISS-backed paths, or linked external systems. DeepTutor can preserve older index versions during rebuilds and remove one failed document without deleting the whole collection. Those are useful operating details for a growing library.

Choice does not guarantee good retrieval. Each engine has different dependencies, indexing costs, citation behavior, and failure modes. Test with the documents and questions that matter, inspect citations, and keep source files recoverable. A generated answer that sounds pedagogically confident can still be wrong, especially when the selected parser lost a table or the embedding profile changed.

Active releases mean frequent upgrade decisions

Release v1.5.17 was published on 2026-08-24, and the repository was pushed on 2026-08-25. GitHub listed 91 open issues and PRs, with current work on EPUB reading, persisted quizzes, web-source syncing, and model settings. The queue is active rather than stale, but the pace means a deployment owner must choose when to absorb changes.

DeepTutor is worth testing if its study workflows match how you learn or teach. Start with one model, one parser, and one knowledge base, then verify the 574-test suite in your chosen install path. A school or company should wait for that local evidence, resolve the 4 audit findings, and define who may run code before inviting ordinary users.

Alternatives

ProjectWhat it isPick it when
Open WebUI gh↗A general self-hosted interface for local and hosted models with document retrieval.pick this instead when multi-user chat and model access matter more than tutoring workflows and book generation.
AnythingLLM gh↗A document-centered AI workspace with desktop and self-hosted deployment options.pick this instead when you want a simpler knowledge workspace with fewer education-specific systems.
LibreChat gh↗A multi-provider chat application with agents, tools, files, and enterprise deployment controls.pick this instead when provider-neutral team chat is the main product and guided learning is secondary.

What people are saying

  1. [github-trending] HKUDS/DeepTutor

Sources

  1. DeepTutor README
  2. DeepTutor releases
  3. DeepTutor issues and pull requests

More ai tools reviews

rowboat · skills · superpowers-zh · yolov5 · eve · MemOS · the whole board →