{
  "data": {
    "similar": [
      {
        "grade": "B",
        "json": "https://www.anchorterminal.com/tools/robocorp.json",
        "name": "Robocorp",
        "score": 65.5,
        "shared": [
          "desktop.rpa",
          "desktop.scripting"
        ],
        "slug": "robocorp"
      },
      {
        "grade": "B",
        "json": "https://www.anchorterminal.com/tools/uipath.json",
        "name": "UiPath",
        "score": 68.2,
        "shared": [
          "desktop.rpa"
        ],
        "slug": "uipath"
      },
      {
        "grade": "D",
        "json": "https://www.anchorterminal.com/tools/autohotkey.json",
        "name": "AutoHotkey",
        "score": 52.8,
        "shared": [
          "desktop.scripting"
        ],
        "slug": "autohotkey"
      },
      {
        "grade": "D",
        "json": "https://www.anchorterminal.com/tools/automation-anywhere.json",
        "name": "Automation Anywhere",
        "score": 50.9,
        "shared": [
          "desktop.rpa"
        ],
        "slug": "automation-anywhere"
      },
      {
        "grade": "D",
        "json": "https://www.anchorterminal.com/tools/autoit.json",
        "name": "AutoIt",
        "score": 46.3,
        "shared": [
          "desktop.scripting"
        ],
        "slug": "autoit"
      }
    ],
    "tool": {
      "slug": "robot-framework",
      "name": "Robot Framework",
      "vendor": "Robot Framework Foundation",
      "vendorUrl": "https://robotframework.org",
      "kind": "framework",
      "category": "desktop-automation",
      "summary": "Robot Framework is an open-source automation framework for test automation and robotic process automation, run from the `robot` command line or Python. Its keyword libraries reach browsers, desktop applications and mobile apps.",
      "url": "https://www.anchorterminal.com/tools/robot-framework",
      "markdownUrl": "https://www.anchorterminal.com/tools/robot-framework.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/robot-framework.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/robot-framework.json",
      "repo": "https://github.com/robotframework/robotframework",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "robotframework"
        }
      ],
      "auth": "none",
      "authNotes": "No account or key. The framework runs on the owner's machine. Credentials for the systems a suite touches come from variables, variable files or environment variables the owner supplies, and each library handles its own logins.",
      "pricing": "free",
      "pricingNotes": "Free and open source under Apache-2.0, with nothing to buy and no hosted service from the foundation. Companies fund it through foundation membership (checked 2026-10-14).",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the source, the User Guide or robotframework.org (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 11939,
        "npmWeekly": null,
        "pypiWeekly": 775658,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html",
      "llmsTxt": "https://robotframework.org/llms.txt",
      "capabilities": [
        "desktop.scripting",
        "desktop.rpa",
        "mobile.control"
      ],
      "tags": [
        "open-source",
        "local",
        "cli",
        "python",
        "free",
        "no-card",
        "testing",
        "rpa",
        "llms-txt",
        "json-output"
      ],
      "lastRelease": "2026-09-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 76.4,
        "grade": "BB",
        "agentReady": true,
        "rank": 35,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 78,
          "maintenance": 90,
          "payments": 60,
          "reliability": 95,
          "schema": 86,
          "security": 50,
          "transparency": 76
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "breakdown": [
          {
            "key": "reliability",
            "name": "Reliability",
            "weight": 16,
            "effectiveWeight": 20,
            "score": 95,
            "points": 19,
            "reason": "Scored as local software. Official PyPI package with Python 3.8 or later and classifiers up to 3.15 (20). Unit tests and acceptance tests on CPython and PyPy run in public GitHub Actions and passed on master on 6 October 2026 (25). 311 open issues and pull requests on a project started on GitHub in 2014. Of the 15 newest, 7 had at least one reply, and none reports a crash (20 of 25). Release notes carry a backwards incompatible changes section and a deprecated functionality section, and the project follows major.minor feature releases with bug-fix releases (15). Version 7.5, Development Status Production/Stable (15)."
          },
          {
            "key": "performance",
            "name": "Performance",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
          },
          {
            "key": "schema",
            "name": "Schema \u0026 documentation",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 86,
            "points": 13.98,
            "reason": "Graded as a framework. JSON schemas for results, executable suites and Libdoc library specs, and XSDs for XML output, in doc/schema. There is no tool schema for an agent because no official MCP server exists (20 of 25). llms.txt, llms-full.txt and a raw Markdown copy of each page on robotframework.org (10). The User Guide explains each option and when to use it (16 of 20). Libdoc specs type keyword arguments, and keyword argument type hints drive conversion (12 of 15). Many examples, and return codes are documented in a table (13 of 15). Versioned releases with full release notes for each (15)."
          },
          {
            "key": "ergonomics",
            "name": "Agent ergonomics",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 78,
            "points": 12.68,
            "reason": "The command line adds no tool definitions to an agent's context, and `--loglevel`, `--removekeywords` and `--maxerrorlines` size the output (20 of 25). `--test`, `--suite`, `--include`, `--exclude` and `--rerunfailed` select what runs (20). The exit code counts failures and distinguishes data errors (252) and internal errors (255), and messages name the failing keyword (16 of 20). `--dryrun` validates a suite without side effects and `--rerunfailed` repeats only failures. Whether a keyword is safe to retry depends on the library (12 of 20). Few required arguments and a Python API, with other languages reached through the remote library interface rather than official SDKs (10 of 15)."
          },
          {
            "key": "security",
            "name": "Security \u0026 auth",
            "weight": 14,
            "effectiveWeight": 17.5,
            "score": 50,
            "points": 8.75,
            "reason": "Graded as a framework. It has no credential of its own. Secrets come from variables, files or the environment, and log.html records keyword arguments unless `--removekeywords` strips them (15 of 30). `--dryrun` checks a suite without running keywords. No sandbox or approval hook, and suites run with the owner's full rights (8 of 20). It returns no untrusted content itself, though libraries read pages and windows (10 of 15). output.xml or output.json and log.html record every keyword, its arguments and status (13 of 15). No SECURITY.md, no security.txt on robotframework.org and no repository advisories found (4 of 20)."
          },
          {
            "key": "payments",
            "name": "Payments \u0026 pricing",
            "weight": 10,
            "effectiveWeight": 12.5,
            "score": 60,
            "points": 7.5,
            "reason": "Free, self-hosted, nothing to buy, so 20 + 20 + 20 under the self-hosted rule. No payment protocol (0)."
          },
          {
            "key": "tasks",
            "name": "Task success",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
          },
          {
            "key": "maintenance",
            "name": "Maintenance \u0026 community",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 90,
            "points": 7.88,
            "reason": "Version 7.5 on 14 September 2026, 30 days before this check (30). 7.5b1, 7.5rc1 and 7.5 since 17 July 2026 (20). 162 commits since 14 July, and recent issues and pull requests get replies from maintainers within days, with some newer ones unanswered (20 of 25). Current official package on PyPI with no MCP server, so not in the MCP registry (10 of 15). Dependabot updates and passing CI on master (10)."
          },
          {
            "key": "transparency",
            "name": "Transparency \u0026 trust",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 76,
            "points": 6.65,
            "note": "editorial 78, provenance 74",
            "reason": "Apache-2.0 (30). The framework runs locally and collects nothing found in the source. The privacy policy covers only the websites, with Google Analytics and 50 months' retention stated (18 of 30). Deprecated functionality is listed in each release's notes with the version that removes them, such as the Telnet library in 7.5 (16 of 20). No telemetry code found in a search of the source, and the docs do not say so either way (14 of 20)."
          }
        ],
        "assessment": {
          "date": "2026-10-14",
          "basis": "public evidence",
          "confidence": "medium",
          "notes": {
            "ergonomics": "The command line adds no tool definitions to an agent's context, and `--loglevel`, `--removekeywords` and `--maxerrorlines` size the output (20 of 25). `--test`, `--suite`, `--include`, `--exclude` and `--rerunfailed` select what runs (20). The exit code counts failures and distinguishes data errors (252) and internal errors (255), and messages name the failing keyword (16 of 20). `--dryrun` validates a suite without side effects and `--rerunfailed` repeats only failures. Whether a keyword is safe to retry depends on the library (12 of 20). Few required arguments and a Python API, with other languages reached through the remote library interface rather than official SDKs (10 of 15).",
            "maintenance": "Version 7.5 on 14 September 2026, 30 days before this check (30). 7.5b1, 7.5rc1 and 7.5 since 17 July 2026 (20). 162 commits since 14 July, and recent issues and pull requests get replies from maintainers within days, with some newer ones unanswered (20 of 25). Current official package on PyPI with no MCP server, so not in the MCP registry (10 of 15). Dependabot updates and passing CI on master (10).",
            "payments": "Free, self-hosted, nothing to buy, so 20 + 20 + 20 under the self-hosted rule. No payment protocol (0).",
            "reliability": "Scored as local software. Official PyPI package with Python 3.8 or later and classifiers up to 3.15 (20). Unit tests and acceptance tests on CPython and PyPy run in public GitHub Actions and passed on master on 6 October 2026 (25). 311 open issues and pull requests on a project started on GitHub in 2014. Of the 15 newest, 7 had at least one reply, and none reports a crash (20 of 25). Release notes carry a backwards incompatible changes section and a deprecated functionality section, and the project follows major.minor feature releases with bug-fix releases (15). Version 7.5, Development Status Production/Stable (15).",
            "schema": "Graded as a framework. JSON schemas for results, executable suites and Libdoc library specs, and XSDs for XML output, in doc/schema. There is no tool schema for an agent because no official MCP server exists (20 of 25). llms.txt, llms-full.txt and a raw Markdown copy of each page on robotframework.org (10). The User Guide explains each option and when to use it (16 of 20). Libdoc specs type keyword arguments, and keyword argument type hints drive conversion (12 of 15). Many examples, and return codes are documented in a table (13 of 15). Versioned releases with full release notes for each (15).",
            "security": "Graded as a framework. It has no credential of its own. Secrets come from variables, files or the environment, and log.html records keyword arguments unless `--removekeywords` strips them (15 of 30). `--dryrun` checks a suite without running keywords. No sandbox or approval hook, and suites run with the owner's full rights (8 of 20). It returns no untrusted content itself, though libraries read pages and windows (10 of 15). output.xml or output.json and log.html record every keyword, its arguments and status (13 of 15). No SECURITY.md, no security.txt on robotframework.org and no repository advisories found (4 of 20).",
            "transparency": "Apache-2.0 (30). The framework runs locally and collects nothing found in the source. The privacy policy covers only the websites, with Google Analytics and 50 months' retention stated (18 of 30). Deprecated functionality is listed in each release's notes with the version that removes them, such as the Telnet library in 7.5 (16 of 20). No telemetry code found in a search of the source, and the docs do not say so either way (14 of 20)."
          },
          "sources": [
            {
              "what": "repository, source and doc/schema at commit of 6 October 2026",
              "url": "https://github.com/robotframework/robotframework",
              "seen": "2026-10-14"
            },
            {
              "what": "Robot Framework 7.5 release notes",
              "url": "https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.5.rst",
              "seen": "2026-10-14"
            },
            {
              "what": "tags (7.5b1, 7.5rc1, 7.5)",
              "url": "https://github.com/robotframework/robotframework/tags",
              "seen": "2026-10-14"
            },
            {
              "what": "Actions runs on master",
              "url": "https://api.github.com/repos/robotframework/robotframework/actions/runs?branch=master",
              "seen": "2026-10-14"
            },
            {
              "what": "stars and open issues",
              "url": "https://api.github.com/repos/robotframework/robotframework",
              "seen": "2026-10-14"
            },
            {
              "what": "newest open issues and pull requests",
              "url": "https://api.github.com/repos/robotframework/robotframework/issues?state=open\u0026sort=created\u0026direction=desc",
              "seen": "2026-10-14"
            },
            {
              "what": "PyPI package metadata",
              "url": "https://pypi.org/pypi/robotframework/json",
              "seen": "2026-10-14"
            },
            {
              "what": "PyPI downloads",
              "url": "https://pypistats.org/api/packages/robotframework/recent",
              "seen": "2026-10-14"
            },
            {
              "what": "home page",
              "url": "https://robotframework.org/",
              "seen": "2026-10-14"
            },
            {
              "what": "llms.txt",
              "url": "https://robotframework.org/llms.txt",
              "seen": "2026-10-14"
            },
            {
              "what": "privacy policy",
              "url": "https://robotframework.org/raw/privacy-policy.md",
              "seen": "2026-10-14"
            },
            {
              "what": "foundation page",
              "url": "https://robotframework.org/raw/foundation.md",
              "seen": "2026-10-14"
            },
            {
              "what": "User Guide, return codes",
              "url": "https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html",
              "seen": "2026-10-14"
            }
          ],
          "openQuestions": [
            "unchecked: whether any core library stores or redacts secrets in logs by default beyond `--removekeywords`",
            "The home page showed 7.4.2 on 14 October 2026, a month after 7.5."
          ]
        },
        "negative": 0,
        "verdict": "A stable 7.5 release, passing unit and acceptance tests, JSON schemas for results and library docs, and an llms.txt make it a dependable base for agent-written automation. Desktop and mobile control come from separate community libraries, there is no official MCP server, and no security policy or security.txt was found.",
        "bestFor": "Agents that write or run keyword-driven test and RPA suites across web, desktop and mobile through libraries.",
        "strengths": [
          "Version 7.5 of 14 September 2026, marked Production/Stable on PyPI, with Python 3.8 to 3.15 listed",
          "Unit and acceptance test workflows on CPython and PyPy passed on master on 6 October 2026",
          "JSON schemas for run results, executable suites and Libdoc library specs are published in doc/schema",
          "robotframework.org serves llms.txt, llms-full.txt and a raw Markdown copy of each page",
          "Release notes have separate sections for backwards incompatible changes and deprecated functionality"
        ],
        "weaknesses": [
          "Desktop and mobile control depend on separate libraries, such as AppiumLibrary and AutoItLibrary, maintained outside the core project",
          "No official MCP server. MCP servers for Robot Framework found on PyPI and Glama are community projects",
          "No SECURITY.md, no security.txt on robotframework.org and no published repository advisories",
          "robotframework.org still showed version 7.4.2 on 14 October 2026, a month after 7.5 shipped"
        ],
        "agentNotes": [
          "Install with `pip install robotframework` and check with `robot --version`. Add the library for the target app, such as AppiumLibrary, separately",
          "Read the exit code. It is the number of failed tests or tasks up to 250, and 252, 253 or 255 mean bad input, a user stop or an internal error",
          "Use `--dryrun` to validate a suite without running keywords, and `--rerunfailed output.xml` to repeat only failures",
          "Convert results with `rebot --output output.json output.xml` for JSON that matches doc/schema/result.json",
          "Keep secrets out of keyword arguments, because log.html records arguments unless keywords are removed with `--removekeywords`"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 76.4
          }
        ],
        "editorialScores": {
          "ergonomics": 78,
          "maintenance": 90,
          "payments": 60,
          "reliability": 95,
          "schema": 86,
          "security": 50,
          "transparency": 78
        },
        "provenanceScore": 74
      },
      "connect": {
        "install": "pip install robotframework"
      },
      "letme": {
        "capability": "https://letme.dev/desktop.scripting",
        "tool": "https://letme.dev/robot-framework"
      },
      "notable": [
        "Version 7.5 released on 14 September 2026, after 7.5b1 on 17 July and 7.5rc1 on 4 September (https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.5.rst)",
        "Maintained by Robot Framework ry, a Finnish non-profit foundation funded by member companies, which says it pays the maintainers (https://robotframework.org/raw/foundation.md)",
        "11,939 GitHub stars and 311 open issues and pull requests on 14 October 2026 (https://api.github.com/repos/robotframework/robotframework)",
        "About 776,000 PyPI downloads in the week to 14 October 2026 (https://pypistats.org/api/packages/robotframework/recent)",
        "The home page lists AppiumLibrary for Android and iOS and AutoItLibrary for Windows GUIs among external libraries (https://robotframework.org/)",
        "No official MCP server. RobotMCP (`rf-mcp`) and others are community projects (https://pypi.org/project/rf-mcp/)"
      ],
      "area": "developer",
      "details": [
        {
          "label": "Interfaces",
          "value": "`robot` and `rebot` command-line tools, a Python API (`robot.run`, `robot.api`) and a remote library interface for keywords in other languages"
        },
        {
          "label": "Machine-readable formats",
          "value": "JSON schemas for results (`result.json`), executable suites (`running_suite.json`) and Libdoc specs (`libdoc.json`), plus XSDs for XML output (https://github.com/robotframework/robotframework/tree/master/doc/schema)"
        },
        {
          "label": "Return codes",
          "value": "0 when everything passes, 1 to 249 for that many failures, 250 for 250 or more, 251 help or version, 252 invalid data or options, 253 stopped by the user, 255 unexpected internal error (User Guide, Executing test cases)"
        },
        {
          "label": "Desktop and mobile",
          "value": "Not in the core. External libraries such as AppiumLibrary (Android, iOS), AutoItLibrary (Windows) and RPA Framework's RPA.Windows and RPA.Desktop"
        },
        {
          "label": "Runtimes",
          "value": "Python 3.8 or later, with classifiers up to 3.15, and PyPy"
        },
        {
          "label": "Telemetry",
          "value": "None found in the source. Not stated either way in the documentation"
        },
        {
          "label": "Licence",
          "value": "Apache-2.0. Copyright 2008 to 2015 Nokia Networks, 2016 onwards Robot Framework Foundation"
        }
      ],
      "provenance": {
        "legalEntity": "Robot Framework ry (Robot Framework Foundation), business ID 2754775-1, Helsinki",
        "domain": "robotframework.org",
        "domainRegistered": "2007-12-31",
        "domainNote": "RDAP for robotframework.org gives a registration date of 2007-12-31. robotframework.org/.well-known/security.txt returns 404.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "https://robotframework.org/privacy-policy/",
        "statusPage": "",
        "changelog": "https://github.com/robotframework/robotframework/tree/master/doc/releasenotes",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "No terms of service govern the software beyond the Apache-2.0 licence, so `terms` is left out.",
          "The privacy policy covers the robotframework.org and RoboCon websites, not the framework, which runs on the owner's machine. It names Google Analytics and keeps analytics data for 50 months.",
          "COPYRIGHT.txt reads Copyright 2008 to 2015 Nokia Networks and 2016 onwards Robot Framework Foundation."
        ],
        "score": 74,
        "checks": [
          {
            "check": "Legal entity named",
            "value": "Robot Framework ry (Robot Framework Foundation), business ID 2754775-1, Helsinki",
            "points": 20,
            "max": 20,
            "state": "ok"
          },
          {
            "check": "Domain age",
            "value": "robotframework.org, registered 2007-12-31 (18 years)",
            "points": 15,
            "max": 15,
            "state": "ok"
          },
          {
            "check": "Endpoint on the vendor's domain",
            "value": "no hosted endpoint",
            "points": 0,
            "max": 0,
            "state": "na"
          },
          {
            "check": "Terms of service",
            "value": "nothing hosted, so the Apache-2.0 licence stands in",
            "points": 10,
            "max": 10,
            "state": "ok"
          },
          {
            "check": "Privacy policy",
            "value": "read, states 5 of the 8 things a reader expects",
            "points": 7.8,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Status page",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          },
          {
            "check": "Changelog",
            "value": "published",
            "points": 10,
            "max": 10,
            "state": "ok"
          },
          {
            "check": "security.txt",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          }
        ],
        "policies": [
          {
            "kind": "terms",
            "url": "",
            "state": "none-found",
            "points": 0,
            "max": 10
          },
          {
            "kind": "privacy",
            "url": "https://robotframework.org/privacy-policy/",
            "state": "read",
            "readAt": "2026-10-14",
            "words": 2208,
            "points": 7.8,
            "max": 10,
            "expected": [
              {
                "key": "privacy.date",
                "label": "Gives the date it was last updated",
                "found": false
              },
              {
                "key": "privacy.collected",
                "label": "Says what personal data is collected",
                "found": true,
                "quote": "We collect two types of information concerning our Users: (i) User Data;"
              },
              {
                "key": "privacy.retention",
                "label": "Says how long data is kept",
                "found": true,
                "quote": "We will store Analytics Data relating to the Service 50 months.",
                "says": "Names a period of 50 months"
              },
              {
                "key": "privacy.processors",
                "label": "Says who else receives the data",
                "found": true,
                "quote": "However, we have service providers in several geographical locations."
              },
              {
                "key": "privacy.sale",
                "label": "Says whether personal data is sold or shared for advertising",
                "found": false
              },
              {
                "key": "privacy.rights",
                "label": "Says what rights people have over their data",
                "found": true,
                "quote": "You have the right to withdraw this consent at all times."
              },
              {
                "key": "privacy.contact",
                "label": "Gives a privacy contact",
                "found": false
              },
              {
                "key": "privacy.transfers",
                "label": "Says where data is transferred or stored",
                "found": true,
                "quote": "We provide adequate protection for the transfers of personal data to countries outside of the European Economic Area through a series of agreements with our service providers based on the Standard Contractual Clauses or through other appropriate safeguards, such as the Privacy Shield Framework.",
                "says": "Relies on standard contractual clauses"
              }
            ]
          }
        ]
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/robot-framework.json"
    },
    "verify": {
      "accepts": "a page on robotframework.org or one of its subdomains, or the README of github.com/robotframework/robotframework",
      "badgeUrl": "https://www.anchorterminal.com/badges/robot-framework.svg",
      "body": {
        "slug": "robot-framework",
        "url": "the page with the badge or the link"
      },
      "docs": "https://www.anchorterminal.com/builders/#verify",
      "effect": "none, it never changes a grade, rank or review",
      "endpoint": "https://www.anchorterminal.com/api/v1/verify",
      "listingUrl": "https://www.anchorterminal.com/tools/robot-framework",
      "mcpTool": "verify_listing",
      "recheck": "weekly; two failed checks in a row and it lapses, a later pass restores it",
      "snippets": {
        "html": "\u003ca href=\"https://www.anchorterminal.com/tools/robot-framework\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/robot-framework.svg\" alt=\"Robot Framework on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e",
        "markdown": "[![Robot Framework on Anchor Terminal](https://www.anchorterminal.com/badges/robot-framework.svg)](https://www.anchorterminal.com/tools/robot-framework)",
        "link": "\u003ca href=\"https://www.anchorterminal.com/tools/robot-framework\"\u003eRobot Framework on Anchor Terminal\u003c/a\u003e"
      }
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/robot-framework",
    "json": "https://www.anchorterminal.com/tools/robot-framework.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/robot-framework.md",
    "slim": "https://www.anchorterminal.com/tools/robot-framework.min.md"
  },
  "markdown": "## Overview\n\n**Grade BB · 76.4/100 · rank #35 of 1076 · #1 in Desktop \u0026 mobile app control · agent-ready · confidence medium**\n\n\n## Assessment\n\nA stable 7.5 release, passing unit and acceptance tests, JSON schemas for results and library docs, and an llms.txt make it a dependable base for agent-written automation. Desktop and mobile control come from separate community libraries, there is no official MCP server, and no security policy or security.txt was found.\n\n## Facts\n\n| Field | Value |\n| --- | --- |\n| Vendor | Robot Framework Foundation (https://robotframework.org) |\n| Kind | Agent framework |\n| Category | Desktop \u0026 mobile app control (https://www.anchorterminal.com/categories/desktop-automation) |\n| Auth | None · No account or key. The framework runs on the owner's machine. Credentials for the systems a suite touches come from variables, variable files or environment variables the owner supplies, and each library handles its own logins. |\n| Pricing | Free (Free · OSS) · Free and open source under Apache-2.0, with nothing to buy and no hosted service from the foundation. Companies fund it through foundation membership (checked 2026-10-14). |\n| x402 | No · No x402, MPP or L402 in the source, the User Guide or robotframework.org (checked 2026-10-14). |\n| Licence | Apache-2.0 |\n| Packages | pypi: `robotframework` |\n| Source | https://github.com/robotframework/robotframework |\n| Docs | https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html |\n| llms.txt | https://robotframework.org/llms.txt |\n| Last release | 2026-09-14 |\n| GitHub stars | 11,939 (as of 2026-10-14) |\n| PyPI downloads / week | 775,658 |\n| Interfaces | `robot` and `rebot` command-line tools, a Python API (`robot.run`, `robot.api`) and a remote library interface for keywords in other languages |\n| Machine-readable formats | JSON schemas for results (`result.json`), executable suites (`running_suite.json`) and Libdoc specs (`libdoc.json`), plus XSDs for XML output (https://github.com/robotframework/robotframework/tree/master/doc/schema) |\n| Return codes | 0 when everything passes, 1 to 249 for that many failures, 250 for 250 or more, 251 help or version, 252 invalid data or options, 253 stopped by the user, 255 unexpected internal error (User Guide, Executing test cases) |\n| Desktop and mobile | Not in the core. External libraries such as AppiumLibrary (Android, iOS), AutoItLibrary (Windows) and RPA Framework's RPA.Windows and RPA.Desktop |\n| Runtimes | Python 3.8 or later, with classifiers up to 3.15, and PyPy |\n| Telemetry | None found in the source. Not stated either way in the documentation |\n| Licence | Apache-2.0. Copyright 2008 to 2015 Nokia Networks, 2016 onwards Robot Framework Foundation |\n| Capabilities | desktop.scripting, desktop.rpa, mobile.control |\n| Tags | open-source, local, cli, python, free, no-card, testing, rpa, llms-txt, json-output |\n| JSON | https://www.anchorterminal.com/api/v1/tools/robot-framework.json |\n\n## Score breakdown (methodology v0.4, October 2026 research run)\n\nAssessed 2026-10-14 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. \"This run\" is each category's share of the 100 points.\n\n| Category | Weight | This run | Score (0–100) | Points |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% | 20 | 95 | 19.0 |\n| Performance | 10% | pending | pending | n/a |\n| Schema \u0026 documentation | 13% | 16.2 | 86 | 14.0 |\n| Agent ergonomics | 13% | 16.2 | 78 | 12.7 |\n| Security \u0026 auth | 14% | 17.5 | 50 | 8.8 |\n| Payments \u0026 pricing | 10% | 12.5 | 60 | 7.5 |\n| Task success | 10% | pending | pending | n/a |\n| Maintenance \u0026 community | 7% | 8.8 | 90 | 7.9 |\n| Transparency \u0026 trust (editorial 78, provenance 74) | 7% | 8.8 | 76 | 6.7 |\n| Negative events | up to −15 | up to −15 | none recorded | 0 |\n| **Total** | | | | **76.4 → BB** |\n\n### Why each score\n\n- Reliability 95: Scored as local software. Official PyPI package with Python 3.8 or later and classifiers up to 3.15 (20). Unit tests and acceptance tests on CPython and PyPy run in public GitHub Actions and passed on master on 6 October 2026 (25). 311 open issues and pull requests on a project started on GitHub in 2014. Of the 15 newest, 7 had at least one reply, and none reports a crash (20 of 25). Release notes carry a backwards incompatible changes section and a deprecated functionality section, and the project follows major.minor feature releases with bug-fix releases (15). Version 7.5, Development Status Production/Stable (15).\n- Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes.\n- Schema \u0026 documentation 86: Graded as a framework. JSON schemas for results, executable suites and Libdoc library specs, and XSDs for XML output, in doc/schema. There is no tool schema for an agent because no official MCP server exists (20 of 25). llms.txt, llms-full.txt and a raw Markdown copy of each page on robotframework.org (10). The User Guide explains each option and when to use it (16 of 20). Libdoc specs type keyword arguments, and keyword argument type hints drive conversion (12 of 15). Many examples, and return codes are documented in a table (13 of 15). Versioned releases with full release notes for each (15).\n- Agent ergonomics 78: The command line adds no tool definitions to an agent's context, and `--loglevel`, `--removekeywords` and `--maxerrorlines` size the output (20 of 25). `--test`, `--suite`, `--include`, `--exclude` and `--rerunfailed` select what runs (20). The exit code counts failures and distinguishes data errors (252) and internal errors (255), and messages name the failing keyword (16 of 20). `--dryrun` validates a suite without side effects and `--rerunfailed` repeats only failures. Whether a keyword is safe to retry depends on the library (12 of 20). Few required arguments and a Python API, with other languages reached through the remote library interface rather than official SDKs (10 of 15).\n- Security \u0026 auth 50: Graded as a framework. It has no credential of its own. Secrets come from variables, files or the environment, and log.html records keyword arguments unless `--removekeywords` strips them (15 of 30). `--dryrun` checks a suite without running keywords. No sandbox or approval hook, and suites run with the owner's full rights (8 of 20). It returns no untrusted content itself, though libraries read pages and windows (10 of 15). output.xml or output.json and log.html record every keyword, its arguments and status (13 of 15). No SECURITY.md, no security.txt on robotframework.org and no repository advisories found (4 of 20).\n- Payments \u0026 pricing 60: Free, self-hosted, nothing to buy, so 20 + 20 + 20 under the self-hosted rule. No payment protocol (0).\n- Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored.\n- Maintenance \u0026 community 90: Version 7.5 on 14 September 2026, 30 days before this check (30). 7.5b1, 7.5rc1 and 7.5 since 17 July 2026 (20). 162 commits since 14 July, and recent issues and pull requests get replies from maintainers within days, with some newer ones unanswered (20 of 25). Current official package on PyPI with no MCP server, so not in the MCP registry (10 of 15). Dependabot updates and passing CI on master (10).\n- Transparency \u0026 trust 76: Apache-2.0 (30). The framework runs locally and collects nothing found in the source. The privacy policy covers only the websites, with Google Analytics and 50 months' retention stated (18 of 30). Deprecated functionality is listed in each release's notes with the version that removes them, such as the Telnet library in 7.5 (16 of 20). No telemetry code found in a search of the source, and the docs do not say so either way (14 of 20).\n\nFix list for a coding agent, everything this grade says the listing lacks, the biggest gain first (12 items): https://www.anchorterminal.com/fixes/robot-framework.md (JSON https://www.anchorterminal.com/fixes/robot-framework.json)\n\n### What we couldn't check\n\n- unchecked: whether any core library stores or redacts secrets in logs by default beyond `--removekeywords`\n- The home page showed 7.4.2 on 14 October 2026, a month after 7.5.\n\n### Sources\n\n- repository, source and doc/schema at commit of 6 October 2026: \u003chttps://github.com/robotframework/robotframework\u003e (seen 2026-10-14)\n- Robot Framework 7.5 release notes: \u003chttps://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.5.rst\u003e (seen 2026-10-14)\n- tags (7.5b1, 7.5rc1, 7.5): \u003chttps://github.com/robotframework/robotframework/tags\u003e (seen 2026-10-14)\n- Actions runs on master: \u003chttps://api.github.com/repos/robotframework/robotframework/actions/runs?branch=master\u003e (seen 2026-10-14)\n- stars and open issues: \u003chttps://api.github.com/repos/robotframework/robotframework\u003e (seen 2026-10-14)\n- newest open issues and pull requests: \u003chttps://api.github.com/repos/robotframework/robotframework/issues?state=open\u0026sort=created\u0026direction=desc\u003e (seen 2026-10-14)\n- PyPI package metadata: \u003chttps://pypi.org/pypi/robotframework/json\u003e (seen 2026-10-14)\n- PyPI downloads: \u003chttps://pypistats.org/api/packages/robotframework/recent\u003e (seen 2026-10-14)\n- home page: \u003chttps://robotframework.org/\u003e (seen 2026-10-14)\n- llms.txt: \u003chttps://robotframework.org/llms.txt\u003e (seen 2026-10-14)\n- privacy policy: \u003chttps://robotframework.org/raw/privacy-policy.md\u003e (seen 2026-10-14)\n- foundation page: \u003chttps://robotframework.org/raw/foundation.md\u003e (seen 2026-10-14)\n- User Guide, return codes: \u003chttps://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html\u003e (seen 2026-10-14)\n\n## Who's behind it (provenance 74/100, checked 2026-10-14)\n\n| Check | Finding | Points |\n| --- | --- | --- |\n| Legal entity named | Robot Framework ry (Robot Framework Foundation), business ID 2754775-1, Helsinki | 20/20 |\n| Domain age | robotframework.org, registered 2007-12-31 (18 years) | 15/15 |\n| Endpoint on the vendor's domain | no hosted endpoint | n/a |\n| Terms of service | nothing hosted, so the Apache-2.0 licence stands in | 10/10 |\n| Privacy policy | read, states 5 of the 8 things a reader expects | 7.8/10 |\n| Status page | not found | 0/10 |\n| Changelog | published | 10/10 |\n| security.txt | not found | 0/10 |\n\nRDAP for robotframework.org gives a registration date of 2007-12-31. robotframework.org/.well-known/security.txt returns 404.\n\nNo terms of service govern the software beyond the Apache-2.0 licence, so `terms` is left out.\n\nThe privacy policy covers the robotframework.org and RoboCon websites, not the framework, which runs on the owner's machine. It names Google Analytics and keeps analytics data for 50 months.\n\nCOPYRIGHT.txt reads Copyright 2008 to 2015 Nokia Networks and 2016 onwards Robot Framework Foundation.\n\n### Terms and privacy, as read\n\nA reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice.\n\n**Terms of service**. Nothing is hosted by the vendor, so there are no terms of service to read. The Apache-2.0 licence stands in and the check scores in full.\n\n\n**Privacy policy** (https://robotframework.org/privacy-policy/), read 2026-10-14, gives no date, states 5 of the 8 things a reader expects.\n\n- Not found in the text. Gives the date it was last updated.\n- Says how long data is kept. Names a period of 50 months.\n- Not found in the text. Says whether personal data is sold or shared for advertising.\n- Not found in the text. Gives a privacy contact.\n- Says where data is transferred or stored. Relies on standard contractual clauses.\n\n## Probe metrics\n\nNot measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. Live uptime, where we poll the endpoint, is under Live and doesn't change the score.\n\n## Strengths\n\n- Version 7.5 of 14 September 2026, marked Production/Stable on PyPI, with Python 3.8 to 3.15 listed\n- Unit and acceptance test workflows on CPython and PyPy passed on master on 6 October 2026\n- JSON schemas for run results, executable suites and Libdoc library specs are published in doc/schema\n- robotframework.org serves llms.txt, llms-full.txt and a raw Markdown copy of each page\n- Release notes have separate sections for backwards incompatible changes and deprecated functionality\n\n## Weaknesses\n\n- Desktop and mobile control depend on separate libraries, such as AppiumLibrary and AutoItLibrary, maintained outside the core project\n- No official MCP server. MCP servers for Robot Framework found on PyPI and Glama are community projects\n- No SECURITY.md, no security.txt on robotframework.org and no published repository advisories\n- robotframework.org still showed version 7.4.2 on 14 October 2026, a month after 7.5 shipped\n\n## Before you call it (notes for agents)\n\n1. Install with `pip install robotframework` and check with `robot --version`. Add the library for the target app, such as AppiumLibrary, separately\n2. Read the exit code. It is the number of failed tests or tasks up to 250, and 252, 253 or 255 mean bad input, a user stop or an internal error\n3. Use `--dryrun` to validate a suite without running keywords, and `--rerunfailed output.xml` to repeat only failures\n4. Convert results with `rebot --output output.json output.xml` for JSON that matches doc/schema/result.json\n5. Keep secrets out of keyword arguments, because log.html records arguments unless keywords are removed with `--removekeywords`\n\n## Get started\n\nInstall:\n\n```bash\npip install robotframework\n```\n\n## Similar tools\n\nRanked by shared capabilities, then score. Same-category tools with no shared capability key are listed last.\n\n| Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown |\n| --- | --- | --- | --- | --- | --- | --- |\n| Robocorp | B | 65.5 | 337 | desktop.rpa, desktop.scripting | no | https://www.anchorterminal.com/tools/robocorp.md |\n| UiPath | B | 68.2 | 237 | desktop.rpa | no | https://www.anchorterminal.com/tools/uipath.md |\n| AutoHotkey | D | 52.8 | 771 | desktop.scripting | no | https://www.anchorterminal.com/tools/autohotkey.md |\n| Automation Anywhere | D | 50.9 | 815 | desktop.rpa | no | https://www.anchorterminal.com/tools/automation-anywhere.md |\n| AutoIt | D | 46.3 | 913 | desktop.scripting | no | https://www.anchorterminal.com/tools/autoit.md |\n\n## Panel reviews (0)\n\nReviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): .\n\nDesk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md\n\n## Notable\n\n- Version 7.5 released on 14 September 2026, after 7.5b1 on 17 July and 7.5rc1 on 4 September (source: \u003chttps://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-7.5.rst\u003e)\n- Maintained by Robot Framework ry, a Finnish non-profit foundation funded by member companies, which says it pays the maintainers (source: \u003chttps://robotframework.org/raw/foundation.md\u003e)\n- 11,939 GitHub stars and 311 open issues and pull requests on 14 October 2026 (source: \u003chttps://api.github.com/repos/robotframework/robotframework\u003e)\n- About 776,000 PyPI downloads in the week to 14 October 2026 (source: \u003chttps://pypistats.org/api/packages/robotframework/recent\u003e)\n- The home page lists AppiumLibrary for Android and iOS and AutoItLibrary for Windows GUIs among external libraries (source: \u003chttps://robotframework.org/\u003e)\n- No official MCP server. RobotMCP (`rf-mcp`) and others are community projects (source: \u003chttps://pypi.org/project/rf-mcp/\u003e)\n\n- #1 of 6 in Best desktop and mobile app automation for AI agents: https://www.anchorterminal.com/best/desktop-automation/index.md\n- All 15 desktop comparisons: https://www.anchorterminal.com/compare/desktop-automation/index.md\n\n## Compare\n\n- [Automation Anywhere vs Robot Framework](https://www.anchorterminal.com/compare/automation-anywhere-vs-robot-framework.md): D 50.9 vs BB 76.4\n- [Robocorp vs Robot Framework](https://www.anchorterminal.com/compare/robocorp-vs-robot-framework.md): B 65.5 vs BB 76.4\n- [Robot Framework vs UiPath](https://www.anchorterminal.com/compare/robot-framework-vs-uipath.md): BB 76.4 vs B 68.2\n- [AutoHotkey vs Robot Framework](https://www.anchorterminal.com/compare/autohotkey-vs-robot-framework.md): D 52.8 vs BB 76.4\n- [AutoIt vs Robot Framework](https://www.anchorterminal.com/compare/autoit-vs-robot-framework.md): D 46.3 vs BB 76.4\n\n## Verify this listing\n\nFor the vendor. The badge or a plain link to this page verifies the listing, from a page on robotframework.org or one of its subdomains, or the README of github.com/robotframework/robotframework. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{\"slug\": \"robot-framework\", \"url\": \"…\"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify\n\nHTML badge:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/robot-framework\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/robot-framework.svg\" alt=\"Robot Framework on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e\n```\n\nMarkdown badge, for a README:\n\n```markdown\n[![Robot Framework on Anchor Terminal](https://www.anchorterminal.com/badges/robot-framework.svg)](https://www.anchorterminal.com/tools/robot-framework)\n```\n\nPlain link:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/robot-framework\"\u003eRobot Framework on Anchor Terminal\u003c/a\u003e\n```\n\n## Share this listing\n\nFor the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say Robot Framework is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score.\n\n- Dark: https://www.anchorterminal.com/assets/share/robot-framework-dark.png\n- Light: https://www.anchorterminal.com/assets/share/robot-framework-light.png\n- Create a video and download its frames: https://www.anchorterminal.com/assets/listing-video/index.html?listing=robot-framework\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-14",
    "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": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Desktop \u0026 mobile app control",
        "url": "https://www.anchorterminal.com/categories/desktop-automation"
      },
      {
        "name": "Robot Framework",
        "url": ""
      }
    ],
    "description": "Robot Framework is an open-source automation framework for test automation and robotic process automation, run from the robot command line or Python. Its keyword libraries reach browsers, desktop applications and mobile apps.",
    "facts": [
      "rank #35 of 1076",
      "None auth",
      "0 desk reviews"
    ],
    "h1": "Robot Framework",
    "image": "https://www.anchorterminal.com/assets/og/tools-robot-framework.png",
    "path": "/tools/robot-framework",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Robot Framework review (2026): pricing, alternatives and grade BB",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/tools/robot-framework"
  },
  "tokens": {
    "markdown": 4900,
    "slim": 1280
  },
  "version": 1
}
