{"data":{"slug":"hkuds-deeptutor","name":"DeepTutor","tagline":"Lifelong Personalized Tutoring","github_url":"https://github.com/HKUDS/DeepTutor","owner":"HKUDS","repo":"DeepTutor","owner_avatar_url":"https://avatars.githubusercontent.com/u/118165258?v=4","primary_language":"Python","stars":39926,"forks":5014,"topics":["ai-agents","ai-tutor","clawdbot","cli-tool","deepresearch","interactive-learning","large-language-models","multi-agent-systems","rag"],"archived":false,"github_pushed_at":"2026-09-15T04:49:29+00:00","maintenance_label":"Very active","stars_delta_30d":3979,"url":"https://www.graphcanon.com/tools/hkuds-deeptutor","markdown_url":"https://www.graphcanon.com/tools/hkuds-deeptutor.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/hkuds-deeptutor","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=hkuds-deeptutor","description":"DeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/.","homepage_url":"http://arxiv.org/abs/2604.26962","license":"Apache-2.0","open_issues":268,"watchers":193,"ai_summary":"DeepTutor is an AI-driven tutoring system that supports lifelong learning through personalized interactions. It includes a CLI tool for setup and management, and supports various RAG engines and partner integrations.","readme_excerpt":"# Install backend + frontend deps\npython -m pip install -e .\n( cd web && npm ci --legacy-peer-deps )\n\ndeeptutor init\ndeeptutor start --dev\n```\n\n`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.\n\n<details>\n<summary><b>Conda environment</b> (instead of <code>venv</code>)</summary>\n\n```bash\nconda create -n deeptutor python=3.11\nconda activate deeptutor\npython -m pip install --upgrade pip\n```\n\n</details>\n\n<details>\n<summary><b>Optional install extras</b> — RAG engines / dev / partners / matrix / math-animator</summary>\n\n```bash\npip install -e \".[rag-lightrag]\"    # Built-in LightRAG engine (exact supported SDK)\npip install -e \".[graphrag]\"        # Microsoft GraphRAG engine (Python 3.11–3.13)\npip install -e \".[dev]\"             # tests/lint tools\npip install -e \".[partners]\"        # Partner IM channel SDKs\npip install -e \".[video-learning]\"  # compatibility extra; captions ship in the full/CLI installs\npip install -e \".[matrix]\"          # Matrix channel without E2EE/libolm\npip install -e \".[matrix-e2e]\"      # Matrix E2EE; requires libolm\npip install -e \".[math-animator]\"   # Manim addon; requires LaTeX/ffmpeg/system libs\n```\n\n</details>\n\n<details>\n<summary><b>Frontend dependency tweaks & dev-server troubleshooting</b></summary>\n\n**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`.\n\n**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:\n\n```bash\nrm -f web/.next/dev/lock web/.next/lock\ndeeptutor start --dev\n```\n\n</details>\n\n</details>\n\n<details>\n<summary><b>Option 3 — Docker</b> · one self-contained container</summary>\n\nOne container for the full Web app. Images on GitHub Container Registry:\n\n- `ghcr.io/hkuds/deeptutor:latest` — latest stable release\n- `ghcr.io/hkuds/deeptutor:<version>` — exact release without the leading `v` (for example `:1.6.3`); pre-releases receive only their version tag\n\n> See [CONTAINERIZATION.md](./CONTAINERIZATION.md) for podman/rootless/read-only-rootfs deployments and the full per-installation guide.\n\n```bash\ndocker run --rm --name deeptutor \\\n  -p 127.0.0.1:3782:3782 \\\n  -v deeptutor-data:/app/data \\\n  ghcr.io/hkuds/deeptutor:latest\n```\n\nTo choose a host content folder at container startup, mount it at the stable\ncontainer path and lock DeepTutor to that path:\n\n```bash\nmkdir -p \"$PWD/deeptutor-workspace/outputs\"\ndocker run --rm --name deeptutor \\\n  -p 127.0.0.1:3782:3782 \\\n  -v deeptutor-data:/app/data \\\n  -v \"$PWD/deeptutor-workspace:/workspace\" \\\n  -e DEEPTUTOR_WORKSPACE_ROOT=/workspace \\\n  -e DEEPTUTOR_WORKSPACE_ALLOWED_ROOTS=/workspace \\\n  ghcr.io/hkuds/deeptutor:latest\n```\n\nFor Compose, set `DEEPTUTOR_WORKSPACE_HOST=/absolute/host/folder` before\nrunning `python scripts/docker_compose.py up -d`. When omitted it uses\n`./data/user/workspace`. Docker paths are selected at startup and therefore\nappear locked in the Web settings page.\n\n> **Only `3782` needs 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**. Publishing `8001` (`-p 127.0.0.1:8001:8001`) is optional — handy only for hitting the API directly with curl or scripts.\n\nOpen [http://127.0.0.1:3782](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, the default Content Workspace, memory, and knowledge bases persist in the `deeptutor-data` volume. A separately mounted Content Workspace persists at its host path instead. Optional extras belong on the deployment, not in a shell: set `DEEPTUTOR_EXT","github_created_at":"2025-12-28T15:35:54+00:00","created_at":"2026-07-07T17:33:15.352963+00:00","updated_at":"2026-09-20T04:33:16.986152+00:00","categories":[{"slug":"ai-agents","name":"AI Agents","url":"https://www.graphcanon.com/categories/ai-agents","markdown_url":"https://www.graphcanon.com/categories/ai-agents.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/ai-agents"},{"slug":"data-retrieval","name":"Data & Retrieval","url":"https://www.graphcanon.com/categories/data-retrieval","markdown_url":"https://www.graphcanon.com/categories/data-retrieval.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/data-retrieval"},{"slug":"developer-tools","name":"Developer Tools","url":"https://www.graphcanon.com/categories/developer-tools","markdown_url":"https://www.graphcanon.com/categories/developer-tools.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/developer-tools"}],"tags":[{"slug":"ai-agents","name":"ai-agents"},{"slug":"ai-tutor","name":"ai-tutor"},{"slug":"clawdbot","name":"clawdbot"},{"slug":"cli-tool","name":"cli-tool"},{"slug":"deepresearch","name":"deepresearch"},{"slug":"interactive-learning","name":"interactive-learning"},{"slug":"large-language-models","name":"large-language-models"},{"slug":"multi-agent-systems","name":"multi-agent-systems"}],"trust":{"provenance":{"is_fork":false,"github_id":1124219907,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-18T08:46:38.139Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":30,"days_since_push":3,"last_release_at":"2026-09-14T06:54:54Z","stars_delta_30d":3979,"open_issues_delta_30d":160},"security_summary":{"status":"ok","scanner":"osv@v1","low_count":0,"high_count":0,"last_scan_at":"2026-09-18T08:46:40.290Z","medium_count":0,"scan_profile":"deps","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-09-18T08:46:37.025Z"},"deploy":{"source":"dockerfile:Dockerfile","self_host":true,"observed_at":"2026-09-18T08:46:37.025Z","managed_saas":false},"has_cli":{"value":true,"source":"pyproject.toml:[project.scripts]","observed_at":"2026-09-18T08:46:37.025Z"},"languages":{"value":["python"],"source":"github.language+pyproject.toml","observed_at":"2026-09-18T08:46:37.025Z"},"has_docker":{"value":true,"source":"dockerfile:Dockerfile","observed_at":"2026-09-18T08:46:37.025Z"},"license_spdx":{"value":"Apache-2.0","source":"github.license","observed_at":"2026-09-18T08:46:37.025Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["When you need a system that supports lifelong learning through personalized interactions.","If you require integration with specific RAG engines like LightRAG or GraphRAG.","For projects that benefit from partner integrations, such as Matrix or math animation tools.","When you prefer a setup that includes both backend and frontend dependencies managed through a CLI."],"when_not_to_use":["If your project does not require lifelong learning capabilities or personalized tutoring.","When you do not need support for specific RAG engines or partner integrations.","If you are looking for a tool that does not require a CLI for setup and management.","For environments where the Apache-2.0 license is not compatible with your project requirements."],"source":"enrich:decision_facts","observed_at":"2026-09-18T09:58:50.931Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"DeepTutor is an AI-driven tutoring system designed for lifelong personalized learning, featuring a CLI tool for setup and management, and support for various RAG engines and partner integrations."}]}}