{
  "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": 58.8,
        "grade": "C",
        "agentReady": false,
        "rank": 584,
        "ranked": true,
        "rankOf": 986,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 54,
          "maintenance": 81,
          "payments": 60,
          "reliability": 81,
          "schema": 62,
          "security": 44,
          "transparency": 40
        },
        "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.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.8
          }
        ],
        "editorialScores": {
          "ergonomics": 54,
          "maintenance": 81,
          "payments": 60,
          "reliability": 81,
          "schema": 62,
          "security": 44,
          "transparency": 56
        },
        "provenanceScore": 23
      },
      "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": 23
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/astrbot.json"
    },
    "answer": "QwenPaw scores 62.2 (B) on agent readiness against AstrBot's 58.8 (C), and leads in 4 of 7 scored categories. AstrBot leads on reliability and maintenance \u0026 community.",
    "b": {
      "slug": "qwenpaw",
      "name": "QwenPaw",
      "vendor": "AgentScope",
      "vendorUrl": "https://qwenpaw.agentscope.io",
      "kind": "harness",
      "category": "personal-assistants",
      "summary": "Open-source personal assistant from the AgentScope team that the owner runs on their own machine or server. It answers on chat apps, runs scheduled and proactive tasks, manages a mailbox over IMAP and SMTP, and keeps memory as Markdown files.",
      "url": "https://www.anchorterminal.com/tools/qwenpaw",
      "markdownUrl": "https://www.anchorterminal.com/tools/qwenpaw.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/qwenpaw.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/qwenpaw.json",
      "repo": "https://github.com/agentscope-ai/QwenPaw",
      "license": "Apache-2.0",
      "transports": [
        "http",
        "stdio"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "qwenpaw"
        },
        {
          "registry": "oci",
          "name": "agentscope/qwenpaw"
        }
      ],
      "auth": "none",
      "authNotes": "No account. The Console and API bind to 127.0.0.1:8088 with login off by default. `QWENPAW_AUTH_ENABLED=true` adds one admin account with a salted SHA-256 password hash and a signed token valid for seven days, and requests from localhost skip it. Each channel takes its own bot credentials, and the mailbox takes an IMAP and SMTP authorisation code or app password.",
      "pricing": "free",
      "pricingNotes": "Free under Apache-2.0 with nothing to buy. Model usage is billed by whichever provider the owner configures, and local models through llama.cpp, Ollama or LM Studio need no key. The README describes a hosted deployment on AgentScope Platform as free. That platform's pages are script-drawn and its terms and limits were not read (checked 2026-10-12).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, the docs source or the dependency list (checked 2026-10-12).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 35621,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-12"
      },
      "docsUrl": "https://qwenpaw.agentscope.io/docs",
      "capabilities": [
        "assistant.proactive",
        "assistant.messaging",
        "assistant.accounts",
        "assistant.memory",
        "assistant.self-hosted",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "local",
        "free",
        "python",
        "docker",
        "desktop-app",
        "mcp",
        "telemetry-default-on"
      ],
      "lastRelease": "2026-09-11",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.2,
        "grade": "B",
        "agentReady": false,
        "rank": 454,
        "ranked": true,
        "rankOf": 986,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 73,
          "payments": 60,
          "reliability": 70,
          "schema": 68,
          "security": 60,
          "transparency": 56
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-12"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-09-11. Version 2.2.1 began enforcing each MCP server's tool allowlist on the agent runtime path (commit f2a292d of 4 September, #7504). Before it, a tool the owner had disabled on an MCP client could still be invoked by the agent. Fixed and listed in the release notes, with no security advisory, -2. https://github.com/agentscope-ai/QwenPaw/pull/7504",
          "2026-09-03. Version 2.2.0 blocked shell line-continuation variants that bypassed sensitive-path protections (#7472). Fixed and listed in the release notes, with no security advisory, -1. https://github.com/agentscope-ai/QwenPaw/blob/main/website/public/release-notes/v2.2.0.md"
        ],
        "verdict": "Mail tools ask for approval by default, automatic mail handling may not delete permanently, and the security docs list what each sandbox backend fails to enforce. Usage data is sent by default, the default approval level passes every tool call no rule flags, and no privacy policy or security advisory is published.",
        "bestFor": "One person who wants an assistant on Chinese and Western chat apps with scheduled digests, a consumer mailbox and file-based memory, on their own machine and with a model of their choice.",
        "strengths": [
          "New mail driver cards default to the `ask` policy, and automatic mail handling may not call `delete_message` or write to unknown recipients",
          "Kernel sandbox on macOS, Linux and Windows, with a documented list of constraints each backend does not enforce",
          "Model keys, mail credentials and environment secrets are encrypted with a master key held in the OS keychain or a 0600 file",
          "Memory is plain Markdown in the agent workspace that the owner can read, edit and remove",
          "Four stable releases in the 90 days to 12 October 2026, each with dated release notes"
        ],
        "weaknesses": [
          "Usage data is on by default, `qwenpaw init --defaults` accepts it without a prompt, and the opt-out variable is absent from the README and docs",
          "The default approval level AUTO asks only for tool calls a guard rule flags, and `/proactive` skips approval prompts entirely",
          "Channel direct-message and group policies default to `open`, and Console login is off by default",
          "No privacy policy, terms of service or security.txt on qwenpaw.agentscope.io, and no published GitHub security advisory",
          "Inside containers the sandbox falls back to `mode=none`, which the docs say enforces no isolation",
          "671 open issues and 381 open pull requests on 12 October 2026, and the Tests workflow on main had not completed a run since 30 September"
        ],
        "agentNotes": [
          "Set `QWENPAW_TELEMETRY_DISABLED=true` before `qwenpaw init --defaults` or `qwenpaw app`. Both send usage data without asking",
          "Set `approval_level` to `STRICT` or `SMART` in `agent.json`. The default `AUTO` runs every tool call no guard rule flags",
          "Set `dm_policy` and `group_policy` to `allowlist` with `allow_from` on each channel. Both default to `open`",
          "Set `QWENPAW_AUTH_ENABLED=true` before binding beyond 127.0.0.1. Requests from localhost skip login even then",
          "Keep mail tools on `ask` for `send_message`, `delete_message` and `delete_thread`, and turn on Mail Access Control with automatic handling"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.2
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 73,
          "payments": 60,
          "reliability": 70,
          "schema": 68,
          "security": 60,
          "transparency": 58
        },
        "provenanceScore": 53
      },
      "connect": {
        "install": "pip install qwenpaw \u0026\u0026 qwenpaw init --defaults \u0026\u0026 qwenpaw app   # Python 3.11 to 3.13; or: docker pull agentscope/qwenpaw:latest",
        "http": "curl -X POST http://localhost:8088/api/console/chat -H \"Content-Type: application/json\" -H \"X-Agent-Id: default\" -d '{\"input\": [...]}'"
      },
      "letme": {
        "capability": "https://letme.dev/assistant.proactive",
        "tool": "https://letme.dev/qwenpaw"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Qwenpaw PRIVATE LIMITED",
        "domain": "agentscope.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://qwenpaw.agentscope.io/release-notes",
        "securityTxt": "none",
        "checked": "2026-10-12",
        "notes": [
          "The site footer in the repository's website source reads © 2026 Qwenpaw PRIVATE LIMITED. The LICENSE file names The QwenPaw Authors, and the README credits the AgentScope team.",
          "SECURITY.md sends vulnerability reports to the Alibaba Security Response Centre. We found no other first-hand statement of ownership by Alibaba.",
          "The site links a Usage Policy dated 26 August 2026 and no terms of service or privacy policy, so both links are left out and the Apache-2.0 licence stands in.",
          "qwenpaw.agentscope.io answered 404 for robots.txt, llms.txt and /.well-known/security.txt on 12 October 2026.",
          "No hosted endpoint is graded. A self-hosted instance answers on its owner's own host. We did not look up the domain's registration date."
        ],
        "score": 53
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/qwenpaw.json"
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "AstrBotDevs",
        "b": "AgentScope",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "HTTP, stdio",
        "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-09-11",
        "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": "36k stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "QwenPaw scores 62.2 (B) on agent readiness against AstrBot's 58.8 (C), and leads in 4 of 7 scored categories. AstrBot leads on reliability and maintenance \u0026 community.",
        "question": "Which is better for AI agents, AstrBot or QwenPaw?"
      },
      {
        "answer": "Yes. AstrBot is open source (AGPL-3.0-or-later). QwenPaw is open source (Apache-2.0).",
        "question": "Are AstrBot and QwenPaw open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 81 against 70",
          "Maintenance \u0026 community, 81 against 73"
        ],
        "also": [
          "Free to start without a card"
        ],
        "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, 68 against 62",
          "Agent ergonomics, 67 against 54",
          "Security \u0026 auth, 60 against 44",
          "Transparency \u0026 trust, 56 against 40"
        ],
        "also": [
          "No key needed to call it",
          "Runs on your own machine"
        ],
        "goodFor": "One person who wants an assistant on Chinese and Western chat apps with scheduled digests, a consumer mailbox and file-based memory, on their own machine and with a model of their choice.",
        "slug": "qwenpaw",
        "watchFor": "Usage data is on by default, `qwenpaw init --defaults` accepts it without a prompt, and the opt-out variable is absent from the README and docs"
      }
    ],
    "job": {
      "capability": "assistant.proactive",
      "name": "Assistant proactive"
    },
    "others": [
      {
        "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-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-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-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-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/cowagent-vs-qwenpaw.json",
        "title": "CowAgent vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/cowagent-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gaia-vs-qwenpaw.json",
        "title": "GAIA vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/gaia-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-qwenpaw.json",
        "title": "Gemini Spark vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grok-bot-vs-qwenpaw.json",
        "title": "Grok Bot vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/grok-bot-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/haven-vs-qwenpaw.json",
        "title": "Haven vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/haven-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hermes-agent-vs-qwenpaw.json",
        "title": "Hermes Agent vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/instinct-vs-qwenpaw.json",
        "title": "Instinct vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/instinct-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ironclaw-vs-qwenpaw.json",
        "title": "IronClaw vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/ironclaw-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/leon-vs-qwenpaw.json",
        "title": "Leon vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/leon-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lindy-vs-qwenpaw.json",
        "title": "Lindy vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/lindy-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nanobot-vs-qwenpaw.json",
        "title": "nanobot vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/nanobot-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nanoclaw-vs-qwenpaw.json",
        "title": "NanoClaw vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/nanoclaw-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-dots-vs-qwenpaw.json",
        "title": "Dots vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/openai-dots-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openclaw-vs-qwenpaw.json",
        "title": "OpenClaw vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/openclaw-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/picoclaw-vs-qwenpaw.json",
        "title": "PicoClaw vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/picoclaw-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/poke-vs-qwenpaw.json",
        "title": "Poke vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/poke-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/qwenpaw-vs-zeroclaw.json",
        "title": "QwenPaw vs ZeroClaw",
        "url": "https://www.anchorterminal.com/compare/qwenpaw-vs-zeroclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/qwenpaw-vs-zo-computer.json",
        "title": "QwenPaw vs Zo Computer",
        "url": "https://www.anchorterminal.com/compare/qwenpaw-vs-zo-computer"
      }
    ],
    "scores": [
      {
        "astrbot": 81,
        "by": 11,
        "edge": "astrbot",
        "key": "reliability",
        "name": "Reliability",
        "qwenpaw": 70,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "astrbot": 62,
        "by": 6,
        "edge": "qwenpaw",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "qwenpaw": 68,
        "weight": 13
      },
      {
        "astrbot": 54,
        "by": 13,
        "edge": "qwenpaw",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "qwenpaw": 67,
        "weight": 13
      },
      {
        "astrbot": 44,
        "by": 16,
        "edge": "qwenpaw",
        "key": "security",
        "name": "Security \u0026 auth",
        "qwenpaw": 60,
        "weight": 14
      },
      {
        "astrbot": 60,
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "qwenpaw": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "astrbot": 81,
        "by": 8,
        "edge": "astrbot",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "qwenpaw": 73,
        "weight": 7
      },
      {
        "astrbot": 40,
        "by": 16,
        "edge": "qwenpaw",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "qwenpaw": 56,
        "weight": 7
      }
    ],
    "summary": "QwenPaw scores 62.2 (B) on agent readiness against AstrBot's 58.8 (C), and leads in 4 of 7 scored categories. AstrBot leads on reliability and maintenance \u0026 community. Both do assistant proactive.",
    "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.",
      "qwenpaw": "Mail tools ask for approval by default, automatic mail handling may not delete permanently, and the security docs list what each sandbox backend fails to enforce. Usage data is sent by default, the default approval level passes every tool call no rule flags, and no privacy policy or security advisory is published."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/astrbot-vs-qwenpaw",
    "json": "https://www.anchorterminal.com/compare/astrbot-vs-qwenpaw.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/astrbot-vs-qwenpaw.md",
    "slim": "https://www.anchorterminal.com/compare/astrbot-vs-qwenpaw.min.md"
  },
  "markdown": "QwenPaw scores 62.2 (B) on agent readiness against AstrBot's 58.8 (C), and leads in 4 of 7 scored categories. AstrBot leads on reliability and maintenance \u0026 community. Both do assistant proactive.\n\n- AstrBot: grade C, 58.8/100, rank #584 of 986. Markdown https://www.anchorterminal.com/tools/astrbot.md · JSON https://www.anchorterminal.com/api/v1/tools/astrbot.json\n- QwenPaw: grade B, 62.2/100, rank #454 of 986. Markdown https://www.anchorterminal.com/tools/qwenpaw.md · JSON https://www.anchorterminal.com/api/v1/tools/qwenpaw.json\n- Best AI personal assistants that act for one person: https://www.anchorterminal.com/best/personal-assistants/index.md\n- All 190 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\nAhead on:\n- Reliability, 81 against 70\n- Maintenance \u0026 community, 81 against 73\n\nAlso in its favour:\n- Free to start without a card\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### QwenPaw (B)\n\nGood for: One person who wants an assistant on Chinese and Western chat apps with scheduled digests, a consumer mailbox and file-based memory, on their own machine and with a model of their choice.\n\nAhead on:\n- Schema \u0026 documentation, 68 against 62\n- Agent ergonomics, 67 against 54\n- Security \u0026 auth, 60 against 44\n- Transparency \u0026 trust, 56 against 40\n\nAlso in its favour:\n- No key needed to call it\n- Runs on your own machine\n\nWatch for: Usage data is on by default, `qwenpaw init --defaults` accepts it without a prompt, and the opt-out variable is absent from the README and docs\n\n\n## Score by category\n\n| Category | Weight | AstrBot | QwenPaw | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 81 | 70 | AstrBot +11 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 62 | 68 | QwenPaw +6 |\n| Agent ergonomics | 13% (16.2 this run) | 54 | 67 | QwenPaw +13 |\n| Security \u0026 auth | 14% (17.5 this run) | 44 | 60 | QwenPaw +16 |\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 | 73 | AstrBot +8 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 40 | 56 | QwenPaw +16 |\n| Negative events | ≤15 | -2 | -3 | |\n| **Total** | | **58.8 · C** | **62.2 · B** | |\n\n## Facts side by side\n\n| Fact | AstrBot | QwenPaw |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | AstrBotDevs | AgentScope |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  | HTTP, stdio |\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-09-11 |\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 | 36k 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**QwenPaw.** Mail tools ask for approval by default, automatic mail handling may not delete permanently, and the security docs list what each sandbox backend fails to enforce. Usage data is sent by default, the default approval level passes every tool call no rule flags, and no privacy policy or security advisory is published.\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### QwenPaw\n\n1. Set `QWENPAW_TELEMETRY_DISABLED=true` before `qwenpaw init --defaults` or `qwenpaw app`. Both send usage data without asking\n2. Set `approval_level` to `STRICT` or `SMART` in `agent.json`. The default `AUTO` runs every tool call no guard rule flags\n3. Set `dm_policy` and `group_policy` to `allowlist` with `allow_from` on each channel. Both default to `open`\n4. Set `QWENPAW_AUTH_ENABLED=true` before binding beyond 127.0.0.1. Requests from localhost skip login even then\n5. Keep mail tools on `ask` for `send_message`, `delete_message` and `delete_thread`, and turn on Mail Access Control with automatic handling\n\n## Questions\n\n### Which is better for AI agents, AstrBot or QwenPaw?\n\nQwenPaw scores 62.2 (B) on agent readiness against AstrBot's 58.8 (C), and leads in 4 of 7 scored categories. AstrBot leads on reliability and maintenance \u0026 community.\n\n### Are AstrBot and QwenPaw open source?\n\nYes. AstrBot is open source (AGPL-3.0-or-later). QwenPaw is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/astrbot-vs-qwenpaw.json, and with the fewest tokens: https://www.anchorterminal.com/compare/astrbot-vs-qwenpaw.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"astrbot\", \"b\": \"qwenpaw\"}`. From a terminal: `anchor compare astrbot qwenpaw`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/astrbot.json and https://www.anchorterminal.com/api/v1/tools/qwenpaw.json\n\n## Other comparisons with AstrBot or QwenPaw\n\n- [AstrBot vs CowAgent](https://www.anchorterminal.com/compare/astrbot-vs-cowagent.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 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 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 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- [CowAgent vs QwenPaw](https://www.anchorterminal.com/compare/cowagent-vs-qwenpaw.md)\n- [GAIA vs QwenPaw](https://www.anchorterminal.com/compare/gaia-vs-qwenpaw.md)\n- [Gemini Spark vs QwenPaw](https://www.anchorterminal.com/compare/gemini-spark-vs-qwenpaw.md)\n- [Grok Bot vs QwenPaw](https://www.anchorterminal.com/compare/grok-bot-vs-qwenpaw.md)\n- [Haven vs QwenPaw](https://www.anchorterminal.com/compare/haven-vs-qwenpaw.md)\n- [Hermes Agent vs QwenPaw](https://www.anchorterminal.com/compare/hermes-agent-vs-qwenpaw.md)\n- [Instinct vs QwenPaw](https://www.anchorterminal.com/compare/instinct-vs-qwenpaw.md)\n- [IronClaw vs QwenPaw](https://www.anchorterminal.com/compare/ironclaw-vs-qwenpaw.md)\n- [Leon vs QwenPaw](https://www.anchorterminal.com/compare/leon-vs-qwenpaw.md)\n- [Lindy vs QwenPaw](https://www.anchorterminal.com/compare/lindy-vs-qwenpaw.md)\n- [nanobot vs QwenPaw](https://www.anchorterminal.com/compare/nanobot-vs-qwenpaw.md)\n- [NanoClaw vs QwenPaw](https://www.anchorterminal.com/compare/nanoclaw-vs-qwenpaw.md)\n- [Dots vs QwenPaw](https://www.anchorterminal.com/compare/openai-dots-vs-qwenpaw.md)\n- [OpenClaw vs QwenPaw](https://www.anchorterminal.com/compare/openclaw-vs-qwenpaw.md)\n- [PicoClaw vs QwenPaw](https://www.anchorterminal.com/compare/picoclaw-vs-qwenpaw.md)\n- [Poke vs QwenPaw](https://www.anchorterminal.com/compare/poke-vs-qwenpaw.md)\n- [QwenPaw vs ZeroClaw](https://www.anchorterminal.com/compare/qwenpaw-vs-zeroclaw.md)\n- [QwenPaw vs Zo Computer](https://www.anchorterminal.com/compare/qwenpaw-vs-zo-computer.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-12",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "AstrBot vs QwenPaw",
        "url": ""
      }
    ],
    "description": "QwenPaw scores 62.2 (B) to AstrBot's 58.8 (C) for assistant proactive. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "AstrBot C 58.8",
      "QwenPaw B 62.2",
      "scores"
    ],
    "h1": "AstrBot vs QwenPaw",
    "image": "https://www.anchorterminal.com/assets/og/compare-astrbot-vs-qwenpaw.png",
    "path": "/compare/astrbot-vs-qwenpaw",
    "published": "2026-10-01",
    "section": "tools",
    "title": "AstrBot vs QwenPaw for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-12",
    "url": "https://www.anchorterminal.com/compare/astrbot-vs-qwenpaw"
  },
  "tokens": {
    "markdown": 2600,
    "slim": 630
  },
  "version": 1
}
