{
  "data": {
    "a": {
      "slug": "autohotkey",
      "name": "AutoHotkey",
      "vendor": "AutoHotkey Foundation",
      "vendorUrl": "https://www.autohotkey.com",
      "kind": "sdk",
      "category": "desktop-automation",
      "summary": "AutoHotkey is a free, open-source scripting language and interpreter for Windows that sends keystrokes and mouse input, manages windows and controls, and defines hotkeys. Agents run scripts through the `AutoHotkey64.exe` command line, including from standard input.",
      "url": "https://www.anchorterminal.com/tools/autohotkey",
      "markdownUrl": "https://www.anchorterminal.com/tools/autohotkey.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/autohotkey.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/autohotkey.json",
      "repo": "https://github.com/AutoHotkey/AutoHotkey",
      "license": "GPL-2.0",
      "transports": [],
      "packages": [],
      "auth": "none",
      "authNotes": "No account, key or credential. Scripts run with the rights of the Windows user who starts the interpreter, and reach every window, control, file and process that user can.",
      "pricing": "free",
      "pricingNotes": "Free and open source under GPL-2.0, with nothing to buy and no hosted service. The repository's FUNDING.yml takes donations (checked 2026-10-14).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the source, the documentation repository or the home page (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 13288,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://www.autohotkey.com/docs/v2/",
      "capabilities": [
        "desktop.control",
        "desktop.scripting"
      ],
      "tags": [
        "open-source",
        "local",
        "windows",
        "cli",
        "scripting",
        "free",
        "no-auth"
      ],
      "lastRelease": "2026-10-09",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 52.8,
        "grade": "D",
        "agentReady": false,
        "rank": 771,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 46,
          "maintenance": 72,
          "payments": 60,
          "reliability": 61,
          "schema": 54,
          "security": 24,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "An agent can write a script and run it through the command line, with a script read from standard input, `/Validate` and `/ErrorStdOut` for clean failures, and a function reference of 356 pages. It runs on Windows only with the user's full rights, and the repository has no CI or test suite.",
        "bestFor": "An agent automating Windows desktop apps on one machine by writing short scripts.",
        "strengths": [
          "Scripts can be piped to the interpreter on standard input with `*` as the filename",
          "`/Validate` checks a script without running it and exits non-zero on a load error",
          "Four 2.0.x bug-fix releases between 28 August and 9 October 2026, each in a dated changelog",
          "GPL-2.0 source, and no network code found in the interpreter",
          "Function reference of 356 pages with parameters, return values, errors raised and examples"
        ],
        "weaknesses": [
          "Windows only, and scripts act with every right of the user who runs them",
          "No CI workflow or test suite in the repository",
          "No security policy, security.txt or published advisory was found",
          "Bug reports go to a forum, and GitHub Issues was only switched on in October 2026",
          "Runtime errors open a dialog unless the script handles them with `OnError` or `try`"
        ],
        "agentNotes": [
          "Write output with `FileAppend text, \"*\"` and pipe the interpreter's output, since stdout does not appear at the console it was launched from",
          "Run `AutoHotkey64.exe /ErrorStdOut /Validate script.ahk` before running a new script",
          "Add `OnError` or `try` blocks so a runtime error does not leave a dialog open in an unattended run",
          "Target v2 syntax. v1 is unmaintained and its scripts do not run on v2"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 52.8
          }
        ],
        "editorialScores": {
          "ergonomics": 46,
          "maintenance": 72,
          "payments": 60,
          "reliability": 61,
          "schema": 54,
          "security": 24,
          "transparency": 73
        },
        "provenanceScore": 73
      },
      "connect": {
        "headless": {
          "run": "AutoHotkey64.exe /ErrorStdOut script.ahk arg1 arg2",
          "stdin": "type script.ahk | AutoHotkey64.exe /ErrorStdOut *",
          "validate": "AutoHotkey64.exe /ErrorStdOut /Validate script.ahk"
        }
      },
      "letme": {
        "capability": "https://letme.dev/desktop.control",
        "tool": "https://letme.dev/autohotkey"
      },
      "area": "developer",
      "provenance": {
        "legalEntity": "AutoHotkey Foundation LLC",
        "domain": "autohotkey.com",
        "domainRegistered": "2003-12-29",
        "domainNote": "The interpreter's version resource names AutoHotkey Foundation LLC as the company. RDAP for autohotkey.com gives a registration date of 2003-12-29.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://www.autohotkey.com/docs/v2/ChangeLog.htm",
        "securityTxt": "unknown",
        "checked": "2026-10-14",
        "notes": [
          "No terms of service or privacy policy for the software was found. The home page links the GNU GPLv2 and a code signing policy, and no privacy or terms link, so `terms` and `privacy` are left out.",
          "www.autohotkey.com answered curl with a Cloudflare challenge on 14 October 2026. One read of the home page succeeded, and later reads of robots.txt, security.txt and the code signing policy returned 403, so security.txt is recorded as unknown.",
          "The changelog URL is the published copy of docs/ChangeLog.htm in the AutoHotkeyDocs repository, which was read from the repository."
        ],
        "score": 73
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/autohotkey.json"
    },
    "answer": "Robot Framework scores 76.4 (BB) on agent readiness against AutoHotkey's 52.8 (D), and leads in 6 of 7 scored categories.",
    "b": {
      "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"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "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"
      },
      "area": "developer",
      "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
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/robot-framework.json"
    },
    "facts": [
      {
        "a": "SDK + MCP",
        "b": "Agent framework",
        "name": "Kind"
      },
      {
        "a": "AutoHotkey Foundation",
        "b": "Robot Framework Foundation",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "GPL-2.0",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-09",
        "b": "2026-09-14",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "13k stars",
        "b": "12k stars, 776k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Robot Framework scores 76.4 (BB) on agent readiness against AutoHotkey's 52.8 (D), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, AutoHotkey or Robot Framework?"
      },
      {
        "answer": "Yes. AutoHotkey is open source (GPL-2.0). Robot Framework is open source (Apache-2.0).",
        "question": "Are AutoHotkey and Robot Framework open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "An agent automating Windows desktop apps on one machine by writing short scripts.",
        "slug": "autohotkey",
        "watchFor": "Windows only, and scripts act with every right of the user who runs them"
      },
      {
        "aheadOn": [
          "Reliability, 95 against 61",
          "Schema \u0026 documentation, 86 against 54",
          "Agent ergonomics, 78 against 46",
          "Security \u0026 auth, 50 against 24",
          "Maintenance \u0026 community, 90 against 72"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Free to start without a card"
        ],
        "goodFor": "Agents that write or run keyword-driven test and RPA suites across web, desktop and mobile through libraries.",
        "slug": "robot-framework",
        "watchFor": "Desktop and mobile control depend on separate libraries, such as AppiumLibrary and AutoItLibrary, maintained outside the core project"
      }
    ],
    "job": {
      "capability": "desktop.scripting",
      "name": "Desktop scripting"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/autohotkey-vs-autoit.json",
        "title": "AutoHotkey vs AutoIt",
        "url": "https://www.anchorterminal.com/compare/autohotkey-vs-autoit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autohotkey-vs-automation-anywhere.json",
        "title": "AutoHotkey vs Automation Anywhere",
        "url": "https://www.anchorterminal.com/compare/autohotkey-vs-automation-anywhere"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autohotkey-vs-robocorp.json",
        "title": "AutoHotkey vs Robocorp",
        "url": "https://www.anchorterminal.com/compare/autohotkey-vs-robocorp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autohotkey-vs-uipath.json",
        "title": "AutoHotkey vs UiPath",
        "url": "https://www.anchorterminal.com/compare/autohotkey-vs-uipath"
      },
      {
        "json": "https://www.anchorterminal.com/compare/automation-anywhere-vs-robot-framework.json",
        "title": "Automation Anywhere vs Robot Framework",
        "url": "https://www.anchorterminal.com/compare/automation-anywhere-vs-robot-framework"
      },
      {
        "json": "https://www.anchorterminal.com/compare/robocorp-vs-robot-framework.json",
        "title": "Robocorp vs Robot Framework",
        "url": "https://www.anchorterminal.com/compare/robocorp-vs-robot-framework"
      },
      {
        "json": "https://www.anchorterminal.com/compare/robot-framework-vs-uipath.json",
        "title": "Robot Framework vs UiPath",
        "url": "https://www.anchorterminal.com/compare/robot-framework-vs-uipath"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autoit-vs-robot-framework.json",
        "title": "AutoIt vs Robot Framework",
        "url": "https://www.anchorterminal.com/compare/autoit-vs-robot-framework"
      }
    ],
    "scores": [
      {
        "autohotkey": 61,
        "by": 34,
        "edge": "robot-framework",
        "key": "reliability",
        "name": "Reliability",
        "robot-framework": 95,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "autohotkey": 54,
        "by": 32,
        "edge": "robot-framework",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "robot-framework": 86,
        "weight": 13
      },
      {
        "autohotkey": 46,
        "by": 32,
        "edge": "robot-framework",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "robot-framework": 78,
        "weight": 13
      },
      {
        "autohotkey": 24,
        "by": 26,
        "edge": "robot-framework",
        "key": "security",
        "name": "Security \u0026 auth",
        "robot-framework": 50,
        "weight": 14
      },
      {
        "autohotkey": 60,
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "robot-framework": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "autohotkey": 72,
        "by": 18,
        "edge": "robot-framework",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "robot-framework": 90,
        "weight": 7
      },
      {
        "autohotkey": 73,
        "by": 3,
        "edge": "robot-framework",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "robot-framework": 76,
        "weight": 7
      }
    ],
    "summary": "Robot Framework scores 76.4 (BB) on agent readiness against AutoHotkey's 52.8 (D), and leads in 6 of 7 scored categories. Both do desktop scripting.",
    "verdicts": {
      "autohotkey": "An agent can write a script and run it through the command line, with a script read from standard input, `/Validate` and `/ErrorStdOut` for clean failures, and a function reference of 356 pages. It runs on Windows only with the user's full rights, and the repository has no CI or test suite.",
      "robot-framework": "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/autohotkey-vs-robot-framework",
    "json": "https://www.anchorterminal.com/compare/autohotkey-vs-robot-framework.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/autohotkey-vs-robot-framework.md",
    "slim": "https://www.anchorterminal.com/compare/autohotkey-vs-robot-framework.min.md"
  },
  "markdown": "Robot Framework scores 76.4 (BB) on agent readiness against AutoHotkey's 52.8 (D), and leads in 6 of 7 scored categories. Both do desktop scripting.\n\n- AutoHotkey: grade D, 52.8/100, rank #771 of 1076. Markdown https://www.anchorterminal.com/tools/autohotkey.md · JSON https://www.anchorterminal.com/api/v1/tools/autohotkey.json\n- Robot Framework: grade BB, 76.4/100, rank #35 of 1076. Markdown https://www.anchorterminal.com/tools/robot-framework.md · JSON https://www.anchorterminal.com/api/v1/tools/robot-framework.json\n- 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## Which one, for what\n\n### AutoHotkey (D)\n\nGood for: An agent automating Windows desktop apps on one machine by writing short scripts.\n\nWatch for: Windows only, and scripts act with every right of the user who runs them\n\n### Robot Framework (BB)\n\nGood for: Agents that write or run keyword-driven test and RPA suites across web, desktop and mobile through libraries.\n\nAhead on:\n- Reliability, 95 against 61\n- Schema \u0026 documentation, 86 against 54\n- Agent ergonomics, 78 against 46\n- Security \u0026 auth, 50 against 24\n- Maintenance \u0026 community, 90 against 72\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Free to start without a card\n\nWatch for: Desktop and mobile control depend on separate libraries, such as AppiumLibrary and AutoItLibrary, maintained outside the core project\n\n\n## Score by category\n\n| Category | Weight | AutoHotkey | Robot Framework | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 61 | 95 | Robot Framework +34 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 54 | 86 | Robot Framework +32 |\n| Agent ergonomics | 13% (16.2 this run) | 46 | 78 | Robot Framework +32 |\n| Security \u0026 auth | 14% (17.5 this run) | 24 | 50 | Robot Framework +26 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 72 | 90 | Robot Framework +18 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 73 | 76 | Robot Framework +3 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **52.8 · D** | **76.4 · BB** | |\n\n## Facts side by side\n\n| Fact | AutoHotkey | Robot Framework |\n| --- | --- | --- |\n| Kind | SDK + MCP | Agent framework |\n| Vendor | AutoHotkey Foundation | Robot Framework Foundation |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | GPL-2.0 | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-09 | 2026-09-14 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | no date given |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 13k stars | 12k stars, 776k PyPI/wk |\n\n## Verdicts\n\n**AutoHotkey.** An agent can write a script and run it through the command line, with a script read from standard input, `/Validate` and `/ErrorStdOut` for clean failures, and a function reference of 356 pages. It runs on Windows only with the user's full rights, and the repository has no CI or test suite.\n\n**Robot Framework.** 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.\n\n## Before you call either\n\n### AutoHotkey\n\n1. Write output with `FileAppend text, \"*\"` and pipe the interpreter's output, since stdout does not appear at the console it was launched from\n2. Run `AutoHotkey64.exe /ErrorStdOut /Validate script.ahk` before running a new script\n3. Add `OnError` or `try` blocks so a runtime error does not leave a dialog open in an unattended run\n4. Target v2 syntax. v1 is unmaintained and its scripts do not run on v2\n\n### Robot Framework\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## Questions\n\n### Which is better for AI agents, AutoHotkey or Robot Framework?\n\nRobot Framework scores 76.4 (BB) on agent readiness against AutoHotkey's 52.8 (D), and leads in 6 of 7 scored categories.\n\n### Are AutoHotkey and Robot Framework open source?\n\nYes. AutoHotkey is open source (GPL-2.0). Robot Framework is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/autohotkey-vs-robot-framework.json, and with the fewest tokens: https://www.anchorterminal.com/compare/autohotkey-vs-robot-framework.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"autohotkey\", \"b\": \"robot-framework\"}`. From a terminal: `anchor compare autohotkey robot-framework`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/autohotkey.json and https://www.anchorterminal.com/api/v1/tools/robot-framework.json\n\n## Other comparisons with AutoHotkey or Robot Framework\n\n- [AutoHotkey vs AutoIt](https://www.anchorterminal.com/compare/autohotkey-vs-autoit.md)\n- [AutoHotkey vs Automation Anywhere](https://www.anchorterminal.com/compare/autohotkey-vs-automation-anywhere.md)\n- [AutoHotkey vs Robocorp](https://www.anchorterminal.com/compare/autohotkey-vs-robocorp.md)\n- [AutoHotkey vs UiPath](https://www.anchorterminal.com/compare/autohotkey-vs-uipath.md)\n- [Automation Anywhere vs Robot Framework](https://www.anchorterminal.com/compare/automation-anywhere-vs-robot-framework.md)\n- [Robocorp vs Robot Framework](https://www.anchorterminal.com/compare/robocorp-vs-robot-framework.md)\n- [Robot Framework vs UiPath](https://www.anchorterminal.com/compare/robot-framework-vs-uipath.md)\n- [AutoIt vs Robot Framework](https://www.anchorterminal.com/compare/autoit-vs-robot-framework.md)\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": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "AutoHotkey vs Robot Framework",
        "url": ""
      }
    ],
    "description": "Robot Framework scores 76.4 (BB) to AutoHotkey's 52.8 (D) for desktop scripting. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "AutoHotkey D 52.8",
      "Robot Framework BB 76.4",
      "scores"
    ],
    "h1": "AutoHotkey vs Robot Framework",
    "image": "https://www.anchorterminal.com/assets/og/compare-autohotkey-vs-robot-framework.png",
    "path": "/compare/autohotkey-vs-robot-framework",
    "published": "2026-10-01",
    "section": "tools",
    "title": "AutoHotkey vs Robot Framework for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/compare/autohotkey-vs-robot-framework"
  },
  "tokens": {
    "markdown": 1900,
    "slim": 530
  },
  "version": 1
}
