{
  "data": {
    "a": {
      "slug": "nanobot",
      "name": "nanobot",
      "vendor": "HKUDS",
      "vendorUrl": "https://nanobot.wiki",
      "kind": "harness",
      "category": "personal-assistants",
      "summary": "nanobot is an open-source, self-hosted personal AI agent written in Python by HKUDS. It runs as a gateway on the owner's machine and answers in a web UI, a terminal and chat apps, with tools, memory and scheduled automations.",
      "url": "https://www.anchorterminal.com/tools/nanobot",
      "markdownUrl": "https://www.anchorterminal.com/tools/nanobot.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/nanobot.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nanobot.json",
      "repo": "https://github.com/HKUDS/nanobot",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "nanobot-ai"
        }
      ],
      "auth": "none",
      "authNotes": "No account with the project. The owner supplies model provider keys or an OAuth sign-in, and bot tokens or mailbox passwords for each channel, in `~/.nanobot/config.json`. The WebUI on localhost needs no password, and binding to all interfaces requires a token.",
      "pricing": "free",
      "pricingNotes": "Free under the MIT licence, with nothing to buy from the project. The owner pays the model provider, or nothing with a local model. The optional Render deployment needs a paid Render service.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source (checked 2026-10-12).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 49000,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-12"
      },
      "docsUrl": "https://nanobot.wiki/docs/latest/getting-started/nanobot-overview",
      "llmsTxt": "https://nanobot.wiki/llms.txt",
      "capabilities": [
        "assistant.proactive",
        "assistant.messaging",
        "assistant.memory",
        "assistant.self-hosted",
        "assistant.accounts",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "local",
        "free",
        "python",
        "mit",
        "llms-txt",
        "docker",
        "alpha"
      ],
      "lastRelease": "2026-09-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.4,
        "grade": "B",
        "agentReady": false,
        "rank": 446,
        "ranked": true,
        "rankOf": 986,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 82,
          "payments": 60,
          "reliability": 70,
          "schema": 77,
          "security": 63,
          "transparency": 48
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-12"
        },
        "negative": -6,
        "negativeNotes": [
          "2026-09-02. GHSA-vc5v-6vwm-wf9m (critical, 9.3, no CVE). Web fetch did not block internal addresses, so cloud metadata and internal services could be read without authentication in versions before 0.3.0. Fixed in 0.3.0 of 25 July and published, -2. https://github.com/HKUDS/nanobot/security/advisories/GHSA-vc5v-6vwm-wf9m",
          "2026-03-27. GHSA-4gmr-2vc8-7qh3 (CVE-2026-33654, high). A spoofed email could inject instructions through email polling with no user action, up to command execution, in 0.1.4.post5 and earlier. Fixed in 0.1.4.post6 and published, more than six months ago, -2. https://github.com/HKUDS/nanobot/security/advisories/GHSA-4gmr-2vc8-7qh3",
          "2026-03-11. GHSA-g6cf-xjwr-pm77 (CVE-2026-31977, critical, 9.0). A sender ID containing `|` passed the `allowFrom` check in versions before 0.1.4.post4. Fixed and published, more than six months ago, -1. https://github.com/HKUDS/nanobot/security/advisories/GHSA-g6cf-xjwr-pm77",
          "2026-04-14 and 2026-05-24. GHSA-v5j3-4q66-58cf (CVE-2026-35589, high, 8.0), cross-site WebSocket hijacking of the WhatsApp bridge, fixed in 0.1.5, and GHSA-3f63-vcp3-hvqr (CVE-2026-48716, high, 8.7), file write through a WhatsApp document name. Both fixed and published, -1 together. https://github.com/HKUDS/nanobot/security/advisories"
        ],
        "verdict": "nanobot runs on the owner's machine under the MIT licence, with no telemetry found in its source and memory kept as files the owner can read and restore. No per-action approval step was found, and the shell sandbox and workspace restriction are off by default. Five security advisories were published between March and September 2026, all with fixes.",
        "bestFor": "A technical owner who wants an assistant on their own machine across many chat apps, with file-based memory and a free choice of model.",
        "strengths": [
          "MIT licence, runs on the owner's machine, and no telemetry code was found in the source at v0.3.5",
          "Long-term memory is plain files (`USER.md`, `SOUL.md`, `memory/MEMORY.md`) versioned with Git, with `/dream-log` and `/dream-restore` to inspect and roll back",
          "Chat channels deny unknown senders by default since v0.1.4.post4, with pairing codes the owner approves",
          "Email requires SPF and DKIM results from a named receiving service since v0.3.5, and mailbox access stays off until `consentGranted` is set",
          "Optional `bwrap` (Linux) and `seatbelt` (macOS) sandboxes for shell commands, and an SSRF guard on web fetches and HTTP MCP connections"
        ],
        "weaknesses": [
          "No per-action approval was found in the docs or source. The agent sends messages, runs shell commands and edits files without asking",
          "`tools.restrictToWorkspace` defaults to false and `tools.exec.sandbox` to empty. Neither sandbox restricts network access, and Windows has none",
          "Five advisories published from 11 March to 2 September 2026, two rated critical, among them an allowlist bypass and unauthenticated SSRF in web fetch",
          "SECURITY.md lists plain-text API keys in `config.json`, no rate limiting and limited security event logging as known limitations",
          "Version 0.3.5 with an Alpha classifier, 214 open issues and 614 open pull requests on 12 October 2026"
        ],
        "agentNotes": [
          "Set `tools.restrictToWorkspace` to true and `tools.exec.sandbox` to `bwrap` or `seatbelt` before giving it real accounts. Both are off by default",
          "Run 0.3.0 or later. Earlier versions carry the published SSRF flaw in web fetch (GHSA-vc5v-6vwm-wf9m)",
          "Keep `allowFrom` narrow on every channel and never set `[\"*\"]` on Email, which has no pairing",
          "Write secrets as `${VAR}` references in `~/.nanobot/config.json`. Plain values are stored in clear text",
          "Use `nanobot -m \"...\"` for a one-shot run, and keep `nanobot gateway` running for channels, schedules and heartbeat"
        ],
        "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.4
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 82,
          "payments": 60,
          "reliability": 70,
          "schema": 77,
          "security": 63,
          "transparency": 69
        },
        "provenanceScore": 27
      },
      "connect": {
        "install": "python -m pip install nanobot-ai   # or: uv tool install nanobot-ai   # then: nanobot webui",
        "headless": {
          "command": "nanobot -m \"$TASK\""
        }
      },
      "letme": {
        "capability": "https://letme.dev/assistant.proactive",
        "tool": "https://letme.dev/nanobot"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "",
        "domain": "nanobot.wiki",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/HKUDS/nanobot/releases",
        "securityTxt": "none",
        "checked": "2026-10-12",
        "notes": [
          "No legal entity is named. The repository belongs to the GitHub organisation HKUDS, which a published advisory title calls the Hong Kong University Data Intelligence Lab. pyproject.toml names Xubin Ren and the nanobot contributors as authors.",
          "nanobot.wiki has no terms or privacy page linked from its home page or llms.txt, and `/.well-known/security.txt` answered with the site's not-found page on 12 October 2026.",
          "SECURITY.md in the repository asks for reports through a private GitHub advisory or by email and aims to respond within 48 hours.",
          "There is no hosted endpoint. A gateway answers on its owner's own host."
        ],
        "score": 27
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/nanobot.json"
    },
    "answer": "nanobot and QwenPaw score within a point of each other on agent readiness, 62.4 (B) and 62.2 (B). QwenPaw leads on transparency \u0026 trust.",
    "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": "HKUDS",
        "b": "AgentScope",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-15",
        "b": "2026-09-11",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "49k stars",
        "b": "36k stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "nanobot and QwenPaw score within a point of each other on agent readiness, 62.4 (B) and 62.2 (B). QwenPaw leads on transparency \u0026 trust.",
        "question": "Which is better for AI agents, nanobot or QwenPaw?"
      },
      {
        "answer": "Yes. nanobot is open source (MIT). QwenPaw is open source (Apache-2.0).",
        "question": "Are nanobot and QwenPaw open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 77 against 68",
          "Agent ergonomics, 74 against 67",
          "Maintenance \u0026 community, 82 against 73"
        ],
        "also": null,
        "goodFor": "A technical owner who wants an assistant on their own machine across many chat apps, with file-based memory and a free choice of model.",
        "slug": "nanobot",
        "watchFor": "No per-action approval was found in the docs or source. The agent sends messages, runs shell commands and edits files without asking"
      },
      {
        "aheadOn": [
          "Transparency \u0026 trust, 56 against 48"
        ],
        "also": [
          "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-nanobot.json",
        "title": "AstrBot vs nanobot",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-nanobot"
      },
      {
        "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/cowagent-vs-nanobot.json",
        "title": "CowAgent vs nanobot",
        "url": "https://www.anchorterminal.com/compare/cowagent-vs-nanobot"
      },
      {
        "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-nanobot.json",
        "title": "GAIA vs nanobot",
        "url": "https://www.anchorterminal.com/compare/gaia-vs-nanobot"
      },
      {
        "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-nanobot.json",
        "title": "Gemini Spark vs nanobot",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-nanobot"
      },
      {
        "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-nanobot.json",
        "title": "Grok Bot vs nanobot",
        "url": "https://www.anchorterminal.com/compare/grok-bot-vs-nanobot"
      },
      {
        "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-nanobot.json",
        "title": "Haven vs nanobot",
        "url": "https://www.anchorterminal.com/compare/haven-vs-nanobot"
      },
      {
        "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-nanobot.json",
        "title": "Hermes Agent vs nanobot",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-nanobot"
      },
      {
        "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-nanobot.json",
        "title": "Instinct vs nanobot",
        "url": "https://www.anchorterminal.com/compare/instinct-vs-nanobot"
      },
      {
        "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-nanobot.json",
        "title": "IronClaw vs nanobot",
        "url": "https://www.anchorterminal.com/compare/ironclaw-vs-nanobot"
      },
      {
        "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-nanobot.json",
        "title": "Leon vs nanobot",
        "url": "https://www.anchorterminal.com/compare/leon-vs-nanobot"
      },
      {
        "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-nanobot.json",
        "title": "Lindy vs nanobot",
        "url": "https://www.anchorterminal.com/compare/lindy-vs-nanobot"
      },
      {
        "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-nanoclaw.json",
        "title": "nanobot vs NanoClaw",
        "url": "https://www.anchorterminal.com/compare/nanobot-vs-nanoclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nanobot-vs-openai-dots.json",
        "title": "nanobot vs Dots",
        "url": "https://www.anchorterminal.com/compare/nanobot-vs-openai-dots"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nanobot-vs-openclaw.json",
        "title": "nanobot vs OpenClaw",
        "url": "https://www.anchorterminal.com/compare/nanobot-vs-openclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nanobot-vs-picoclaw.json",
        "title": "nanobot vs PicoClaw",
        "url": "https://www.anchorterminal.com/compare/nanobot-vs-picoclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nanobot-vs-poke.json",
        "title": "nanobot vs Poke",
        "url": "https://www.anchorterminal.com/compare/nanobot-vs-poke"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nanobot-vs-zeroclaw.json",
        "title": "nanobot vs ZeroClaw",
        "url": "https://www.anchorterminal.com/compare/nanobot-vs-zeroclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nanobot-vs-zo-computer.json",
        "title": "nanobot vs Zo Computer",
        "url": "https://www.anchorterminal.com/compare/nanobot-vs-zo-computer"
      },
      {
        "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": [
      {
        "by": 0,
        "edge": "",
        "key": "reliability",
        "name": "Reliability",
        "nanobot": 70,
        "qwenpaw": 70,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "edge": "nanobot",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "nanobot": 77,
        "qwenpaw": 68,
        "weight": 13
      },
      {
        "by": 7,
        "edge": "nanobot",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "nanobot": 74,
        "qwenpaw": 67,
        "weight": 13
      },
      {
        "by": 3,
        "edge": "nanobot",
        "key": "security",
        "name": "Security \u0026 auth",
        "nanobot": 63,
        "qwenpaw": 60,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "nanobot": 60,
        "qwenpaw": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "edge": "nanobot",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "nanobot": 82,
        "qwenpaw": 73,
        "weight": 7
      },
      {
        "by": 8,
        "edge": "qwenpaw",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "nanobot": 48,
        "qwenpaw": 56,
        "weight": 7
      }
    ],
    "summary": "nanobot and QwenPaw score within a point of each other on agent readiness, 62.4 (B) and 62.2 (B). QwenPaw leads on transparency \u0026 trust. Both do assistant proactive.",
    "verdicts": {
      "nanobot": "nanobot runs on the owner's machine under the MIT licence, with no telemetry found in its source and memory kept as files the owner can read and restore. No per-action approval step was found, and the shell sandbox and workspace restriction are off by default. Five security advisories were published between March and September 2026, all with fixes.",
      "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/nanobot-vs-qwenpaw",
    "json": "https://www.anchorterminal.com/compare/nanobot-vs-qwenpaw.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/nanobot-vs-qwenpaw.md",
    "slim": "https://www.anchorterminal.com/compare/nanobot-vs-qwenpaw.min.md"
  },
  "markdown": "nanobot and QwenPaw score within a point of each other on agent readiness, 62.4 (B) and 62.2 (B). QwenPaw leads on transparency \u0026 trust. Both do assistant proactive.\n\n- nanobot: grade B, 62.4/100, rank #446 of 986. Markdown https://www.anchorterminal.com/tools/nanobot.md · JSON https://www.anchorterminal.com/api/v1/tools/nanobot.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### nanobot (B)\n\nGood for: A technical owner who wants an assistant on their own machine across many chat apps, with file-based memory and a free choice of model.\n\nAhead on:\n- Schema \u0026 documentation, 77 against 68\n- Agent ergonomics, 74 against 67\n- Maintenance \u0026 community, 82 against 73\n\nWatch for: No per-action approval was found in the docs or source. The agent sends messages, runs shell commands and edits files 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- Transparency \u0026 trust, 56 against 48\n\nAlso in its favour:\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 | nanobot | QwenPaw | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 70 | even |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 68 | nanobot +9 |\n| Agent ergonomics | 13% (16.2 this run) | 74 | 67 | nanobot +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 63 | 60 | nanobot +3 |\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) | 82 | 73 | nanobot +9 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 48 | 56 | QwenPaw +8 |\n| Negative events | ≤15 | -6 | -3 | |\n| **Total** | | **62.4 · B** | **62.2 · B** | |\n\n## Facts side by side\n\n| Fact | nanobot | QwenPaw |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | HKUDS | AgentScope |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  | HTTP, stdio |\n| Auth | None | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-09-15 | 2026-09-11 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | no document linked |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 49k stars | 36k stars |\n\n## Verdicts\n\n**nanobot.** nanobot runs on the owner's machine under the MIT licence, with no telemetry found in its source and memory kept as files the owner can read and restore. No per-action approval step was found, and the shell sandbox and workspace restriction are off by default. Five security advisories were published between March and September 2026, all with fixes.\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### nanobot\n\n1. Set `tools.restrictToWorkspace` to true and `tools.exec.sandbox` to `bwrap` or `seatbelt` before giving it real accounts. Both are off by default\n2. Run 0.3.0 or later. Earlier versions carry the published SSRF flaw in web fetch (GHSA-vc5v-6vwm-wf9m)\n3. Keep `allowFrom` narrow on every channel and never set `[\"*\"]` on Email, which has no pairing\n4. Write secrets as `${VAR}` references in `~/.nanobot/config.json`. Plain values are stored in clear text\n5. Use `nanobot -m \"...\"` for a one-shot run, and keep `nanobot gateway` running for channels, schedules and heartbeat\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, nanobot or QwenPaw?\n\nnanobot and QwenPaw score within a point of each other on agent readiness, 62.4 (B) and 62.2 (B). QwenPaw leads on transparency \u0026 trust.\n\n### Are nanobot and QwenPaw open source?\n\nYes. nanobot is open source (MIT). QwenPaw is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/nanobot-vs-qwenpaw.json, and with the fewest tokens: https://www.anchorterminal.com/compare/nanobot-vs-qwenpaw.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"nanobot\", \"b\": \"qwenpaw\"}`. From a terminal: `anchor compare nanobot qwenpaw`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/nanobot.json and https://www.anchorterminal.com/api/v1/tools/qwenpaw.json\n\n## Other comparisons with nanobot or QwenPaw\n\n- [AstrBot vs nanobot](https://www.anchorterminal.com/compare/astrbot-vs-nanobot.md)\n- [AstrBot vs QwenPaw](https://www.anchorterminal.com/compare/astrbot-vs-qwenpaw.md)\n- [CowAgent vs nanobot](https://www.anchorterminal.com/compare/cowagent-vs-nanobot.md)\n- [CowAgent vs QwenPaw](https://www.anchorterminal.com/compare/cowagent-vs-qwenpaw.md)\n- [GAIA vs nanobot](https://www.anchorterminal.com/compare/gaia-vs-nanobot.md)\n- [GAIA vs QwenPaw](https://www.anchorterminal.com/compare/gaia-vs-qwenpaw.md)\n- [Gemini Spark vs nanobot](https://www.anchorterminal.com/compare/gemini-spark-vs-nanobot.md)\n- [Gemini Spark vs QwenPaw](https://www.anchorterminal.com/compare/gemini-spark-vs-qwenpaw.md)\n- [Grok Bot vs nanobot](https://www.anchorterminal.com/compare/grok-bot-vs-nanobot.md)\n- [Grok Bot vs QwenPaw](https://www.anchorterminal.com/compare/grok-bot-vs-qwenpaw.md)\n- [Haven vs nanobot](https://www.anchorterminal.com/compare/haven-vs-nanobot.md)\n- [Haven vs QwenPaw](https://www.anchorterminal.com/compare/haven-vs-qwenpaw.md)\n- [Hermes Agent vs nanobot](https://www.anchorterminal.com/compare/hermes-agent-vs-nanobot.md)\n- [Hermes Agent vs QwenPaw](https://www.anchorterminal.com/compare/hermes-agent-vs-qwenpaw.md)\n- [Instinct vs nanobot](https://www.anchorterminal.com/compare/instinct-vs-nanobot.md)\n- [Instinct vs QwenPaw](https://www.anchorterminal.com/compare/instinct-vs-qwenpaw.md)\n- [IronClaw vs nanobot](https://www.anchorterminal.com/compare/ironclaw-vs-nanobot.md)\n- [IronClaw vs QwenPaw](https://www.anchorterminal.com/compare/ironclaw-vs-qwenpaw.md)\n- [Leon vs nanobot](https://www.anchorterminal.com/compare/leon-vs-nanobot.md)\n- [Leon vs QwenPaw](https://www.anchorterminal.com/compare/leon-vs-qwenpaw.md)\n- [Lindy vs nanobot](https://www.anchorterminal.com/compare/lindy-vs-nanobot.md)\n- [Lindy vs QwenPaw](https://www.anchorterminal.com/compare/lindy-vs-qwenpaw.md)\n- [nanobot vs NanoClaw](https://www.anchorterminal.com/compare/nanobot-vs-nanoclaw.md)\n- [nanobot vs Dots](https://www.anchorterminal.com/compare/nanobot-vs-openai-dots.md)\n- [nanobot vs OpenClaw](https://www.anchorterminal.com/compare/nanobot-vs-openclaw.md)\n- [nanobot vs PicoClaw](https://www.anchorterminal.com/compare/nanobot-vs-picoclaw.md)\n- [nanobot vs Poke](https://www.anchorterminal.com/compare/nanobot-vs-poke.md)\n- [nanobot vs ZeroClaw](https://www.anchorterminal.com/compare/nanobot-vs-zeroclaw.md)\n- [nanobot vs Zo Computer](https://www.anchorterminal.com/compare/nanobot-vs-zo-computer.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": "nanobot vs QwenPaw",
        "url": ""
      }
    ],
    "description": "nanobot and QwenPaw score within a point of each other for assistant proactive, 62.4 and 62.2 out of 100. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "nanobot B 62.4",
      "QwenPaw B 62.2",
      "scores"
    ],
    "h1": "nanobot vs QwenPaw",
    "image": "https://www.anchorterminal.com/assets/og/compare-nanobot-vs-qwenpaw.png",
    "path": "/compare/nanobot-vs-qwenpaw",
    "published": "2026-10-01",
    "section": "tools",
    "title": "nanobot vs QwenPaw for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-12",
    "url": "https://www.anchorterminal.com/compare/nanobot-vs-qwenpaw"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 480
  },
  "version": 1
}
