{
  "data": {
    "a": {
      "slug": "astrbot",
      "name": "AstrBot",
      "vendor": "AstrBotDevs",
      "vendorUrl": "https://astrbot.app",
      "kind": "harness",
      "category": "personal-assistants",
      "summary": "AstrBot is an open-source chatbot and agent program that the owner runs and connects to messaging platforms such as QQ, Telegram, Slack, Discord, Lark and WeCom, with scheduled tasks, MCP tools, plugins and a web admin panel.",
      "url": "https://www.anchorterminal.com/tools/astrbot",
      "markdownUrl": "https://www.anchorterminal.com/tools/astrbot.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/astrbot.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/astrbot.json",
      "repo": "https://github.com/AstrBotDevs/AstrBot",
      "license": "AGPL-3.0-or-later",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "astrbot"
        },
        {
          "registry": "oci",
          "name": "soulter/astrbot"
        }
      ],
      "auth": "mixed",
      "authNotes": "No account with the project. The web panel signs in with the user `astrbot` and a random initial password printed in the startup log, with optional TOTP and a login rate limit (https://github.com/AstrBotDevs/AstrBot/blob/master/docs/en/use/webui.md). Outside programs use `abk_` API keys created in Settings, OpenAPI, sent as `Authorization: Bearer` or `X-API-Key`, limited by 11 scopes and two sensitive sub-scopes and stored as PBKDF2 hashes (https://github.com/AstrBotDevs/AstrBot/blob/master/docs/en/dev/openapi.md). Messaging platform tokens and model provider keys are entered in the panel and kept in `data/cmd_config.json`.",
      "pricing": "free",
      "pricingNotes": "Free under AGPL-3.0 with nothing to buy. The EULA says the team sells no service and that a request for payment is a likely scam (https://github.com/AstrBotDevs/AstrBot/blob/master/EULA.md). The owner pays the model provider and any search or sandbox service, or nothing with a local model. The README links a paid third-party cloud host and several model resellers through referral links (checked 2026-10-12).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the OpenAPI file or the source (checked 2026-10-12).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 41800,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-12"
      },
      "docsUrl": "https://docs.astrbot.app",
      "openapi": "https://github.com/AstrBotDevs/AstrBot/blob/master/docs/public/openapi.json",
      "capabilities": [
        "assistant.proactive",
        "assistant.messaging",
        "assistant.self-hosted",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "free",
        "no-card",
        "python",
        "docker",
        "openapi",
        "agpl",
        "telemetry-default-on"
      ],
      "lastRelease": "2026-09-27",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59,
        "grade": "C",
        "agentReady": false,
        "rank": 660,
        "ranked": true,
        "rankOf": 1239,
        "categoryRank": 10,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 54,
          "maintenance": 81,
          "payments": 60,
          "reliability": 81,
          "schema": 62,
          "security": 44,
          "transparency": 42
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-12"
        },
        "negative": -2,
        "negativeNotes": [
          "2025-11-14. GHSA-4m32-cjv7-f425 (CVE-2025-55449, critical, 9.8), a hard-coded JWT signing key that let an unauthenticated attacker install a plugin and run commands on any reachable instance at 3.5.17 or earlier. Patched in 3.5.18 on 21 June 2025 and published five months later, inside the last 12 months. Fixed and documented, so the deduction decays to -2. https://github.com/AstrBotDevs/AstrBot/security/advisories/GHSA-4m32-cjv7-f425"
        ],
        "verdict": "Fourteen official messaging adapters, scheduled tasks and scoped API keys come in one AGPL-3.0 program with releases most weeks. No tool call asks for approval, no mail, calendar or long-term memory connector is built in, and usage statistics, including the machine's hostname, are sent by default.",
        "bestFor": "Someone who wants one self-run bot answering on QQ, Telegram, Slack, Discord, Lark or WeCom, in private or group chats, with scheduled tasks, a knowledge base and plugins.",
        "strengths": [
          "Official adapters for 14 messaging platforms in the README table, among them QQ, Telegram, Slack, Discord, LINE, Lark, DingTalk and WeCom",
          "Agent shell, Python and file tools are off by default (`computer_use_runtime` is `none`) and limited to administrators when turned on",
          "HTTP API under `/api/v1` with a published OpenAPI file of 170 paths and API keys limited by 11 scopes, stored as PBKDF2 hashes",
          "About 15 tagged releases in the 90 days to 12 October 2026, each with a dated changelog file in English and Chinese",
          "Unit tests run on Linux, macOS and Windows, and the last master runs we saw on 12 October 2026 passed"
        ],
        "weaknesses": [
          "No approval step before any tool call. The agent sends messages, creates scheduled tasks and calls MCP tools without asking",
          "No built-in mail, calendar or file-account connector and no long-term memory of the owner. Both depend on third-party plugins or MCP servers",
          "Usage statistics are on by default and include the hostname and an installation ID, while the EULA says nothing personally identifiable is collected",
          "The web panel listens on 0.0.0.0 by default, and the repository has no SECURITY.md or security.txt",
          "No prompt-injection guidance found, although group messages, web pages and MCP results all reach the model"
        ],
        "agentNotes": [
          "Set `ASTRBOT_DISABLE_METRICS=1` before the first start. Statistics, including the hostname, are sent to tickstats.soulter.top by default",
          "Set `dashboard.host` to 127.0.0.1 in `data/cmd_config.json`, or the `DASHBOARD_HOST` variable, unless remote access is intended. The default is 0.0.0.0",
          "Create an `abk_` key in Settings, OpenAPI with only the scopes needed, and send it as `Authorization: Bearer` or `X-API-Key`",
          "Include `username` in every `POST /api/v1/chat` body. Without the `chat:admin` scope an administrator ID is rejected",
          "Check Extensions, Future Tasks after asking for a schedule. One-off tasks are deleted after their run even when the run fails"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59
          }
        ],
        "editorialScores": {
          "ergonomics": 54,
          "maintenance": 81,
          "payments": 60,
          "reliability": 81,
          "schema": 62,
          "security": 44,
          "transparency": 56
        },
        "provenanceScore": 28,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-12",
            "maintenance": "2026-10-12",
            "payments": "2026-10-12",
            "reliability": "2026-10-12",
            "schema": "2026-10-12",
            "security": "2026-10-12",
            "transparency": "2026-10-12"
          },
          "last": "2026-10-12",
          "lastMoved": "2026-10-27",
          "oldest": "2026-10-12",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "uv tool install astrbot --python 3.12 \u0026\u0026 astrbot init \u0026\u0026 astrbot run",
        "http": "curl -N 'http://localhost:6185/api/v1/chat' -H 'Authorization: Bearer abk_xxx' -H 'Content-Type: application/json' -d '{\"message\":\"Hello\",\"username\":\"alice\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/assistant.proactive",
        "tool": "https://letme.dev/astrbot"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "",
        "domain": "astrbot.app",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "https://github.com/AstrBotDevs/AstrBot/blob/master/EULA.md",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/AstrBotDevs/AstrBot/releases",
        "securityTxt": "none",
        "checked": "2026-10-12",
        "notes": [
          "No legal entity was found. The docs call AstrBot a non-profit project under the AstrBotDevs organisation, and the EULA speaks for the AstrBot Team.",
          "The EULA in the repository (last updated 12 January 2026) is the only terms document found. Its section 8 is the only privacy statement, so no privacy link is given.",
          "astrbot.app answers every path, robots.txt and `/.well-known/security.txt` included, with the same script-drawn page, so the site has no robots rules and no security.txt. docs.astrbot.app answers 404 for security.txt and llms.txt.",
          "GitHub says the project has not set up a SECURITY.md. A Report a vulnerability button is shown and two advisories are published.",
          "Usage statistics go to tickstats.soulter.top, a host outside the project's domain.",
          "The domain's registration date was not looked up."
        ],
        "score": 28
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/astrbot.json",
      "live": {
        "slug": "astrbot",
        "versions": [
          {
            "registry": "github",
            "name": "AstrBotDevs/AstrBot",
            "version": "v4.29.3",
            "released": "2026-10-24",
            "seenAt": "2026-10-30T13:58:16.693210534Z"
          },
          {
            "registry": "pypi",
            "name": "astrbot",
            "version": "4.29.3",
            "released": "2026-10-24",
            "seenAt": "2026-10-30T13:58:16.498958497Z"
          }
        ],
        "githubStars": 45009,
        "pypiWeekly": 34217,
        "securityTxt": {
          "url": "https://astrbot.app/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-30T15:39:36.0343481Z"
        },
        "domain": {
          "domain": "astrbot.app",
          "registered": "2025-01-20",
          "source": "https://pubapi.registry.google/rdap/domain/astrbot.app",
          "checkedAt": "2026-10-25T13:57:11.868055185Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/AstrBotDevs/AstrBot/master/EULA.md",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-30T05:46:59.566021339Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7ae5843e8a0a"
          }
        ],
        "github": {
          "repo": "astrbotdevs/astrbot",
          "checkedAt": "2026-10-26T07:11:22.282016337Z",
          "stars": 43565,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-25T11:51:08Z",
          "openIssues": 699,
          "openPRs": 336,
          "issuesOpened90d": 460,
          "issuesClosed90d": 767,
          "prsMerged90d": 404,
          "ci": {
            "branch": "master",
            "runs": 50,
            "success": 50,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-25T11:52:45Z"
          },
          "advisories": [
            {
              "ghsa": "GHSA-4m32-cjv7-f425",
              "cve": "CVE-2025-55449",
              "severity": "critical",
              "published": "2025-11-14T04:38:53Z"
            },
            {
              "ghsa": "GHSA-cq37-g2qp-3c2p",
              "cve": "CVE-2025-48957",
              "severity": "high",
              "published": "2025-06-01T00:59:44Z"
            }
          ],
          "replies": {
            "sampled": 20,
            "unanswered": 9,
            "medianDays": 0.8
          }
        },
        "updatedAt": "2026-10-30T15:39:36.0343481Z"
      }
    },
    "answer": "DeepTutor scores 62.7 (B) on agent readiness against AstrBot's 59 (C), and leads in 5 of 7 scored categories.",
    "b": {
      "slug": "deeptutor",
      "name": "DeepTutor",
      "vendor": "HKUDS",
      "vendorUrl": "https://deeptutor.info",
      "kind": "harness",
      "category": "personal-assistants",
      "summary": "DeepTutor is an open-source, self-hosted learning workspace from HKUDS for tutoring, quizzes, research reports and knowledge bases, with persistent memory and optional multiple users. It runs as a web app, and a `deeptutor` CLI emits NDJSON for other agents.",
      "url": "https://www.anchorterminal.com/tools/deeptutor",
      "markdownUrl": "https://www.anchorterminal.com/tools/deeptutor.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/deeptutor.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/deeptutor.json",
      "repo": "https://github.com/HKUDS/DeepTutor",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "deeptutor"
        },
        {
          "registry": "pypi",
          "name": "deeptutor-cli"
        }
      ],
      "auth": "none",
      "authNotes": "No account with the project. The owner adds model provider keys in Settings or through `deeptutor config apply` with `api_key_env` naming an environment variable, or signs in to OpenAI Codex (OAuth), GitHub Copilot (device login) or CodeBuddy. Web sign-in is off by default; with `auth.json` enabled the first registered user becomes admin and grants models, knowledge bases, skills, tools and MCP access to other users (https://github.com/HKUDS/DeepTutor/blob/main/README.md).",
      "pricing": "free",
      "pricingNotes": "Free under the Apache 2.0 licence, and the README says the project has no paid online products. The owner pays the chosen model, embedding and search providers, or nothing with a local model through Ollama, LM Studio, llama.cpp, vLLM or Lemonade. The README carries a PageIndex discount code and an API Route provider preset, both third parties (checked 2026-10-30).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, SKILL.md or the developer handbook (checked 2026-10-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 51497,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-30"
      },
      "docsUrl": "https://deeptutor.info/",
      "capabilities": [
        "assistant.memory",
        "assistant.self-hosted",
        "assistant.messaging",
        "agent.mcp-client",
        "knowledge.search",
        "search.research",
        "memory.user",
        "document.write"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "local",
        "free",
        "python",
        "apache-2.0",
        "cli",
        "harness",
        "docker",
        "mcp-client",
        "rag",
        "no-card"
      ],
      "lastRelease": "2026-10-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.7,
        "grade": "B",
        "agentReady": false,
        "rank": 494,
        "ranked": true,
        "rankOf": 1239,
        "categoryRank": 7,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 84,
          "payments": 60,
          "reliability": 78,
          "schema": 71,
          "security": 51,
          "transparency": 52
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-30"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-09-30. CVE-2026-51870 (critical on NVD). Command execution through the TutorBot shell tool's `ExecTool.execute` in v1.4.0, reported in issue #506. v1.4.1 of 27 May 2026 lists it closed with a shell RCE (#518), a filesystem path traversal (#517) and three authorisation bypasses (#514 to #516), and makes shell exec opt-in. Fixed within five days and documented in release notes, -2. https://nvd.nist.gov/vuln/detail/CVE-2026-51870",
          "2026-06-30. GHSA-jg88-rvpc-qvxj (CVE-2026-58168, high). Before 1.4.10, a user grant without `mcp_tools` let non-admin users in multi-user mode invoke every configured MCP tool. Single-user installs were unaffected. Fixed in 1.4.10 of 21 June 2026 with deny-by-default MCP access, -1. https://api.osv.dev/v1/vulns/GHSA-jg88-rvpc-qvxj"
        ],
        "verdict": "DeepTutor runs on the owner's machine under Apache 2.0, ships releases every few days with upgrade notes, and gives other agents a JSON CLI with resumable sessions. Its default launch binds all interfaces with sign-in off and permissive CORS, there is no security policy, and two CVEs in 2026 covered a shell-tool RCE and a multi-user MCP bypass, both fixed.",
        "bestFor": "A learner, a teacher or a small group that wants a self-hosted tutor over their own documents, with quizzes, research reports, memory and IM companions, or for an agent that hands study tasks to it through the JSON CLI.",
        "strengths": [
          "Apache 2.0, self-hosted, and the README says the project sells nothing",
          "`deeptutor run ... --format json` streams NDJSON tagged with `session_id`, and `--session` chains turns headlessly",
          "SKILL.md and AGENT_SETUP.md give an agent a non-interactive setup path with `config apply --check` and `doctor --format json`",
          "Releases every few days with dated notes and upgrade steps, 27 in the 90 days to 30 October 2026",
          "Inspectable file-backed memory with an append-only L1 trace, and grants, audit records and per-user isolation in multi-user mode"
        ],
        "weaknesses": [
          "The default launch binds the backend to 0.0.0.0 with sign-in off and CORS open to any origin with credentials",
          "No SECURITY.md, no private reporting route and no repository-published advisories, while two CVEs were assigned in 2026",
          "The `exec` sandbox falls back to a best-effort restricted subprocess by default when no runner or bubblewrap is present",
          "Nightly test runs on main failed every night from 20 to 28 October 2026 before passing again on 29 and 30 October",
          "Provider keys are stored in plain JSON under `data/user/settings/`"
        ],
        "agentNotes": [
          "Run `deeptutor run \u003ccapability\u003e \"...\" --format json` and read the `done` event's `session_id`; pass `--session` to continue the same session",
          "Configure with `deeptutor config apply setup.json --check` first, naming keys through `api_key_env`; literal keys are rejected",
          "Before exposing it beyond one machine, enable sign-in in `auth.json`, set exact `cors_origins` and set `BACKEND_HOST=127.0.0.1` where loopback is wanted",
          "Run 1.4.10 or later. Earlier versions carry CVE-2026-51870 (shell tool RCE, fixed in 1.4.1) and CVE-2026-58168 (multi-user MCP bypass)",
          "Set `sandbox_allow_subprocess` to false where generated code must run only in the runner sidecar or bubblewrap"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.7
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 84,
          "payments": 60,
          "reliability": 78,
          "schema": 71,
          "security": 51,
          "transparency": 65
        },
        "provenanceScore": 39,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-30",
            "maintenance": "2026-10-30",
            "payments": "2026-10-30",
            "reliability": "2026-10-30",
            "schema": "2026-10-30",
            "security": "2026-10-30",
            "transparency": "2026-10-30"
          },
          "last": "2026-10-30",
          "oldest": "2026-10-30",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install -U \"deeptutor[full]\"   # then: deeptutor init \u0026\u0026 deeptutor start   # or: docker run --rm -p 127.0.0.1:3782:3782 -v deeptutor-data:/app/data ghcr.io/hkuds/deeptutor:latest",
        "headless": {
          "command": "deeptutor run chat \"$TASK\" --format json"
        }
      },
      "letme": {
        "capability": "https://letme.dev/assistant.memory",
        "tool": "https://letme.dev/deeptutor"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "",
        "domain": "deeptutor.info",
        "domainRegistered": "2026-05-20",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/HKUDS/DeepTutor/releases",
        "securityTxt": "unknown",
        "checked": "2026-10-30",
        "notes": [
          "No legal entity is named. The repository belongs to the GitHub organisation HKUDS, the Data Intelligence Lab at the University of Hong Kong, and the README says the project is led by Bingxi Zhao within the HKUDS group.",
          "deeptutor.info's robots.txt disallows ClaudeBot, Claude-Web and anthropic-ai, so its pages were not read. Its terms, privacy page and security.txt are unknown.",
          "No SECURITY.md was found in the repository tree on 30 October 2026.",
          "RDAP gives a registration date of 20 May 2026 for deeptutor.info. The README dates the docs site's launch to 22 May 2026.",
          "There is no hosted endpoint. The API answers on the owner's own host."
        ],
        "score": 39
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/deeptutor.json"
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "AstrBotDevs",
        "b": "HKUDS",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "AGPL-3.0-or-later",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-27",
        "b": "2026-10-28",
        "name": "Last release"
      },
      {
        "a": "2026-01-12",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "42k stars",
        "b": "51k stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "DeepTutor scores 62.7 (B) on agent readiness against AstrBot's 59 (C), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, AstrBot or DeepTutor?"
      },
      {
        "answer": "Yes. AstrBot is open source (AGPL-3.0-or-later). DeepTutor is open source (Apache-2.0).",
        "question": "Are AstrBot and DeepTutor open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Someone who wants one self-run bot answering on QQ, Telegram, Slack, Discord, Lark or WeCom, in private or group chats, with scheduled tasks, a knowledge base and plugins.",
        "slug": "astrbot",
        "watchFor": "No approval step before any tool call. The agent sends messages, creates scheduled tasks and calls MCP tools without asking"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 71 against 62",
          "Agent ergonomics, 63 against 54",
          "Security \u0026 auth, 51 against 44",
          "Transparency \u0026 trust, 52 against 42"
        ],
        "also": [
          "No key needed to call it"
        ],
        "goodFor": "A learner, a teacher or a small group that wants a self-hosted tutor over their own documents, with quizzes, research reports, memory and IM companions, or for an agent that hands study tasks to it through the JSON CLI.",
        "slug": "deeptutor",
        "watchFor": "The default launch binds the backend to 0.0.0.0 with sign-in off and CORS open to any origin with credentials"
      }
    ],
    "job": {
      "capability": "assistant.messaging",
      "name": "Assistants reached by message"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/asaply-vs-astrbot.json",
        "title": "asaply vs AstrBot",
        "url": "https://www.anchorterminal.com/compare/asaply-vs-astrbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/asaply-vs-deeptutor.json",
        "title": "asaply vs DeepTutor",
        "url": "https://www.anchorterminal.com/compare/asaply-vs-deeptutor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/asmi-vs-astrbot.json",
        "title": "Asmi vs AstrBot",
        "url": "https://www.anchorterminal.com/compare/asmi-vs-astrbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/asmi-vs-deeptutor.json",
        "title": "Asmi vs DeepTutor",
        "url": "https://www.anchorterminal.com/compare/asmi-vs-deeptutor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-boba.json",
        "title": "AstrBot vs Boba",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-boba"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-brea.json",
        "title": "AstrBot vs Brea",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-brea"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-del.json",
        "title": "AstrBot vs Del",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-del"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-hirealpha.json",
        "title": "AstrBot vs HireAlpha",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-hirealpha"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-natura.json",
        "title": "AstrBot vs Natura tinyNature",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-natura"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-openinstinct.json",
        "title": "AstrBot vs OpenInstinct",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-openinstinct"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-orbits.json",
        "title": "AstrBot vs Orbits",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-orbits"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-orchid-ai.json",
        "title": "AstrBot vs Orchid",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-orchid-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-pally.json",
        "title": "AstrBot vs Pally",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-pally"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-szn.json",
        "title": "AstrBot vs szn",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-szn"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-tab-bot.json",
        "title": "AstrBot vs Tab",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-tab-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-tomo.json",
        "title": "AstrBot vs Tomo",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-tomo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-zapia.json",
        "title": "AstrBot vs Zapia",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-zapia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boba-vs-deeptutor.json",
        "title": "Boba vs DeepTutor",
        "url": "https://www.anchorterminal.com/compare/boba-vs-deeptutor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brea-vs-deeptutor.json",
        "title": "Brea vs DeepTutor",
        "url": "https://www.anchorterminal.com/compare/brea-vs-deeptutor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-boski.json",
        "title": "AstrBot vs Boski",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-boski"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-caddy-app.json",
        "title": "AstrBot vs Caddy",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-caddy-app"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-claude-duet.json",
        "title": "AstrBot vs Claude Duet",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-claude-duet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-cowagent.json",
        "title": "AstrBot vs CowAgent",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-cowagent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-folk-nozomio.json",
        "title": "AstrBot vs folk",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-folk-nozomio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-gaia.json",
        "title": "AstrBot vs GAIA",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-gaia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-gemini-spark.json",
        "title": "AstrBot vs Gemini Spark",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-gemini-spark"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-grok-bot.json",
        "title": "AstrBot vs Grok Bot",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-grok-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-haven.json",
        "title": "AstrBot vs Haven",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-haven"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-hermes-agent.json",
        "title": "AstrBot vs Hermes Agent",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-hermes-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-instinct.json",
        "title": "AstrBot vs Instinct",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-instinct"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-ironclaw.json",
        "title": "AstrBot vs IronClaw",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-ironclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-leon.json",
        "title": "AstrBot vs Leon",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-leon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-lindy.json",
        "title": "AstrBot vs Lindy",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-lindy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-lobby-os.json",
        "title": "AstrBot vs Lobby",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-lobby-os"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-nanobot.json",
        "title": "AstrBot vs nanobot",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-nanobot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-nanoclaw.json",
        "title": "AstrBot vs NanoClaw",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-nanoclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-openai-dots.json",
        "title": "AstrBot vs Dots",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-openai-dots"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-openclaw.json",
        "title": "AstrBot vs OpenClaw",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-openclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-openduet.json",
        "title": "AstrBot vs OpenDuet",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-openduet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-picoclaw.json",
        "title": "AstrBot vs PicoClaw",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-picoclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-poke.json",
        "title": "AstrBot vs Poke",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-poke"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-qwenpaw.json",
        "title": "AstrBot vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-tasker-ai.json",
        "title": "AstrBot vs Tasker AI",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-tasker-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-town.json",
        "title": "AstrBot vs Town",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-zeroclaw.json",
        "title": "AstrBot vs ZeroClaw",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-zeroclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-zo-computer.json",
        "title": "AstrBot vs Zo Computer",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-zo-computer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atticus-vs-deeptutor.json",
        "title": "Atticus vs DeepTutor",
        "url": "https://www.anchorterminal.com/compare/atticus-vs-deeptutor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boski-vs-deeptutor.json",
        "title": "Boski vs DeepTutor",
        "url": "https://www.anchorterminal.com/compare/boski-vs-deeptutor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/caddy-app-vs-deeptutor.json",
        "title": "Caddy vs DeepTutor",
        "url": "https://www.anchorterminal.com/compare/caddy-app-vs-deeptutor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-duet-vs-deeptutor.json",
        "title": "Claude Duet vs DeepTutor",
        "url": "https://www.anchorterminal.com/compare/claude-duet-vs-deeptutor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cowagent-vs-deeptutor.json",
        "title": "CowAgent vs DeepTutor",
        "url": "https://www.anchorterminal.com/compare/cowagent-vs-deeptutor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-del.json",
        "title": "DeepTutor vs Del",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-del"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-folk-nozomio.json",
        "title": "DeepTutor vs folk",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-folk-nozomio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-gaia.json",
        "title": "DeepTutor vs GAIA",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-gaia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-gemini-spark.json",
        "title": "DeepTutor vs Gemini Spark",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-gemini-spark"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-grok-bot.json",
        "title": "DeepTutor vs Grok Bot",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-grok-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-hark-pro.json",
        "title": "DeepTutor vs Hark Pro",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-hark-pro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-haven.json",
        "title": "DeepTutor vs Haven",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-haven"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-hermes-agent.json",
        "title": "DeepTutor vs Hermes Agent",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-hermes-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-hirealpha.json",
        "title": "DeepTutor vs HireAlpha",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-hirealpha"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-instinct.json",
        "title": "DeepTutor vs Instinct",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-instinct"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-ironclaw.json",
        "title": "DeepTutor vs IronClaw",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-ironclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-learnharness.json",
        "title": "DeepTutor vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-leon.json",
        "title": "DeepTutor vs Leon",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-leon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-lindy.json",
        "title": "DeepTutor vs Lindy",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-lindy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-lobby-os.json",
        "title": "DeepTutor vs Lobby",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-lobby-os"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-nanobot.json",
        "title": "DeepTutor vs nanobot",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-nanobot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-nanoclaw.json",
        "title": "DeepTutor vs NanoClaw",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-nanoclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-natura.json",
        "title": "DeepTutor vs Natura tinyNature",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-natura"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-openai-dots.json",
        "title": "DeepTutor vs Dots",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-openai-dots"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-openclaw.json",
        "title": "DeepTutor vs OpenClaw",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-openclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-openduet.json",
        "title": "DeepTutor vs OpenDuet",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-openduet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-openinstinct.json",
        "title": "DeepTutor vs OpenInstinct",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-openinstinct"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-orbits.json",
        "title": "DeepTutor vs Orbits",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-orbits"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-orchid-ai.json",
        "title": "DeepTutor vs Orchid",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-orchid-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-pally.json",
        "title": "DeepTutor vs Pally",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-pally"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-picoclaw.json",
        "title": "DeepTutor vs PicoClaw",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-picoclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-poke.json",
        "title": "DeepTutor vs Poke",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-poke"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-qwenpaw.json",
        "title": "DeepTutor vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-szn.json",
        "title": "DeepTutor vs szn",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-szn"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-tab-bot.json",
        "title": "DeepTutor vs Tab",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-tab-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-talorys.json",
        "title": "DeepTutor vs Talorys",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-talorys"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-tasker-ai.json",
        "title": "DeepTutor vs Tasker AI",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-tasker-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-tomo.json",
        "title": "DeepTutor vs Tomo",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-tomo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-town.json",
        "title": "DeepTutor vs Town",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-wajo.json",
        "title": "DeepTutor vs Wajo (Fo)",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-wajo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-zapia.json",
        "title": "DeepTutor vs Zapia",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-zapia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-zeroclaw.json",
        "title": "DeepTutor vs ZeroClaw",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-zeroclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-zo-computer.json",
        "title": "DeepTutor vs Zo Computer",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-zo-computer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-atticus.json",
        "title": "AstrBot vs Atticus",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-atticus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-learnharness.json",
        "title": "AstrBot vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-talorys.json",
        "title": "AstrBot vs Talorys",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-talorys"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ai-job-search-vs-deeptutor.json",
        "title": "AI Job Search vs DeepTutor",
        "url": "https://www.anchorterminal.com/compare/ai-job-search-vs-deeptutor"
      }
    ],
    "scores": [
      {
        "astrbot": 81,
        "by": 3,
        "deeptutor": 78,
        "edge": "astrbot",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "astrbot": 62,
        "by": 9,
        "deeptutor": 71,
        "edge": "deeptutor",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "astrbot": 54,
        "by": 9,
        "deeptutor": 63,
        "edge": "deeptutor",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "astrbot": 44,
        "by": 7,
        "deeptutor": 51,
        "edge": "deeptutor",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "astrbot": 60,
        "by": 0,
        "deeptutor": 60,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "astrbot": 81,
        "by": 3,
        "deeptutor": 84,
        "edge": "deeptutor",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "astrbot": 42,
        "by": 10,
        "deeptutor": 52,
        "edge": "deeptutor",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "DeepTutor scores 62.7 (B) on agent readiness against AstrBot's 59 (C), and leads in 5 of 7 scored categories. Both do assistants reached by message.",
    "tutorials": [],
    "verdicts": {
      "astrbot": "Fourteen official messaging adapters, scheduled tasks and scoped API keys come in one AGPL-3.0 program with releases most weeks. No tool call asks for approval, no mail, calendar or long-term memory connector is built in, and usage statistics, including the machine's hostname, are sent by default.",
      "deeptutor": "DeepTutor runs on the owner's machine under Apache 2.0, ships releases every few days with upgrade notes, and gives other agents a JSON CLI with resumable sessions. Its default launch binds all interfaces with sign-in off and permissive CORS, there is no security policy, and two CVEs in 2026 covered a shell-tool RCE and a multi-user MCP bypass, both fixed."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/astrbot-vs-deeptutor",
    "json": "https://www.anchorterminal.com/compare/astrbot-vs-deeptutor.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/astrbot-vs-deeptutor.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/astrbot-vs-deeptutor.min.md"
  },
  "markdown": "DeepTutor scores 62.7 (B) on agent readiness against AstrBot's 59 (C), and leads in 5 of 7 scored categories. Both do assistants reached by message.\n\n- AstrBot: grade C, 59/100, rank #660 of 1239. Markdown https://www.anchorterminal.com/tools/astrbot.md · JSON https://www.anchorterminal.com/api/v1/tools/astrbot.json\n- DeepTutor: grade B, 62.7/100, rank #494 of 1239. Markdown https://www.anchorterminal.com/tools/deeptutor.md · JSON https://www.anchorterminal.com/api/v1/tools/deeptutor.json\n- Best AI personal assistants that act for one person: https://www.anchorterminal.com/best/personal-assistants/index.md\n- All 1196 assistants comparisons: https://www.anchorterminal.com/compare/personal-assistants/index.md\n\n## Which one, for what\n\n### AstrBot (C)\n\nGood for: Someone who wants one self-run bot answering on QQ, Telegram, Slack, Discord, Lark or WeCom, in private or group chats, with scheduled tasks, a knowledge base and plugins.\n\nWatch for: No approval step before any tool call. The agent sends messages, creates scheduled tasks and calls MCP tools without asking\n\n### DeepTutor (B)\n\nGood for: A learner, a teacher or a small group that wants a self-hosted tutor over their own documents, with quizzes, research reports, memory and IM companions, or for an agent that hands study tasks to it through the JSON CLI.\n\nAhead on:\n- Schema \u0026 documentation, 71 against 62\n- Agent ergonomics, 63 against 54\n- Security \u0026 auth, 51 against 44\n- Transparency \u0026 trust, 52 against 42\n\nAlso in its favour:\n- No key needed to call it\n\nWatch for: The default launch binds the backend to 0.0.0.0 with sign-in off and CORS open to any origin with credentials\n\n\n## Score by category\n\n| Category | Weight | AstrBot | DeepTutor | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 81 | 78 | AstrBot +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 62 | 71 | DeepTutor +9 |\n| Agent ergonomics | 13% (16.2 this run) | 54 | 63 | DeepTutor +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 44 | 51 | DeepTutor +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 81 | 84 | DeepTutor +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 42 | 52 | DeepTutor +10 |\n| Negative events | ≤15 | -2 | -3 | |\n| **Total** | | **59 · C** | **62.7 · B** | |\n\n## Facts side by side\n\n| Fact | AstrBot | DeepTutor |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | AstrBotDevs | HKUDS |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | OAuth or key | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | AGPL-3.0-or-later | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-09-27 | 2026-10-28 |\n| Terms last updated | 2026-01-12 | no document linked |\n| Privacy policy last updated | no document linked | no document linked |\n| Customer content may train models | not found in the text |  |\n| Terms restrict automated access | not found in the text |  |\n| Terms restrict benchmarking | not found in the text |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | not found in the text |  |\n| Popularity | 42k stars | 51k stars |\n\n## Verdicts\n\n**AstrBot.** Fourteen official messaging adapters, scheduled tasks and scoped API keys come in one AGPL-3.0 program with releases most weeks. No tool call asks for approval, no mail, calendar or long-term memory connector is built in, and usage statistics, including the machine's hostname, are sent by default.\n\n**DeepTutor.** DeepTutor runs on the owner's machine under Apache 2.0, ships releases every few days with upgrade notes, and gives other agents a JSON CLI with resumable sessions. Its default launch binds all interfaces with sign-in off and permissive CORS, there is no security policy, and two CVEs in 2026 covered a shell-tool RCE and a multi-user MCP bypass, both fixed.\n\n## Before you call either\n\n### AstrBot\n\n1. Set `ASTRBOT_DISABLE_METRICS=1` before the first start. Statistics, including the hostname, are sent to tickstats.soulter.top by default\n2. Set `dashboard.host` to 127.0.0.1 in `data/cmd_config.json`, or the `DASHBOARD_HOST` variable, unless remote access is intended. The default is 0.0.0.0\n3. Create an `abk_` key in Settings, OpenAPI with only the scopes needed, and send it as `Authorization: Bearer` or `X-API-Key`\n4. Include `username` in every `POST /api/v1/chat` body. Without the `chat:admin` scope an administrator ID is rejected\n5. Check Extensions, Future Tasks after asking for a schedule. One-off tasks are deleted after their run even when the run fails\n\n### DeepTutor\n\n1. Run `deeptutor run \u003ccapability\u003e \"...\" --format json` and read the `done` event's `session_id`; pass `--session` to continue the same session\n2. Configure with `deeptutor config apply setup.json --check` first, naming keys through `api_key_env`; literal keys are rejected\n3. Before exposing it beyond one machine, enable sign-in in `auth.json`, set exact `cors_origins` and set `BACKEND_HOST=127.0.0.1` where loopback is wanted\n4. Run 1.4.10 or later. Earlier versions carry CVE-2026-51870 (shell tool RCE, fixed in 1.4.1) and CVE-2026-58168 (multi-user MCP bypass)\n5. Set `sandbox_allow_subprocess` to false where generated code must run only in the runner sidecar or bubblewrap\n\n## Questions\n\n### Which is better for AI agents, AstrBot or DeepTutor?\n\nDeepTutor scores 62.7 (B) on agent readiness against AstrBot's 59 (C), and leads in 5 of 7 scored categories.\n\n### Are AstrBot and DeepTutor open source?\n\nYes. AstrBot is open source (AGPL-3.0-or-later). DeepTutor is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/astrbot-vs-deeptutor.json, and with the fewest tokens: https://www.anchorterminal.com/compare/astrbot-vs-deeptutor.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"astrbot\", \"b\": \"deeptutor\"}`. From a terminal: `anchor compare astrbot deeptutor`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/astrbot.json and https://www.anchorterminal.com/api/v1/tools/deeptutor.json\n\n## Other comparisons with AstrBot or DeepTutor\n\n- [asaply vs AstrBot](https://www.anchorterminal.com/compare/asaply-vs-astrbot.md)\n- [asaply vs DeepTutor](https://www.anchorterminal.com/compare/asaply-vs-deeptutor.md)\n- [Asmi vs AstrBot](https://www.anchorterminal.com/compare/asmi-vs-astrbot.md)\n- [Asmi vs DeepTutor](https://www.anchorterminal.com/compare/asmi-vs-deeptutor.md)\n- [AstrBot vs Boba](https://www.anchorterminal.com/compare/astrbot-vs-boba.md)\n- [AstrBot vs Brea](https://www.anchorterminal.com/compare/astrbot-vs-brea.md)\n- [AstrBot vs Del](https://www.anchorterminal.com/compare/astrbot-vs-del.md)\n- [AstrBot vs HireAlpha](https://www.anchorterminal.com/compare/astrbot-vs-hirealpha.md)\n- [AstrBot vs Natura tinyNature](https://www.anchorterminal.com/compare/astrbot-vs-natura.md)\n- [AstrBot vs OpenInstinct](https://www.anchorterminal.com/compare/astrbot-vs-openinstinct.md)\n- [AstrBot vs Orbits](https://www.anchorterminal.com/compare/astrbot-vs-orbits.md)\n- [AstrBot vs Orchid](https://www.anchorterminal.com/compare/astrbot-vs-orchid-ai.md)\n- [AstrBot vs Pally](https://www.anchorterminal.com/compare/astrbot-vs-pally.md)\n- [AstrBot vs szn](https://www.anchorterminal.com/compare/astrbot-vs-szn.md)\n- [AstrBot vs Tab](https://www.anchorterminal.com/compare/astrbot-vs-tab-bot.md)\n- [AstrBot vs Tomo](https://www.anchorterminal.com/compare/astrbot-vs-tomo.md)\n- [AstrBot vs Zapia](https://www.anchorterminal.com/compare/astrbot-vs-zapia.md)\n- [Boba vs DeepTutor](https://www.anchorterminal.com/compare/boba-vs-deeptutor.md)\n- [Brea vs DeepTutor](https://www.anchorterminal.com/compare/brea-vs-deeptutor.md)\n- [AstrBot vs Boski](https://www.anchorterminal.com/compare/astrbot-vs-boski.md)\n- [AstrBot vs Caddy](https://www.anchorterminal.com/compare/astrbot-vs-caddy-app.md)\n- [AstrBot vs Claude Duet](https://www.anchorterminal.com/compare/astrbot-vs-claude-duet.md)\n- [AstrBot vs CowAgent](https://www.anchorterminal.com/compare/astrbot-vs-cowagent.md)\n- [AstrBot vs folk](https://www.anchorterminal.com/compare/astrbot-vs-folk-nozomio.md)\n- [AstrBot vs GAIA](https://www.anchorterminal.com/compare/astrbot-vs-gaia.md)\n- [AstrBot vs Gemini Spark](https://www.anchorterminal.com/compare/astrbot-vs-gemini-spark.md)\n- [AstrBot vs Grok Bot](https://www.anchorterminal.com/compare/astrbot-vs-grok-bot.md)\n- [AstrBot vs Haven](https://www.anchorterminal.com/compare/astrbot-vs-haven.md)\n- [AstrBot vs Hermes Agent](https://www.anchorterminal.com/compare/astrbot-vs-hermes-agent.md)\n- [AstrBot vs Instinct](https://www.anchorterminal.com/compare/astrbot-vs-instinct.md)\n- [AstrBot vs IronClaw](https://www.anchorterminal.com/compare/astrbot-vs-ironclaw.md)\n- [AstrBot vs Leon](https://www.anchorterminal.com/compare/astrbot-vs-leon.md)\n- [AstrBot vs Lindy](https://www.anchorterminal.com/compare/astrbot-vs-lindy.md)\n- [AstrBot vs Lobby](https://www.anchorterminal.com/compare/astrbot-vs-lobby-os.md)\n- [AstrBot vs nanobot](https://www.anchorterminal.com/compare/astrbot-vs-nanobot.md)\n- [AstrBot vs NanoClaw](https://www.anchorterminal.com/compare/astrbot-vs-nanoclaw.md)\n- [AstrBot vs Dots](https://www.anchorterminal.com/compare/astrbot-vs-openai-dots.md)\n- [AstrBot vs OpenClaw](https://www.anchorterminal.com/compare/astrbot-vs-openclaw.md)\n- [AstrBot vs OpenDuet](https://www.anchorterminal.com/compare/astrbot-vs-openduet.md)\n- [AstrBot vs PicoClaw](https://www.anchorterminal.com/compare/astrbot-vs-picoclaw.md)\n- [AstrBot vs Poke](https://www.anchorterminal.com/compare/astrbot-vs-poke.md)\n- [AstrBot vs QwenPaw](https://www.anchorterminal.com/compare/astrbot-vs-qwenpaw.md)\n- [AstrBot vs Tasker AI](https://www.anchorterminal.com/compare/astrbot-vs-tasker-ai.md)\n- [AstrBot vs Town](https://www.anchorterminal.com/compare/astrbot-vs-town.md)\n- [AstrBot vs ZeroClaw](https://www.anchorterminal.com/compare/astrbot-vs-zeroclaw.md)\n- [AstrBot vs Zo Computer](https://www.anchorterminal.com/compare/astrbot-vs-zo-computer.md)\n- [Atticus vs DeepTutor](https://www.anchorterminal.com/compare/atticus-vs-deeptutor.md)\n- [Boski vs DeepTutor](https://www.anchorterminal.com/compare/boski-vs-deeptutor.md)\n- [Caddy vs DeepTutor](https://www.anchorterminal.com/compare/caddy-app-vs-deeptutor.md)\n- [Claude Duet vs DeepTutor](https://www.anchorterminal.com/compare/claude-duet-vs-deeptutor.md)\n- [CowAgent vs DeepTutor](https://www.anchorterminal.com/compare/cowagent-vs-deeptutor.md)\n- [DeepTutor vs Del](https://www.anchorterminal.com/compare/deeptutor-vs-del.md)\n- [DeepTutor vs folk](https://www.anchorterminal.com/compare/deeptutor-vs-folk-nozomio.md)\n- [DeepTutor vs GAIA](https://www.anchorterminal.com/compare/deeptutor-vs-gaia.md)\n- [DeepTutor vs Gemini Spark](https://www.anchorterminal.com/compare/deeptutor-vs-gemini-spark.md)\n- [DeepTutor vs Grok Bot](https://www.anchorterminal.com/compare/deeptutor-vs-grok-bot.md)\n- [DeepTutor vs Hark Pro](https://www.anchorterminal.com/compare/deeptutor-vs-hark-pro.md)\n- [DeepTutor vs Haven](https://www.anchorterminal.com/compare/deeptutor-vs-haven.md)\n- [DeepTutor vs Hermes Agent](https://www.anchorterminal.com/compare/deeptutor-vs-hermes-agent.md)\n- [DeepTutor vs HireAlpha](https://www.anchorterminal.com/compare/deeptutor-vs-hirealpha.md)\n- [DeepTutor vs Instinct](https://www.anchorterminal.com/compare/deeptutor-vs-instinct.md)\n- [DeepTutor vs IronClaw](https://www.anchorterminal.com/compare/deeptutor-vs-ironclaw.md)\n- [DeepTutor vs LearnHarness](https://www.anchorterminal.com/compare/deeptutor-vs-learnharness.md)\n- [DeepTutor vs Leon](https://www.anchorterminal.com/compare/deeptutor-vs-leon.md)\n- [DeepTutor vs Lindy](https://www.anchorterminal.com/compare/deeptutor-vs-lindy.md)\n- [DeepTutor vs Lobby](https://www.anchorterminal.com/compare/deeptutor-vs-lobby-os.md)\n- [DeepTutor vs nanobot](https://www.anchorterminal.com/compare/deeptutor-vs-nanobot.md)\n- [DeepTutor vs NanoClaw](https://www.anchorterminal.com/compare/deeptutor-vs-nanoclaw.md)\n- [DeepTutor vs Natura tinyNature](https://www.anchorterminal.com/compare/deeptutor-vs-natura.md)\n- [DeepTutor vs Dots](https://www.anchorterminal.com/compare/deeptutor-vs-openai-dots.md)\n- [DeepTutor vs OpenClaw](https://www.anchorterminal.com/compare/deeptutor-vs-openclaw.md)\n- [DeepTutor vs OpenDuet](https://www.anchorterminal.com/compare/deeptutor-vs-openduet.md)\n- [DeepTutor vs OpenInstinct](https://www.anchorterminal.com/compare/deeptutor-vs-openinstinct.md)\n- [DeepTutor vs Orbits](https://www.anchorterminal.com/compare/deeptutor-vs-orbits.md)\n- [DeepTutor vs Orchid](https://www.anchorterminal.com/compare/deeptutor-vs-orchid-ai.md)\n- [DeepTutor vs Pally](https://www.anchorterminal.com/compare/deeptutor-vs-pally.md)\n- [DeepTutor vs PicoClaw](https://www.anchorterminal.com/compare/deeptutor-vs-picoclaw.md)\n- [DeepTutor vs Poke](https://www.anchorterminal.com/compare/deeptutor-vs-poke.md)\n- [DeepTutor vs QwenPaw](https://www.anchorterminal.com/compare/deeptutor-vs-qwenpaw.md)\n- [DeepTutor vs szn](https://www.anchorterminal.com/compare/deeptutor-vs-szn.md)\n- [DeepTutor vs Tab](https://www.anchorterminal.com/compare/deeptutor-vs-tab-bot.md)\n- [DeepTutor vs Talorys](https://www.anchorterminal.com/compare/deeptutor-vs-talorys.md)\n- [DeepTutor vs Tasker AI](https://www.anchorterminal.com/compare/deeptutor-vs-tasker-ai.md)\n- [DeepTutor vs Tomo](https://www.anchorterminal.com/compare/deeptutor-vs-tomo.md)\n- [DeepTutor vs Town](https://www.anchorterminal.com/compare/deeptutor-vs-town.md)\n- [DeepTutor vs Wajo (Fo)](https://www.anchorterminal.com/compare/deeptutor-vs-wajo.md)\n- [DeepTutor vs Zapia](https://www.anchorterminal.com/compare/deeptutor-vs-zapia.md)\n- [DeepTutor vs ZeroClaw](https://www.anchorterminal.com/compare/deeptutor-vs-zeroclaw.md)\n- [DeepTutor vs Zo Computer](https://www.anchorterminal.com/compare/deeptutor-vs-zo-computer.md)\n- [AstrBot vs Atticus](https://www.anchorterminal.com/compare/astrbot-vs-atticus.md)\n- [AstrBot vs LearnHarness](https://www.anchorterminal.com/compare/astrbot-vs-learnharness.md)\n- [AstrBot vs Talorys](https://www.anchorterminal.com/compare/astrbot-vs-talorys.md)\n- [AI Job Search vs DeepTutor](https://www.anchorterminal.com/compare/ai-job-search-vs-deeptutor.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-31",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "AstrBot vs DeepTutor",
        "url": ""
      }
    ],
    "description": "DeepTutor scores 62.7 (B) to AstrBot's 59 (C) for assistants reached by message. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "AstrBot C 59",
      "DeepTutor B 62.7",
      "scores"
    ],
    "h1": "AstrBot vs DeepTutor",
    "image": "https://www.anchorterminal.com/assets/og/compare-astrbot-vs-deeptutor.png",
    "path": "/compare/astrbot-vs-deeptutor",
    "published": "2026-10-01",
    "section": "tools",
    "title": "AstrBot vs DeepTutor for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-30",
    "url": "https://www.anchorterminal.com/compare/astrbot-vs-deeptutor"
  },
  "tokens": {
    "markdown": 3800,
    "slim": 630
  },
  "version": 1
}
