{"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":35947,"forks":4530,"topics":["ai-agents","ai-tutor","clawdbot","cli-tool","deepresearch","interactive-learning","large-language-models","multi-agent-systems","rag"],"archived":false,"github_pushed_at":"2026-08-16T18:13:24+00:00","maintenance_label":"Very active","stars_delta_30d":8687,"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":108,"watchers":176,"ai_summary":"DeepTutor is an AI agent-based system designed for personalized lifelong learning and interactive tutoring, utilizing large language models and multi-agent systems.","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> — dev / partners / matrix / math-animator</summary>\n\n```bash\npip install -e \".[dev]\"             # tests/lint tools\npip install -e \".[partners]\"        # Partner IM channel SDKs + MCP client\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` — stable release\n- `ghcr.io/hkuds/deeptutor:pre` — pre-release, when available\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\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, workspace files, memory, and knowledge bases persist in the `deeptutor-data` volume.\n\n- **Different host ports:** change the left side of each `-p host:container` mapping (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.\n- **Detached:** add `-d`, then `docker logs -f deeptutor` to follow, `docker stop deeptutor` to stop, `docker rm deeptutor` before reusing the name. The `deeptutor-data` volume keeps your settings and workspace across restarts.\n\n**Remote Docker / reverse proxy:** the browser only talks to the frontend\norigin (`:3782`); the in-container Next.js middleware forwards `/api/*` and\n`/ws/*` to the backend server-side. For the common single-container case you\ndon't configure an API base at all — just point your reverse proxy / TLS\nterminator at `:3782`. You only need an API base for a **split deployment**\n(backend in a separate container/host): set `next_public_api_base` in\n`data/user/settings/system.json` to the in-network address the frontend server\nuses to reach the backend (it's read server-side, never sent to the browser).\n\n```json\n{\n  \"next_public_api_base\": \"http://backend:8001\"\n}\n```\n\n`next_public_api_base_external` (and its alias `public_api_base`) are accepted","github_created_at":"2025-12-28T15:35:54+00:00","created_at":"2026-07-07T17:33:15.352963+00:00","updated_at":"2026-08-17T00:01:59.239974+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":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"}],"tags":[{"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"},{"slug":"rag","name":"rag"}],"trust":{"provenance":{"is_fork":false,"github_id":1124219907,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-08-17T00:01:58.449Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":30,"days_since_push":0,"last_release_at":"2026-08-13T11:32:53Z","stars_delta_30d":8687,"open_issues_delta_30d":42},"security_summary":{"status":"ok","scanner":"osv@v1","low_count":0,"high_count":0,"last_scan_at":"2026-07-11T11:00:31.016Z","medium_count":0,"scan_profile":"deps","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-08-17T00:01:58.916Z"},"deploy":{"source":"dockerfile:Dockerfile","self_host":true,"observed_at":"2026-08-17T00:01:58.916Z","managed_saas":false},"has_cli":{"value":true,"source":"pyproject.toml:[project.scripts]","observed_at":"2026-08-17T00:01:58.916Z"},"languages":{"value":["python"],"source":"github.language+pyproject.toml","observed_at":"2026-08-17T00:01:58.916Z"},"has_docker":{"value":true,"source":"dockerfile:Dockerfile","observed_at":"2026-08-17T00:01:58.916Z"},"license_spdx":{"value":"Apache-2.0","source":"github.license","observed_at":"2026-08-17T00:01:58.916Z"}},"decision_facts":{"hosting":null,"pricing":{"model":"freemium","summary":"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_ram_gb":4,"requires_docker":true},"constraints":{"min_ram_gb":4,"pricing_model":"freemium","requires_docker":true},"when_to_use":["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."],"when_not_to_use":["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."],"source":"enrich:decision_facts","observed_at":"2026-07-11T13:41:07.509Z"},"constraint_facets":{"min_ram_gb":4,"pricing_model":"freemium","requires_docker":true},"decision_summary":[{"label":"Pricing","value":"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."},{"label":"Requirements","value":"Min 4 GB RAM; Requires Docker"},{"label":"Adopt for","value":"DeepTutor is an AI-based personalized tutoring system for lifelong learning, incorporating large language models and multi-agent systems in its architecture."}]}}