{
  "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": "Hermes Agent scores 67.9 (B) on agent readiness against AstrBot's 58.8 (C), and leads in 5 of 7 scored categories. AstrBot leads on reliability.",
    "b": {
      "slug": "hermes-agent",
      "name": "Hermes Agent",
      "vendor": "Nous Research",
      "vendorUrl": "https://hermes-agent.nousresearch.com",
      "kind": "harness",
      "category": "personal-assistants",
      "summary": "Open-source personal agent from Nous Research that the owner runs on a computer or server. It answers on messaging apps, keeps memory between sessions, runs scheduled jobs and connects to accounts, models and MCP servers the owner configures.",
      "url": "https://www.anchorterminal.com/tools/hermes-agent",
      "markdownUrl": "https://www.anchorterminal.com/tools/hermes-agent.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/hermes-agent.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/hermes-agent.json",
      "repo": "https://github.com/NousResearch/hermes-agent",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "oci",
          "name": "nousresearch/hermes-agent"
        }
      ],
      "auth": "none",
      "authNotes": "No account of its own. Model and channel keys go in `~/.hermes/.env` or come from Bitwarden, 1Password or a command helper at start-up. Google Workspace, MCP servers and Nous Portal sign in by OAuth, with tokens stored under `~/.hermes/`. The optional API server takes a bearer key set in `API_SERVER_KEY`.",
      "pricing": "free",
      "pricingNotes": "Free under the MIT licence. The owner pays the model provider chosen, or nothing with a local model. Nous Portal plans ($0, $20, $100 and $200 a month in credits) and Hermes Cloud hosting ($0.51 a day running on the Standard size, plus inference) are optional and sold separately.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on Hermes Agent's own interfaces. An optional skill lets the agent pay other services over MPP, which is a client and not a way to pay for Hermes (checked 2026-10-12).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 253000,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-12"
      },
      "docsUrl": "https://hermes-agent.nousresearch.com/docs/",
      "llmsTxt": "https://hermes-agent.nousresearch.com/llms.txt",
      "capabilities": [
        "assistant.proactive",
        "assistant.messaging",
        "assistant.accounts",
        "assistant.memory",
        "assistant.self-hosted",
        "agent.mcp-client"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "local",
        "free",
        "no-card",
        "python",
        "docker",
        "llms-txt",
        "pre-1.0"
      ],
      "lastRelease": "2026-10-11",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.9,
        "grade": "B",
        "agentReady": false,
        "rank": 244,
        "ranked": true,
        "rankOf": 986,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 84,
          "payments": 60,
          "reliability": 57,
          "schema": 80,
          "security": 75,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-12"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-10-08. The v0.21.6 release notes list six security fixes, among them a native sign-in flaw that could send login codes to a non-loopback redirect and a quoted display name in the `From` header that affected the email gateway's sender check. SECURITY.md counts unauthorised access to an external surface as in scope, yet the repository shows no published advisory, so owners on older versions have no advisory to act on. Fixed and described in the notes, -3. https://github.com/NousResearch/hermes-agent/releases/tag/v0.21.6; https://github.com/NousResearch/hermes-agent/security/advisories"
        ],
        "verdict": "Card payments always ask first and are refused in unattended sessions, and the messaging gateway denies every sender until an allowlist is set. Shell commands run on the host by default with a model judging risk, and sending mail through the Google Workspace skill is held back only by an instruction to the model.",
        "bestFor": "A technical owner who wants one always-on agent across chat apps with memory and scheduled jobs, on their own machine or a small server, with any model.",
        "strengths": [
          "Every saved-card fill asks for approval, and cron, webhook and API sessions are refused because nobody can confirm",
          "The messaging gateway denies all senders until an allowlist or a pairing code approved on the CLI is in place",
          "The docs say no telemetry, usage data or analytics is collected, and conversations, memory and skills stay in `~/.hermes/`",
          "SECURITY.md states that in-process checks are not a boundary and names OS-level isolation as the only one",
          "Ten releases between 19 August and 11 October 2026, the latest v0.21.7 on 11 October"
        ],
        "weaknesses": [
          "The default terminal backend runs commands on the host, and the default `smart` mode lets an auxiliary model approve commands it rates low-risk",
          "The Google Workspace skill requests full Gmail, Calendar and Drive scopes, and its confirm-before-sending rule is an instruction in SKILL.md, not enforced in code",
          "Memory writes are saved without approval by default (`memory.write_approval: false`), including from a background review after each turn",
          "Release v0.21.6 of 8 October 2026 lists six security fixes and the repository has no published security advisory",
          "15,102 open issues and more than 5,000 open pull requests on 12 October 2026",
          "The Nous Portal terms grant Nous a licence to train models on customer data when the Portal is the model provider"
        ],
        "agentNotes": [
          "Set `approvals.mode: manual` before giving it real accounts. The default `smart` lets an auxiliary model approve commands",
          "Run the gateway with `terminal.backend: docker` or the project's Docker image when it reads mail, web pages or group chats",
          "Set `memory.write_approval: true` and `skills.write_approval: true` to review what it saves about the owner",
          "Leave `approvals.cron_mode` and `approvals.unattended_mode` at `deny` for scheduled and webhook runs",
          "Set `TELEGRAM_ALLOWED_USERS` or the matching allowlist per channel. Never set `GATEWAY_ALLOW_ALL_USERS=true`"
        ],
        "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": 67.9
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 84,
          "payments": 60,
          "reliability": 57,
          "schema": 80,
          "security": 75,
          "transparency": 73
        },
        "provenanceScore": 53
      },
      "connect": {
        "install": "curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash   # then: hermes setup",
        "headless": {
          "command": "hermes chat -q \"$TASK\" --format stream-json --max-turns 30"
        }
      },
      "letme": {
        "capability": "https://letme.dev/assistant.proactive",
        "tool": "https://letme.dev/hermes-agent"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "Nous Research, Inc.",
        "domain": "nousresearch.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/NousResearch/hermes-agent/releases",
        "securityTxt": "none",
        "checked": "2026-10-12",
        "notes": [
          "The site footer reads Nous Research, Inc., and the Nous Portal terms name it as a Delaware corporation.",
          "No terms or privacy link is given. The Nous Portal terms and privacy policy (both dated 28 September 2026) govern the optional Portal and Hermes Cloud services, not the software the owner runs under the MIT licence, so the licence stands in.",
          "hermes-agent.nousresearch.com/.well-known/security.txt answered 404. SECURITY.md in the repository gives security@nousresearch.com and GitHub private reporting.",
          "No status page applies to software the owner runs. None was looked for on the Portal.",
          "The domain registration date was not looked up."
        ],
        "score": 53
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/hermes-agent.json"
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Agent harness",
        "name": "Kind"
      },
      {
        "a": "AstrBotDevs",
        "b": "Nous Research",
        "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": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-27",
        "b": "2026-10-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": "253k stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Hermes Agent scores 67.9 (B) on agent readiness against AstrBot's 58.8 (C), and leads in 5 of 7 scored categories. AstrBot leads on reliability.",
        "question": "Which is better for AI agents, AstrBot or Hermes Agent?"
      },
      {
        "answer": "Yes. AstrBot is open source (AGPL-3.0-or-later). Hermes Agent is open source (MIT).",
        "question": "Are AstrBot and Hermes Agent open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 81 against 57"
        ],
        "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, 80 against 62",
          "Agent ergonomics, 80 against 54",
          "Security \u0026 auth, 75 against 44",
          "Transparency \u0026 trust, 63 against 40"
        ],
        "also": [
          "No key needed to call it"
        ],
        "goodFor": "A technical owner who wants one always-on agent across chat apps with memory and scheduled jobs, on their own machine or a small server, with any model.",
        "slug": "hermes-agent",
        "watchFor": "The default terminal backend runs commands on the host, and the default `smart` mode lets an auxiliary model approve commands it rates low-risk"
      }
    ],
    "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-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-qwenpaw.json",
        "title": "AstrBot vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-qwenpaw"
      },
      {
        "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-hermes-agent.json",
        "title": "CowAgent vs Hermes Agent",
        "url": "https://www.anchorterminal.com/compare/cowagent-vs-hermes-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gaia-vs-hermes-agent.json",
        "title": "GAIA vs Hermes Agent",
        "url": "https://www.anchorterminal.com/compare/gaia-vs-hermes-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-hermes-agent.json",
        "title": "Gemini Spark vs Hermes Agent",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-hermes-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grok-bot-vs-hermes-agent.json",
        "title": "Grok Bot vs Hermes Agent",
        "url": "https://www.anchorterminal.com/compare/grok-bot-vs-hermes-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/haven-vs-hermes-agent.json",
        "title": "Haven vs Hermes Agent",
        "url": "https://www.anchorterminal.com/compare/haven-vs-hermes-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hermes-agent-vs-instinct.json",
        "title": "Hermes Agent vs Instinct",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-instinct"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hermes-agent-vs-ironclaw.json",
        "title": "Hermes Agent vs IronClaw",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-ironclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hermes-agent-vs-leon.json",
        "title": "Hermes Agent vs Leon",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-leon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hermes-agent-vs-lindy.json",
        "title": "Hermes Agent vs Lindy",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-lindy"
      },
      {
        "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-nanoclaw.json",
        "title": "Hermes Agent vs NanoClaw",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-nanoclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hermes-agent-vs-openai-dots.json",
        "title": "Hermes Agent vs Dots",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-openai-dots"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hermes-agent-vs-openclaw.json",
        "title": "Hermes Agent vs OpenClaw",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-openclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hermes-agent-vs-picoclaw.json",
        "title": "Hermes Agent vs PicoClaw",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-picoclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hermes-agent-vs-poke.json",
        "title": "Hermes Agent vs Poke",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-poke"
      },
      {
        "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/hermes-agent-vs-zeroclaw.json",
        "title": "Hermes Agent vs ZeroClaw",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-zeroclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hermes-agent-vs-zo-computer.json",
        "title": "Hermes Agent vs Zo Computer",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-zo-computer"
      }
    ],
    "scores": [
      {
        "astrbot": 81,
        "by": 24,
        "edge": "astrbot",
        "hermes-agent": 57,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "astrbot": 62,
        "by": 18,
        "edge": "hermes-agent",
        "hermes-agent": 80,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "astrbot": 54,
        "by": 26,
        "edge": "hermes-agent",
        "hermes-agent": 80,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "astrbot": 44,
        "by": 31,
        "edge": "hermes-agent",
        "hermes-agent": 75,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "astrbot": 60,
        "by": 0,
        "edge": "",
        "hermes-agent": 60,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "astrbot": 81,
        "by": 3,
        "edge": "hermes-agent",
        "hermes-agent": 84,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "astrbot": 40,
        "by": 23,
        "edge": "hermes-agent",
        "hermes-agent": 63,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Hermes Agent scores 67.9 (B) on agent readiness against AstrBot's 58.8 (C), and leads in 5 of 7 scored categories. AstrBot leads on reliability. 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.",
      "hermes-agent": "Card payments always ask first and are refused in unattended sessions, and the messaging gateway denies every sender until an allowlist is set. Shell commands run on the host by default with a model judging risk, and sending mail through the Google Workspace skill is held back only by an instruction to the model."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/astrbot-vs-hermes-agent",
    "json": "https://www.anchorterminal.com/compare/astrbot-vs-hermes-agent.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/astrbot-vs-hermes-agent.md",
    "slim": "https://www.anchorterminal.com/compare/astrbot-vs-hermes-agent.min.md"
  },
  "markdown": "Hermes Agent scores 67.9 (B) on agent readiness against AstrBot's 58.8 (C), and leads in 5 of 7 scored categories. AstrBot leads on reliability. 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- Hermes Agent: grade B, 67.9/100, rank #244 of 986. Markdown https://www.anchorterminal.com/tools/hermes-agent.md · JSON https://www.anchorterminal.com/api/v1/tools/hermes-agent.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 57\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### Hermes Agent (B)\n\nGood for: A technical owner who wants one always-on agent across chat apps with memory and scheduled jobs, on their own machine or a small server, with any model.\n\nAhead on:\n- Schema \u0026 documentation, 80 against 62\n- Agent ergonomics, 80 against 54\n- Security \u0026 auth, 75 against 44\n- Transparency \u0026 trust, 63 against 40\n\nAlso in its favour:\n- No key needed to call it\n\nWatch for: The default terminal backend runs commands on the host, and the default `smart` mode lets an auxiliary model approve commands it rates low-risk\n\n\n## Score by category\n\n| Category | Weight | AstrBot | Hermes Agent | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 81 | 57 | AstrBot +24 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 62 | 80 | Hermes Agent +18 |\n| Agent ergonomics | 13% (16.2 this run) | 54 | 80 | Hermes Agent +26 |\n| Security \u0026 auth | 14% (17.5 this run) | 44 | 75 | Hermes Agent +31 |\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 | Hermes Agent +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 40 | 63 | Hermes Agent +23 |\n| Negative events | ≤15 | -2 | -3 | |\n| **Total** | | **58.8 · C** | **67.9 · B** | |\n\n## Facts side by side\n\n| Fact | AstrBot | Hermes Agent |\n| --- | --- | --- |\n| Kind | Agent harness | Agent harness |\n| Vendor | AstrBotDevs | Nous Research |\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 | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-09-27 | 2026-10-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 | 253k 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**Hermes Agent.** Card payments always ask first and are refused in unattended sessions, and the messaging gateway denies every sender until an allowlist is set. Shell commands run on the host by default with a model judging risk, and sending mail through the Google Workspace skill is held back only by an instruction to the model.\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### Hermes Agent\n\n1. Set `approvals.mode: manual` before giving it real accounts. The default `smart` lets an auxiliary model approve commands\n2. Run the gateway with `terminal.backend: docker` or the project's Docker image when it reads mail, web pages or group chats\n3. Set `memory.write_approval: true` and `skills.write_approval: true` to review what it saves about the owner\n4. Leave `approvals.cron_mode` and `approvals.unattended_mode` at `deny` for scheduled and webhook runs\n5. Set `TELEGRAM_ALLOWED_USERS` or the matching allowlist per channel. Never set `GATEWAY_ALLOW_ALL_USERS=true`\n\n## Questions\n\n### Which is better for AI agents, AstrBot or Hermes Agent?\n\nHermes Agent scores 67.9 (B) on agent readiness against AstrBot's 58.8 (C), and leads in 5 of 7 scored categories. AstrBot leads on reliability.\n\n### Are AstrBot and Hermes Agent open source?\n\nYes. AstrBot is open source (AGPL-3.0-or-later). Hermes Agent is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/astrbot-vs-hermes-agent.json, and with the fewest tokens: https://www.anchorterminal.com/compare/astrbot-vs-hermes-agent.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"astrbot\", \"b\": \"hermes-agent\"}`. From a terminal: `anchor compare astrbot hermes-agent`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/astrbot.json and https://www.anchorterminal.com/api/v1/tools/hermes-agent.json\n\n## Other comparisons with AstrBot or Hermes Agent\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 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 QwenPaw](https://www.anchorterminal.com/compare/astrbot-vs-qwenpaw.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 Hermes Agent](https://www.anchorterminal.com/compare/cowagent-vs-hermes-agent.md)\n- [GAIA vs Hermes Agent](https://www.anchorterminal.com/compare/gaia-vs-hermes-agent.md)\n- [Gemini Spark vs Hermes Agent](https://www.anchorterminal.com/compare/gemini-spark-vs-hermes-agent.md)\n- [Grok Bot vs Hermes Agent](https://www.anchorterminal.com/compare/grok-bot-vs-hermes-agent.md)\n- [Haven vs Hermes Agent](https://www.anchorterminal.com/compare/haven-vs-hermes-agent.md)\n- [Hermes Agent vs Instinct](https://www.anchorterminal.com/compare/hermes-agent-vs-instinct.md)\n- [Hermes Agent vs IronClaw](https://www.anchorterminal.com/compare/hermes-agent-vs-ironclaw.md)\n- [Hermes Agent vs Leon](https://www.anchorterminal.com/compare/hermes-agent-vs-leon.md)\n- [Hermes Agent vs Lindy](https://www.anchorterminal.com/compare/hermes-agent-vs-lindy.md)\n- [Hermes Agent vs nanobot](https://www.anchorterminal.com/compare/hermes-agent-vs-nanobot.md)\n- [Hermes Agent vs NanoClaw](https://www.anchorterminal.com/compare/hermes-agent-vs-nanoclaw.md)\n- [Hermes Agent vs Dots](https://www.anchorterminal.com/compare/hermes-agent-vs-openai-dots.md)\n- [Hermes Agent vs OpenClaw](https://www.anchorterminal.com/compare/hermes-agent-vs-openclaw.md)\n- [Hermes Agent vs PicoClaw](https://www.anchorterminal.com/compare/hermes-agent-vs-picoclaw.md)\n- [Hermes Agent vs Poke](https://www.anchorterminal.com/compare/hermes-agent-vs-poke.md)\n- [Hermes Agent vs QwenPaw](https://www.anchorterminal.com/compare/hermes-agent-vs-qwenpaw.md)\n- [Hermes Agent vs ZeroClaw](https://www.anchorterminal.com/compare/hermes-agent-vs-zeroclaw.md)\n- [Hermes Agent vs Zo Computer](https://www.anchorterminal.com/compare/hermes-agent-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 Hermes Agent",
        "url": ""
      }
    ],
    "description": "Hermes Agent scores 67.9 (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",
      "Hermes Agent B 67.9",
      "scores"
    ],
    "h1": "AstrBot vs Hermes Agent",
    "image": "https://www.anchorterminal.com/assets/og/compare-astrbot-vs-hermes-agent.png",
    "path": "/compare/astrbot-vs-hermes-agent",
    "published": "2026-10-01",
    "section": "tools",
    "title": "AstrBot vs Hermes Agent for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-12",
    "url": "https://www.anchorterminal.com/compare/astrbot-vs-hermes-agent"
  },
  "tokens": {
    "markdown": 2600,
    "slim": 630
  },
  "version": 1
}
