{
  "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": "AstrBot scores 58.8 (C) on agent readiness against Gemini Spark's 24.5 (F), and leads in 5 of 7 scored categories. Gemini Spark leads on security \u0026 auth and transparency \u0026 trust.",
    "b": {
      "slug": "gemini-spark",
      "name": "Gemini Spark",
      "vendor": "Google LLC",
      "vendorUrl": "https://gemini.google/us/overview/agent/spark/",
      "kind": "platform",
      "category": "personal-assistants",
      "summary": "Gemini Spark is Google's hosted personal AI agent inside the Gemini app. It runs tasks and schedules in Google's cloud across Gmail, Calendar, Drive and other connected apps for Google AI Pro and Ultra subscribers.",
      "url": "https://www.anchorterminal.com/tools/gemini-spark",
      "markdownUrl": "https://www.anchorterminal.com/tools/gemini-spark.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/gemini-spark.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/gemini-spark.json",
      "license": "Proprietary hosted service under the Google Terms of Service",
      "transports": [],
      "packages": [],
      "auth": "oauth",
      "authNotes": "No credential for an outside agent exists, because no public API was found. A person signs in to the Gemini app with a personal Google Account and needs a Google AI Pro or Ultra subscription (https://support.google.com/gemini/answer/17094507). Connected apps are off by default and are switched on in settings (https://gemini.google/us/overview/agent/spark/). Third-party and custom apps are linked to the Google Account and can be unlinked in Connected Apps settings or on the account's Linked apps page. A custom MCP server that lacks Dynamic Client Registration takes credentials the user enters (https://support.google.com/gemini/answer/17209137). Google tells users not to type sign-in or payment details into a task thread and to enter them on the web page in take control mode (https://support.google.com/gemini/answer/17094507).",
      "pricing": "paid",
      "pricingNotes": "Spark needs a Google AI Pro or Ultra subscription. US prices are $19.99 a month for Pro and $99.99 or $199.99 a month for Ultra, with Spark use counted against compute-based limits that refresh every five hours up to a weekly limit (https://gemini.google/us/subscriptions/; https://support.google.com/gemini/answer/16275805). The subscriptions page lists Spark under Ultra as first access in select countries, while the help page names Pro and Ultra. No free tier includes Spark. The page links a two-month trial offer whose terms were not read (checked 2026-10-12).",
      "priceSummary": "$19.99 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the pages read, and no public API to carry one (checked 2026-10-12).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-12"
      },
      "docsUrl": "https://support.google.com/gemini/answer/17094507",
      "capabilities": [
        "assistant.proactive",
        "assistant.accounts",
        "assistant.memory",
        "agent.mcp-client"
      ],
      "tags": [
        "hosted",
        "consumer",
        "closed-source",
        "no-api",
        "beta",
        "ios",
        "android",
        "macos",
        "web",
        "browser-agent",
        "approvals",
        "mcp-client",
        "subscription",
        "trains-on-data-by-default"
      ],
      "lastRelease": "2026-05-19",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 24.5,
        "grade": "F",
        "agentReady": false,
        "rank": 974,
        "ranked": true,
        "rankOf": 986,
        "categoryRank": 18,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 9,
          "maintenance": 17,
          "payments": 10,
          "reliability": 14,
          "schema": 17,
          "security": 60,
          "transparency": 49
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-12"
        },
        "negative": 0,
        "verdict": "Google's help pages state what Spark confirms before doing, how to delete its remote browser and code data, and the risks of prompt injection. Spark has no public API, Google calls it experimental, and it runs only with Keep Activity on, the setting under which chats are used for model training and human review.",
        "bestFor": "A person who already keeps mail, calendar and files in a personal Google Account and accepts Keep Activity being on.",
        "strengths": [
          "Google says Spark asks for confirmation before sending communications, modifying data, making purchases, submitting web forms and using Sign in with Google",
          "Connected apps are off by default, and write actions through a custom MCP server need manual confirmation, per Google's help pages",
          "The help page names prompt injection, gives four examples of what an injected instruction could do, and says the safeguards do not guarantee protection",
          "Each task thread has a work panel listing completed and planned steps, files read or updated, schedules, and the skills and apps used",
          "Published limits of 15 running tasks and 50 active schedules, and plan prices of $19.99 to $199.99 a month in the US"
        ],
        "weaknesses": [
          "No public API, SDK or MCP server for an outside agent was found. Spark is reached in the Gemini mobile app, the Mac app and gemini.google.com",
          "Google's help page calls Spark an experimental feature in early development, and the Privacy Hub calls it beta",
          "Spark runs only with Keep Activity on. With that setting on, Google uses activity to train generative AI models and human reviewers read some chats",
          "Chats already reviewed by human reviewers are kept for up to three years and are not deleted when the user deletes activity",
          "Google states that Gemini can perform bulk actions on private Google Tasks without confirmation",
          "The remote browser saves cookies holding website sign-in details for later sessions until the user deletes them or turns Spark off",
          "No status page or SLA for Spark was linked from the pages read, and the bug bounty site linked from Google's terms is drawn by script and was unread"
        ],
        "agentNotes": [
          "Do not plan an integration against Spark. No public API or MCP server was found, and a person must hold a Google AI Pro or Ultra subscription",
          "Expect a confirmation request before sends, edits, purchases and web form submissions, and note that bulk changes to private Google Tasks run without one",
          "Delete remote browser data and remote code execution data in Gemini Spark Settings after a sensitive session. Deleting a task thread or Gemini Apps activity does not remove them",
          "Keep within 15 running tasks and 50 active schedules. A schedule does not run when 15 tasks are running or the usage limit is reached",
          "Treat every safety statement here as Google's own description. None was tested, and no message was sent to the service"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "F",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 24.5
          }
        ],
        "editorialScores": {
          "ergonomics": 9,
          "maintenance": 17,
          "payments": 10,
          "reliability": 14,
          "schema": 17,
          "security": 60,
          "transparency": 44
        },
        "provenanceScore": 54
      },
      "letme": {
        "capability": "https://letme.dev/assistant.proactive",
        "tool": "https://letme.dev/gemini-spark"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Google AI Pro",
          "unit": "month",
          "usd": 19.99,
          "note": "US price, includes Spark with 4 times the standard usage limit"
        },
        {
          "item": "Google AI Ultra (5x)",
          "unit": "month",
          "usd": 99.99,
          "note": "US price, 5 times the Pro usage limit"
        },
        {
          "item": "Google AI Ultra (20x)",
          "unit": "month",
          "usd": 199.99,
          "note": "US price, 20 times the Pro usage limit"
        }
      ],
      "provenance": {
        "legalEntity": "Google LLC",
        "domain": "gemini.google",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "https://policies.google.com/terms",
        "privacy": "https://support.google.com/gemini/answer/13594961",
        "statusPage": "",
        "changelog": "https://gemini.google/us/release-notes/",
        "securityTxt": "none",
        "checked": "2026-10-12",
        "notes": [
          "The Gemini Apps Privacy Notice says Gemini Apps are supplied by Google Ireland Limited in the European Economic Area and Switzerland and by Google LLC everywhere else. Spark is not available in the European Economic Area or Switzerland.",
          "Google's service-specific terms page lists Gemini Apps under the Google Terms of Service (effective 30 July 2026), the Generative AI Prohibited Use Policy and the Gemini Apps Agentic Calling Additional Terms of Service. The Generative AI Additional Terms of Service that the subscriptions page links say they stopped applying on 22 May 2024.",
          "The privacy link is the Gemini Apps Privacy Hub, which holds the Gemini Apps Privacy Notice (last updated 29 June 2026) and the Spark data questions (hub last updated 24 September 2026). The notice supplements the Google Privacy Policy at policies.google.com/privacy (effective 12 October 2026).",
          "No status page for Gemini Apps or Spark was linked from any page read.",
          "The release notes are the Gemini app's. Their only entry about Spark is dated 19 May 2026.",
          "gemini.google/.well-known/security.txt answered 404. Google's terms link bughunters.google.com as its safety and bug testing programmes. That site's home page is drawn by script and was unread.",
          "gemini.google is a name under Google's own .google top-level domain. Its registration date was not looked up.",
          "policies.google.com/robots.txt answered 404, read as no rules. The robots.txt files of gemini.google, support.google.com and bughunters.google.com allow the pages read."
        ],
        "score": 54
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/gemini-spark.json"
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Platform",
        "name": "Kind"
      },
      {
        "a": "AstrBotDevs",
        "b": "Google LLC",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "AGPL-3.0-or-later",
        "b": "Proprietary hosted service under the Google Terms of Service",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-27",
        "b": "2026-05-19",
        "name": "Last release"
      },
      {
        "a": "2026-01-12",
        "b": "2026-07-30",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-09-24",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes, with an opt-out",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "42k stars",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "AstrBot scores 58.8 (C) on agent readiness against Gemini Spark's 24.5 (F), and leads in 5 of 7 scored categories. Gemini Spark leads on security \u0026 auth and transparency \u0026 trust.",
        "question": "Which is better for AI agents, AstrBot or Gemini Spark?"
      },
      {
        "answer": "AstrBot is open source (AGPL-3.0-or-later). No open-source release is listed for Gemini Spark.",
        "question": "Are AstrBot and Gemini Spark open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 81 against 14",
          "Schema \u0026 documentation, 62 against 17",
          "Agent ergonomics, 54 against 9",
          "Payments \u0026 pricing, 60 against 10",
          "Maintenance \u0026 community, 81 against 17"
        ],
        "also": [
          "Free to start without a card",
          "Open source"
        ],
        "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": [
          "Security \u0026 auth, 60 against 44",
          "Transparency \u0026 trust, 49 against 40"
        ],
        "also": null,
        "goodFor": "A person who already keeps mail, calendar and files in a personal Google Account and accepts Keep Activity being on.",
        "slug": "gemini-spark",
        "watchFor": "No public API, SDK or MCP server for an outside agent was found. Spark is reached in the Gemini mobile app, the Mac app and gemini.google.com"
      }
    ],
    "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-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-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-gemini-spark.json",
        "title": "CowAgent vs Gemini Spark",
        "url": "https://www.anchorterminal.com/compare/cowagent-vs-gemini-spark"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gaia-vs-gemini-spark.json",
        "title": "GAIA vs Gemini Spark",
        "url": "https://www.anchorterminal.com/compare/gaia-vs-gemini-spark"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-grok-bot.json",
        "title": "Gemini Spark vs Grok Bot",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-grok-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-haven.json",
        "title": "Gemini Spark vs Haven",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-haven"
      },
      {
        "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/gemini-spark-vs-instinct.json",
        "title": "Gemini Spark vs Instinct",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-instinct"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-ironclaw.json",
        "title": "Gemini Spark vs IronClaw",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-ironclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-leon.json",
        "title": "Gemini Spark vs Leon",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-leon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-lindy.json",
        "title": "Gemini Spark vs Lindy",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-lindy"
      },
      {
        "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-nanoclaw.json",
        "title": "Gemini Spark vs NanoClaw",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-nanoclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-openai-dots.json",
        "title": "Gemini Spark vs Dots",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-openai-dots"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-openclaw.json",
        "title": "Gemini Spark vs OpenClaw",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-openclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-picoclaw.json",
        "title": "Gemini Spark vs PicoClaw",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-picoclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-poke.json",
        "title": "Gemini Spark vs Poke",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-poke"
      },
      {
        "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/gemini-spark-vs-zeroclaw.json",
        "title": "Gemini Spark vs ZeroClaw",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-zeroclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-zo-computer.json",
        "title": "Gemini Spark vs Zo Computer",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-zo-computer"
      }
    ],
    "scores": [
      {
        "astrbot": 81,
        "by": 67,
        "edge": "astrbot",
        "gemini-spark": 14,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "astrbot": 62,
        "by": 45,
        "edge": "astrbot",
        "gemini-spark": 17,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "astrbot": 54,
        "by": 45,
        "edge": "astrbot",
        "gemini-spark": 9,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "astrbot": 44,
        "by": 16,
        "edge": "gemini-spark",
        "gemini-spark": 60,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "astrbot": 60,
        "by": 50,
        "edge": "astrbot",
        "gemini-spark": 10,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "astrbot": 81,
        "by": 64,
        "edge": "astrbot",
        "gemini-spark": 17,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "astrbot": 40,
        "by": 9,
        "edge": "gemini-spark",
        "gemini-spark": 49,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "AstrBot scores 58.8 (C) on agent readiness against Gemini Spark's 24.5 (F), and leads in 5 of 7 scored categories. Gemini Spark leads on security \u0026 auth and transparency \u0026 trust. 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.",
      "gemini-spark": "Google's help pages state what Spark confirms before doing, how to delete its remote browser and code data, and the risks of prompt injection. Spark has no public API, Google calls it experimental, and it runs only with Keep Activity on, the setting under which chats are used for model training and human review."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/astrbot-vs-gemini-spark",
    "json": "https://www.anchorterminal.com/compare/astrbot-vs-gemini-spark.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/astrbot-vs-gemini-spark.md",
    "slim": "https://www.anchorterminal.com/compare/astrbot-vs-gemini-spark.min.md"
  },
  "markdown": "AstrBot scores 58.8 (C) on agent readiness against Gemini Spark's 24.5 (F), and leads in 5 of 7 scored categories. Gemini Spark leads on security \u0026 auth and transparency \u0026 trust. 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- Gemini Spark: grade F, 24.5/100, rank #974 of 986. Markdown https://www.anchorterminal.com/tools/gemini-spark.md · JSON https://www.anchorterminal.com/api/v1/tools/gemini-spark.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 14\n- Schema \u0026 documentation, 62 against 17\n- Agent ergonomics, 54 against 9\n- Payments \u0026 pricing, 60 against 10\n- Maintenance \u0026 community, 81 against 17\n\nAlso in its favour:\n- Free to start without a card\n- Open source\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### Gemini Spark (F)\n\nGood for: A person who already keeps mail, calendar and files in a personal Google Account and accepts Keep Activity being on.\n\nAhead on:\n- Security \u0026 auth, 60 against 44\n- Transparency \u0026 trust, 49 against 40\n\nWatch for: No public API, SDK or MCP server for an outside agent was found. Spark is reached in the Gemini mobile app, the Mac app and gemini.google.com\n\n\n## Score by category\n\n| Category | Weight | AstrBot | Gemini Spark | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 81 | 14 | AstrBot +67 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 62 | 17 | AstrBot +45 |\n| Agent ergonomics | 13% (16.2 this run) | 54 | 9 | AstrBot +45 |\n| Security \u0026 auth | 14% (17.5 this run) | 44 | 60 | Gemini Spark +16 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 10 | AstrBot +50 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 81 | 17 | AstrBot +64 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 40 | 49 | Gemini Spark +9 |\n| Negative events | ≤15 | -2 | 0 | |\n| **Total** | | **58.8 · C** | **24.5 · F** | |\n\n## Facts side by side\n\n| Fact | AstrBot | Gemini Spark |\n| --- | --- | --- |\n| Kind | Agent harness | Platform |\n| Vendor | AstrBotDevs | Google LLC |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | OAuth or key | OAuth |\n| Pricing | Free | Paid |\n| x402 | no | no |\n| Licence | AGPL-3.0-or-later | Proprietary hosted service under the Google Terms of Service |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-09-27 | 2026-05-19 |\n| Terms last updated | 2026-01-12 | 2026-07-30 |\n| Privacy policy last updated | no document linked | 2026-09-24 |\n| Customer content may train models | not found in the text | yes, with an opt-out |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 42k stars | none |\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**Gemini Spark.** Google's help pages state what Spark confirms before doing, how to delete its remote browser and code data, and the risks of prompt injection. Spark has no public API, Google calls it experimental, and it runs only with Keep Activity on, the setting under which chats are used for model training and human review.\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### Gemini Spark\n\n1. Do not plan an integration against Spark. No public API or MCP server was found, and a person must hold a Google AI Pro or Ultra subscription\n2. Expect a confirmation request before sends, edits, purchases and web form submissions, and note that bulk changes to private Google Tasks run without one\n3. Delete remote browser data and remote code execution data in Gemini Spark Settings after a sensitive session. Deleting a task thread or Gemini Apps activity does not remove them\n4. Keep within 15 running tasks and 50 active schedules. A schedule does not run when 15 tasks are running or the usage limit is reached\n5. Treat every safety statement here as Google's own description. None was tested, and no message was sent to the service\n\n## Questions\n\n### Which is better for AI agents, AstrBot or Gemini Spark?\n\nAstrBot scores 58.8 (C) on agent readiness against Gemini Spark's 24.5 (F), and leads in 5 of 7 scored categories. Gemini Spark leads on security \u0026 auth and transparency \u0026 trust.\n\n### Are AstrBot and Gemini Spark open source?\n\nAstrBot is open source (AGPL-3.0-or-later). No open-source release is listed for Gemini Spark.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/astrbot-vs-gemini-spark.json, and with the fewest tokens: https://www.anchorterminal.com/compare/astrbot-vs-gemini-spark.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"astrbot\", \"b\": \"gemini-spark\"}`. From a terminal: `anchor compare astrbot gemini-spark`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/astrbot.json and https://www.anchorterminal.com/api/v1/tools/gemini-spark.json\n\n## Other comparisons with AstrBot or Gemini Spark\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 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 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 Gemini Spark](https://www.anchorterminal.com/compare/cowagent-vs-gemini-spark.md)\n- [GAIA vs Gemini Spark](https://www.anchorterminal.com/compare/gaia-vs-gemini-spark.md)\n- [Gemini Spark vs Grok Bot](https://www.anchorterminal.com/compare/gemini-spark-vs-grok-bot.md)\n- [Gemini Spark vs Haven](https://www.anchorterminal.com/compare/gemini-spark-vs-haven.md)\n- [Gemini Spark vs Hermes Agent](https://www.anchorterminal.com/compare/gemini-spark-vs-hermes-agent.md)\n- [Gemini Spark vs Instinct](https://www.anchorterminal.com/compare/gemini-spark-vs-instinct.md)\n- [Gemini Spark vs IronClaw](https://www.anchorterminal.com/compare/gemini-spark-vs-ironclaw.md)\n- [Gemini Spark vs Leon](https://www.anchorterminal.com/compare/gemini-spark-vs-leon.md)\n- [Gemini Spark vs Lindy](https://www.anchorterminal.com/compare/gemini-spark-vs-lindy.md)\n- [Gemini Spark vs nanobot](https://www.anchorterminal.com/compare/gemini-spark-vs-nanobot.md)\n- [Gemini Spark vs NanoClaw](https://www.anchorterminal.com/compare/gemini-spark-vs-nanoclaw.md)\n- [Gemini Spark vs Dots](https://www.anchorterminal.com/compare/gemini-spark-vs-openai-dots.md)\n- [Gemini Spark vs OpenClaw](https://www.anchorterminal.com/compare/gemini-spark-vs-openclaw.md)\n- [Gemini Spark vs PicoClaw](https://www.anchorterminal.com/compare/gemini-spark-vs-picoclaw.md)\n- [Gemini Spark vs Poke](https://www.anchorterminal.com/compare/gemini-spark-vs-poke.md)\n- [Gemini Spark vs QwenPaw](https://www.anchorterminal.com/compare/gemini-spark-vs-qwenpaw.md)\n- [Gemini Spark vs ZeroClaw](https://www.anchorterminal.com/compare/gemini-spark-vs-zeroclaw.md)\n- [Gemini Spark vs Zo Computer](https://www.anchorterminal.com/compare/gemini-spark-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 Gemini Spark",
        "url": ""
      }
    ],
    "description": "AstrBot scores 58.8 (C) to Gemini Spark's 24.5 (F) for assistant proactive. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "AstrBot C 58.8",
      "Gemini Spark F 24.5",
      "scores"
    ],
    "h1": "AstrBot vs Gemini Spark",
    "image": "https://www.anchorterminal.com/assets/og/compare-astrbot-vs-gemini-spark.png",
    "path": "/compare/astrbot-vs-gemini-spark",
    "published": "2026-10-01",
    "section": "tools",
    "title": "AstrBot vs Gemini Spark for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-12",
    "url": "https://www.anchorterminal.com/compare/astrbot-vs-gemini-spark"
  },
  "tokens": {
    "markdown": 2700,
    "slim": 630
  },
  "version": 1
}
