GraphCanon updated 3d · GitHub synced 3d · 45 views this month
Decision brief
DeepTutor is an AI-based personalized tutoring system for lifelong learning, incorporating large language models and multi-agent systems in its architecture.
Good fit when
- Use DeepTutor when you require a comprehensive solution that can provide continuous personalization based on deep research and multi-agent systems.
- Ideal for environments where interactive learning is emphasized, such as educational institutions or corporate training programs.
Avoid when
- Avoid using DeepTutor if your setup lacks the necessary computational resources to handle complex large language models and multi-agent interactions efficiently.
- Do not use it if you are looking for a tool with simpler installations; DeepTutor requires specific configuration steps, including frontend dependency adjustments and possibly Docker setups.
- Pricing:
- freemium - The open-source version is freely available under the Apache-2.0 license with optional paid extras such as integration with partner instant messaging channels or advanced mathematical animation tools.
- Requirements:
- Min 4 GB RAM; Requires Docker
Observed Jul 11, 2026 · Source: enrich:decision_facts
Verify the decision
Maintenance and security
Full trust report- Maintenance
- Very active (0d since push)
- As of 3d
- Provenance
- Not a fork · Organization account
- As of 3d
- Security (OSV)
- No criticals
- As of 1mo
Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.
Install
pip install DeepTutor PyPIHow it fits your stack(11)
Typed graph edges - alternatives, integrations, successors, and dependencies. Ranked by relationship type, not raw GitHub stars.
Alternative
Integrates
Related
Relationship graph
Optional deeper exploration of typed edges and category neighbours.
Similar tools
Same-category neighbours not already linked as typed edges.
Evidence and technical details
Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.
Overview
DeepTutor is an AI agent-based system designed for personalized lifelong learning and interactive tutoring, utilizing large language models and multi-agent systems.
Capability facts
- Deploy
- Self-host
Source: dockerfile:Dockerfile · Aug 17, 2026
- Docker
- Dockerfile present
Source: dockerfile:Dockerfile · Aug 17, 2026
- CLI
- CLI entrypoint
Source: pyproject.toml:[project.scripts] · Aug 17, 2026
- Languages
- python
Source: github.language+pyproject.toml · Aug 17, 2026
Categories
Compatibility
Sourced claims from the README excerpt - not unsourced marketing copy.
Source: README excerpt (regex_v1, Aug 17, 2026)
**Changing frontend dependencies:** run `npm install --legacy-peer-deps` to refresh `web/package-lock.json`, then commit both `web/pSource link
Source: README excerpt (regex_v1, Aug 17, 2026)
python -m pip install -e .Source link
Tags
README
Install backend + frontend deps
python -m pip install -e . ( cd web && npm ci --legacy-peer-deps )
deeptutor init deeptutor start --dev
`deeptutor start` builds the local `web/` frontend for production once and reuses it; `--dev` runs Next.js with HMR. Config layout, ports, and `Ctrl+C` match Option 1.
<details>
<summary><b>Conda environment</b> (instead of <code>venv</code>)</summary>
```bash
conda create -n deeptutor python=3.11
conda activate deeptutor
python -m pip install --upgrade pip
Optional install extras — dev / partners / matrix / math-animator
pip install -e ".[dev]" # tests/lint tools
pip install -e ".[partners]" # Partner IM channel SDKs + MCP client
pip install -e ".[matrix]" # Matrix channel without E2EE/libolm
pip install -e ".[matrix-e2e]" # Matrix E2EE; requires libolm
pip install -e ".[math-animator]" # Manim addon; requires LaTeX/ffmpeg/system libs
Frontend dependency tweaks & dev-server troubleshooting
Changing frontend dependencies: run npm install --legacy-peer-deps to refresh web/package-lock.json, then commit both web/package.json and web/package-lock.json.
Stuck dev server: if deeptutor start --dev reports an existing frontend that isn't responding, stop the PID it prints. If no Next.js process is actually running, the lock files are stale — remove them and retry:
rm -f web/.next/dev/lock web/.next/lock
deeptutor start --dev
Option 3 — Docker · one self-contained container
One container for the full Web app. Images on GitHub Container Registry:
ghcr.io/hkuds/deeptutor:latest— stable releaseghcr.io/hkuds/deeptutor:pre— pre-release, when available
See CONTAINERIZATION.md for podman/rootless/read-only-rootfs deployments and the full per-installation guide.
docker run --rm --name deeptutor \
-p 127.0.0.1:3782:3782 \
-v deeptutor-data:/app/data \
ghcr.io/hkuds/deeptutor:latest
Only
3782needs to be published. The browser talks exclusively to the frontend origin; the Next.js middleware (web/proxy.ts) forwards/api/*and/ws/*to the FastAPI backend inside the container. Publishing8001(-p 127.0.0.1:8001:8001) is optional — handy only for hitting the API directly with curl or scripts.
Open http://127.0.0.1:3782. The container creates /app/data/user/settings/*.json on first boot; configure model providers from the Web Settings page. Config, API keys, logs, workspace files, memory, and knowledge bases persist in the deeptutor-data volume.
- Different host ports: change the left side of each
-p host:containermapping (e.g.-p 127.0.0.1:8088:3782). If you change container-side ports in/app/data/user/settings/system.json, restart and update the right side of each mapping to match. - Detached: add
-d, thendocker logs -f deeptutorto follow,docker stop deeptutorto stop,docker rm deeptutorbefore reusing the name. Thedeeptutor-datavolume keeps your settings and workspace across restarts.
Remote Docker / reverse proxy: the browser only talks to the frontend
origin (:3782); the in-container Next.js middleware forwards /api/* and
/ws/* to the backend server-side. For the common single-container case you
don't configure an API base at all — just point your reverse proxy / TLS
terminator at :3782. You only need an API base for a split deployment
(backend in a separate container/host): set next_public_api_base in
data/user/settings/system.json to the in-network address the frontend server
uses to reach the backend (it's read server-side, never sent to the browser).
{
"next_public_api_base": "http://backend:8001"
}
next_public_api_base_external (and its alias public_api_base) are accepted
For agents
This page has a .md twin and JSON over the API.