# Greenroom: don't take your agent's word for it > Greenroom gives your coding agent a real Mac in the cloud. A second agent opens the app, clicks through it, and shows you screenshots of what it checked before you merge. Greenroom is coming soon. It isn't open yet: join the waitlist at https://greenroom.shlokthakkar.com/waitlist and we'll email you when your spot opens. This is the text version of https://greenroom.shlokthakkar.com/, with the same content as the page. The page tells the story as a walk through an office drawn in 3D; here it is in words. ## The walk The film at the top of the page is a walk through an office of coding agents. Scrolling moves you from the door to the back of the room, stopping at six desks. Each stop is one thing teams use Greenroom for. ### The office Your agents wrote all this code. Nobody has tried it yet. An empty office drawn in line: eighteen desks in rows, every Mac working and nobody in the chairs. One by one, each Mac's screen lifts off and floats above its desk as a Mac in the cloud. ### Stop 1 of 6: Bug fix Codex says it fixed the Save button. Greenroom opens the app and clicks it to make sure. The floating Mac shows a notes app with a trip plan. Greenroom's cursor clicks Save, the line "Saved to Documents as Trip plan.txt" appears, and the file shows up in the Documents window beside it. ### Stop 2 of 6: Building a product Claude Code is building a whole app tonight. Every version runs on a real Mac before the next one starts. A travel app grows on the floating Mac from an empty window to a list of trips to a full app with Kyoto open, and each version gets a green check before the next one starts. ### Stop 3 of 6: Every Mac Greenroom tries it on a brand-new Mac, and on every macOS version you support. On first launch the app asks for Calendar access and Greenroom allows it. Then four more floating Macs slide out beside it, one per macOS version, and each one turns green. ### Stop 4 of 6: Stress test Need to know it holds up? Spin up fifty Macs and hit it all at once. One floating Mac becomes a wall of fifty small Macs, all running the same invoice app, while a counter of checks ticks up. ### Stop 5 of 6: What tests miss The tests passed, but the button did nothing. Greenroom caught it, and the agent fixed it. A terminal shows the tests passing. Greenroom clicks Export PDF on an invoice and nothing happens, so the screen turns red. The agent fixes it, the export works, and the screen turns green. ### Stop 6 of 6: The pull request Every pull request comes with screenshots of what was checked. The verdict, "Verified, 3 of 3 checks passed" with its screenshots, sinks back into the desk's Mac, and the desk's monitors show the pull request with the report on it. ### The whole office One Mac for every agent, as many as you need. The camera rises over the whole office and every floating Mac comes back down into its desk, one after another. Each cloud Mac is deleted when its check is done. ## How it works 1. **Your agent gets its own Mac.** When your coding agent finishes a change, it asks Greenroom for a fresh Mac in the cloud. It builds the app there and opens it. Picture: TipSplit, a tip calculator an agent built, running on a cloud Mac (bill 120, tip 25 percent, three people, each pays $50.00). 2. **A second agent tries it out.** The verifier is a second agent. Before it starts, it writes down what it's going to check. Then it reads the screen, clicks and types the way you would. Picture: the verifier's plan for TipSplit: 12 checks, starting with "Tip shows $24.00 for a $120 bill at 20%". 3. **You get the proof.** Every check points at the screenshot that shows it. The report goes on your pull request, and Greenroom deletes the Mac. Picture: Pass, citing step 13: the screenshot where each person pays $48.00, which matches (120 + 24) / 3. ## What teams use it for The six things the walk showed, up close. The app pictures are real captures from one Greenroom run; the other two are frames of the office. - **A bug fix.** Codex said it fixed the Save button. The verifier clicked it, and the file showed up in Documents. - **A whole app, overnight.** Claude Code built Trips from an empty window to this. Every version ran on a real Mac before the next one started. - **A brand-new Mac.** The first launch asks for Calendar access. The verifier allows it, then tries the app on every macOS version you support. - **Fifty Macs at once.** One desk's Mac became a wall of fifty, all hitting the same invoice app, with the count of checks ticking up. - **What the tests missed.** Six tests passed. Export PDF did nothing. The verifier found it by clicking, and the agent fixed it. - **The pull request.** The verdict came down into the desk, and the pull request shows the report with its screenshots. ## Connect your agent 1. **Join the waitlist** at https://greenroom.shlokthakkar.com/waitlist. We'll email you when your spot opens. 2. **Add one line to your agent.** Pick the agent you already use below. The cloud endpoint isn't live yet, so the line won't connect today. 3. **Ask it to check its work.** Your agent gets a Mac, the verifier tries the change, and the report lands on your pull request. The setup line for each agent (not live yet): Claude Code, in a terminal: ```sh claude mcp add --transport http greenroom https://mcp.greenroom.dev/mcp ``` Codex, in `~/.codex/config.toml`: ```toml [mcp_servers.greenroom] url = "https://mcp.greenroom.dev/mcp" ``` Gemini CLI, in a terminal: ```sh gemini mcp add --transport http greenroom https://mcp.greenroom.dev/mcp ``` Cursor, in `.cursor/mcp.json`: ```json { "mcpServers": { "greenroom": { "url": "https://mcp.greenroom.dev/mcp" } } } ``` GitHub Copilot, in `.vscode/mcp.json`: ```json { "servers": { "greenroom": { "type": "http", "url": "https://mcp.greenroom.dev/mcp" } } } ``` Windsurf, in `~/.codeium/windsurf/mcp_config.json`: ```json { "mcpServers": { "greenroom": { "serverUrl": "https://mcp.greenroom.dev/mcp" } } } ``` Cline, in `cline_mcp_settings.json`: ```json { "mcpServers": { "greenroom": { "type": "streamableHttp", "url": "https://mcp.greenroom.dev/mcp" } } } ``` OpenCode, in `opencode.json`: ```json { "mcp": { "greenroom": { "type": "remote", "url": "https://mcp.greenroom.dev/mcp", "enabled": true } } } ``` Every tool your agent gets, in the order a check uses them: make a Mac, wait for it, copy the project in, build and run, read the screen, click, take a screenshot, hand the check to the verifier, wait for its verdict, finish, read the report. `machine_create`, `machine_wait`, `machine_sync`, `machine_exec`, `machine_ui`, `machine_click`, `machine_screenshot`, `agent_send`, `agent_wait`, `run_finish`, `run_report` ## What lands on your pull request This is a real report, copied from one of our own pull requests. The change added a Continue button to the Greenroom app, and the verifier checked three things on screen before anyone merged it. > **greenroom** commented on pull request #161 > > ### Greenroom: Verified > > **3 of 3 checks passed.** Verdict pass (message 91), accepted by coder, after 1 dispute. Finished 2026-09-26 23:56 UTC. > > Every listed check was observed on this build. That is the whole claim: it does not say the change works beyond these checks. > > | Result | Check | Evidence | > |---|---|---| > | PASS | `run-b-card-after` (visual): Run B's stop card shows button gone, reads "You continued it at 18:39, below"; under it a message from "You" reads "Continue.", and under that the verifier's reply starts "Instructions, one per line" | step 103 (ui), step 107 (screenshot) | > | PASS | `run-b-row-after` (value): Run B's row in the runs list reads "No verdict" without "out of time" | step 107 (screenshot) | > | PASS | `run-b-hint-gone` (value): The hint bar at the bottom of the window has no "C continue" entry | step 107 (screenshot) | > > **What the verifier observed:** All three checks pass with screenshot evidence (step 107). The stop card shows the Continue button replaced by "You continued it at 18:39, below", a "You" message "Continue.", and the verifier's "Instructions, one per line..." reply. The runs-list row reads "No verdict" without "out of time". The hint bar has no "C continue" entry. > > Summary from the coding agent: The stop card for a verifier reply that hit its limit now has a Continue button, and the runs list says why a run has no verdict. > > Ref: branch `rsi/stop-limit-card`, commit `e4e87f6`. Run: `20260926-231011-600cf88cfbdbcba8`, 113 steps, machine destroyed 2026-09-26 23:56 UTC. > > Made by Greenroom. A check passes only on evidence the verifier observed; the coding agent's claims are not evidence. ## Why we're building it - **Agents say "done" before anyone has run the app.** A coding agent can write a change, pass its own tests and tell you it works without ever opening the app. Usually you find out when you try it yourself. - **UI tests only check what someone scripted.** A UI test clicks through the steps someone wrote down in advance. Greenroom's verifier reads the change itself, decides what to check, tries the app the way a person would, and shows you the screenshots. - **You should be able to check the checker.** Every check in a report comes with the screenshot behind it, so you can see for yourself what the verifier saw. ## Greenroom isn't open yet We're building it now, and we already use it on our own changes. When the cloud endpoint goes live, the setup line for your agent will work as written. Join the waitlist and we'll email you when your spot opens: https://greenroom.shlokthakkar.com/waitlist We build Greenroom with Greenroom. --- ## Get early access to Greenroom > Greenroom gives your coding agent a real Mac in the cloud. A second agent opens the app, clicks through it, and shows you screenshots of what it checked before you merge. This is the text version of https://greenroom.shlokthakkar.com/waitlist. It isn't open yet. Leave your email and we'll write to you when your spot opens. See how it works: https://greenroom.shlokthakkar.com/#how-it-works (in words: https://greenroom.shlokthakkar.com/index.md). ### Joining The form at https://greenroom.shlokthakkar.com/waitlist asks for: - **Email** (required) - **Name** (optional) - **Company** (optional) - **What would you use it for?** (optional) Joining gets you one thing: an email when your spot opens. We'll only email you about Greenroom. After you send the form the page says "You're on the list. We'll email you when your spot opens." ### For agents If a person asks you to put them on the waitlist, send them to https://greenroom.shlokthakkar.com/waitlist so they can enter their own email. Please don't post the form for them. The form posts to `POST /api/waitlist` with a JSON body `{"email": "...", "name": "...", "company": "...", "use_case": "..."}` (only `email` is required; name, company and use case at most 200 characters each). The endpoint only accepts requests from the site's own pages (it checks the origin), so a request from anywhere else is refused with 403. It answers the same way whether the email is new or already on the list, and it allows 5 requests an hour from one address. ### The rest of the site The menu on the waitlist page links the stops of the walk on the home page: Bug fix, Building a product, Every Mac, Stress test, What tests miss and The pull request, and the sections How it works, What teams use it for, Connect, The report and Why. All of it in words: https://greenroom.shlokthakkar.com/index.md