[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:gym-anything":3},"\u003Cdiv align=\"center\">\n    \u003Ch1>Gym-Anything: Turn Any Software into an Agent Environment\u003C\u002Fh1>\n    \u003Ca href=\"https:\u002F\u002Fcmu-l3.github.io\u002Fgym-anything\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fwebsite?down_message=down&amp;style=for-the-badge&amp;up_message=up&amp;url=https%3A%2F%2Fcmu-l3.github.io%2Fgym-anything\" \u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fcmu-l3.github.io\u002Fgym-anything\u002Fdocs\u002F\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocs-Read-blue?style=for-the-badge&amp;logo=readthedocs&amp;logoColor=white\" \u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2604.06126\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2604.06126-red.svg?style=for-the-badge\" \u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fcmu-l3.github.io\u002Fgym-anything\u002Finteractive_paper.html\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FInteractive-Paper-purple?style=for-the-badge\" \u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcmu-l3\u002Fgym-anything\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGitHub-Code-black?style=for-the-badge&amp;logo=github\" \u002F>\u003C\u002Fa>\n    \u003Cbr \u002F>\n\u003C\u002Fdiv>\u003Cbr \u002F>\u003Cp>Gym-Anything lets you test AI agents on real software — browsers, IDEs, medical records systems, CAD tools, and more — through a standard environment API.\u003C\u002Fp>\n\u003Ch2>Quickstart\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-bash\"># 1. Install (we recommend uv: https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F)\nuv venv --python 3.12\nsource .venv\u002Fbin\u002Factivate\nuv pip install -e \".[all]\"\n\n# 2. Check what's available on your machine, and help you set up the rest.\ngym-anything doctor\n\n# 3. Run an environment interactively\ngym-anything run moodle --task enroll_student -i --open-vnc\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Run A Benchmark End To End\u003C\u002Fh2>\n\u003Cp>Pick an environment, pick a task, pick an agent:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">gym-anything benchmark moodle --task enroll_student --agent ClaudeAgent --model claude-opus-4-6\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This starts the Moodle environment, resets it, hands the task to the agent, lets the agent interact with the application through screenshots and mouse\u002Fkeyboard actions, and runs the automatic checker when the agent finishes.\u003C\u002Fp>\n\u003Cp>To run across many tasks at once:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">gym-anything benchmark moodle --agent ClaudeAgent --model claude-opus-4-6 --split test\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Recommended: To run with default caching for the software, which is much faster for subsequent runs:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">gym-anything benchmark moodle --task enroll_student --agent ClaudeAgent --model claude-opus-4-6 --use-cache --cache-level default\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Three Independent Components\u003C\u002Fh2>\n\u003Cp>The framework is built around three parts that connect through shared contracts but can each be used or replaced independently:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>                  ┌──────────────┐\n                  │     Core     │\n                  └──┬───────┬───┘\n                   ▲ │       │ ▲\n                   │ ▼       ▼ │\n       ┌───────────┴─┐     ┌──┴────────────┐\n       │  Benchmarks │◄───►│    Agents     │\n       └─────────────┘     └───────────────┘\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>\u003Cstrong>Core\u003C\u002Fstrong> (\u003Ccode>src\u002Fgym_anything\u002F\u003C\u002Fcode>) — the runtime that starts environments, sends actions, captures observations, and runs verifiers. \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Benchmarks\u003C\u002Fstrong> (\u003Ccode>benchmarks\u002Fcua_world\u002F\u003C\u002Fcode>) — a ready-made collection of environments and tasks. Each environment wraps a real application; each task defines a specific job, a setup script, and an automatic checker.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Agents\u003C\u002Fstrong> (\u003Ccode>agents\u002F\u003C\u002Fcode>) — reference agent implementations (Claude, Gemini, Qwen, Kimi, and others). Bring your own or use ours.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can use Core alone with your own environments. You can plug any agent into the benchmarks. You can write a new benchmark without touching agent code.\u003C\u002Fp>\n\u003Ch2>Contributing\u003C\u002Fh2>\n\u003Cp>We welcome contributions — new tasks, new environments, bug fixes, and new agent implementations.\u003C\u002Fp>\n\u003Cp>The simplest way to contribute is to add a new task to an existing environment. Each task is self-contained in its own folder with a description, a setup script, and a verifier. See the \u003Ca href=\"https:\u002F\u002Fcmu-l3.github.io\u002Fgym-anything\u002Fdocs\u002Fbenchmarks\u002Ftasks-verifiers\u002F\" rel=\"nofollow ugc noopener\">docs on tasks and checks\u003C\u002Fa> for how these are structured.\u003C\u002Fp>\n\u003Cp>If you want to contribute a new environment or agent, start by reading the \u003Ca href=\"https:\u002F\u002Fcmu-l3.github.io\u002Fgym-anything\u002Fdocs\u002Fcontributing\u002F\" rel=\"nofollow ugc noopener\">contributing guide\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>Where To Read Next\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>[Installation](\u003Ca href=\"https:\u002F\u002Fcmu-l3\" rel=\"nofollow ugc noopener\">https:\u002F\u002Fcmu-l3\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n",1784240407301]