BrowserWing: replaying recorded browser actions as MCP commands instead of re-prompting an LLM
BrowserWing turns your browser actions into MCP commands Or Claude Skill, allowing AI agents to control browsers efficiently and reliably. Say goodbye to slow, token-heavy LLM interactions — let agents call commands directly for faster automation. Perfect for AI-driven tasks, browser automation, and boosting productivity.
At a glance
- What is it?
- BrowserWing is a Go binary with an embedded React frontend that records browser actions, replays them as named commands, and exposes them to AI agents over MCP or as a Claude Skill file. The core judgement: it is a script runner with an AI surface bolted on, not an agent that figures out the page for you.
- Who is it for?
- Adopt BrowserWing if you already know which sites you scrape or drive and you want those flows callable by an agent without paying tokens for every click. Skip it if your targets change shape often, if you cannot install Chrome or Chromium in the runtime, or if you need a hosted service rather than a localhost binary.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 39 days ago.
- What is it written in?
- Mainly Go, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The token cost problem BrowserWing is aimed at
The README frames the pitch as saying goodbye to slow, token-heavy LLM interactions. That is the whole thesis. When an agent drives a browser by looking at the DOM and deciding each step, every click costs a round trip and a chunk of context. A recorded script collapses that into one call. The README's own example is a single command, browserwing run github-trending, which returns data rather than a plan. The intended user is someone who repeats the same browser flow: pull trending repos, pull Bilibili hot list, pull Hacker News top stories. Those three are named in the README as runnable out of the box, and the badge states 78 built-in scripts. The second audience is agent builders who want a browser tool exposed through the Model Context Protocol rather than writing their own Playwright wrapper. If your automation is exploratory, where the agent must decide what to click based on what it sees, this design works against you: you have to record the path first, which means you already knew it.
How a recorded action becomes an MCP command
The mechanism visible in the material is a record, edit, replay pipeline with two export targets. The visual recorder captures browser actions; the UI lets you edit them; replay executes them. From there the README describes converting recorded scripts to MCP commands or Skills files. On the MCP side, the binary runs an HTTP server and exposes an endpoint at http://localhost:8080/api/v1/mcp/message, which is the URL you put in an MCP client config. So the flow is: Chrome does the work, the Go process holds the script and the HTTP surface, and the agent calls into that HTTP surface instead of driving the page itself. On the Skills side, the export is a SKILL.md file, and the README shows combining any scripts into one SKILL.md. That is a static artifact rather than a live endpoint, which matters for deployment: a Skill file ships with the agent, while the MCP route requires the browserwing process to be running and reachable. The README also mentions an LLM-powered semantic extraction layer supporting OpenAI, Claude and DeepSeek, used for turning a page into structured data. That is a separate path from replay: replay is deterministic, extraction is model-dependent.
Installing it and pointing an agent at it
Four install paths are documented. The npm route is npm install -g browserwing followed by browserwing --port 8080. The pnpm route is pnpm add -g browserwing with the same start command. The shell route is curl -fsSL https://raw.githubusercontent.com/browserwing/browserwing/main/install.sh | bash on Linux and macOS, or iwr -useb https://raw.githubusercontent.com/browserwing/browserwing/main/install.ps1 | iex on Windows. Source builds use make install, then make build-embedded, then ./build/browserwing --port 8080. The npm package and both install scripts test GitHub and Gitee mirrors and pick the faster one, which is a real consideration if you are behind a slow link to GitHub. Two platform notes deserve attention. Chrome or Chromium must be installed and accessible in the environment; this is listed under Requirements and there is no headless-browser download step described. On macOS, a killed error is addressed with xattr -d com.apple.quarantine $(which browserwing). Homebrew is listed as coming soon, so brew install browserwing is not a working command today. To wire it into an MCP client, the README gives this config block: an mcpServers entry named browserwing with type http and url http://localhost:8080/api/v1/mcp/message. For Skills, you download SKILL.md from the repository and import it into the tool's Skills settings. The README also suggests handing the INSTALL.md URL to an agent and letting it do the setup.
Where the design breaks down
The limitation is structural, not incidental. A recorded script encodes a page's shape at record time. Selectors move, layouts change, and a replayed step that no longer matches will fail or, worse, act on the wrong element. The README does not describe a self-healing mechanism for broken recordings, so the maintenance burden falls on you: re-record when a target site changes. The 78 built-in scripts are the same bargain, convenient until the site they target is redesigned. There is also a hard environmental constraint: Chrome or Chromium must be present and accessible, so a minimal container without a browser will not run this, and the README does not document a bundled headless browser. The macOS quarantine note implies the distributed binary is unsigned or unnotarized, which will matter in managed fleets where Gatekeeper policy is enforced. Finally, the README positions the tool as a localhost service on port 8080 with an HTTP MCP endpoint; nothing in the supplied material describes authentication on that endpoint or a multi-tenant deployment model, so exposing it beyond localhost is not something the documentation supports.
BrowserWing against Playwright or Puppeteer
The honest comparison is with Playwright or Puppeteer, which are libraries you import. With those, you write the automation in code, run it in your own process, and you own the browser lifecycle. BrowserWing is a process you run, with a UI for recording and a protocol surface for agents. The difference in approach is who authors the automation. Playwright asks a developer to write selectors and waits; BrowserWing asks a human to perform the flow once in a real browser and then treats that recording as the artifact. If your team already has Playwright suites in CI, BrowserWing adds a second place where browser logic lives, and the two will drift. The case where it wins is the agent-integration gap: Playwright does not ship an MCP endpoint or a SKILL.md exporter, so connecting an agent to a Playwright script means writing that bridge yourself. BrowserWing's value is that the bridge exists and the recording UI exists. Note also that BrowserWing is not a hosted scraping API; the sponsor placement for a residential proxy vendor in the README is an advertisement, not a statement that proxying is built in.
Version cadence, licence and what an upgrade costs you
The release list shows v1.0.1-beta.2 in March 2026, v1.1.0 in April 2026, and v1.1.1-beta.1 in May 2026, with the last push to the repository in August 2026. That is a project moving on a monthly-ish rhythm with beta tags interleaved between stable ones, so pinning to a stable tag rather than tracking latest is the safer default. The licence is MIT, which permits commercial use and modification provided the copyright notice and permission notice are retained; that is a statement about the licence text, not legal advice, and if you redistribute a modified binary you should read the LICENSE file in the repository yourself. Upgrade cost is dominated by recordings rather than by code. The binary and the embedded frontend are replaced wholesale by the package manager, but your saved scripts and any SKILL.md you generated live outside that, and the README does not describe a schema version or migration path for stored scripts. Practically, that means testing a version bump against your own recordings before rolling it to a shared agent, because a change in how actions are serialized would only show up at replay time.
Editorial conclusion
Adopt BrowserWing if you already know which sites you scrape or drive and you want those flows callable by an agent without paying tokens for every click. Skip it if your targets change shape often, if you cannot install Chrome or Chromium in the runtime, or if you need a hosted service rather than a localhost binary. Before committing, run browserwing run hackernews-top and confirm the JSON shape matches what your agent expects, then check that the built-in script you need exists among the 78 listed, because a missing site means recording one yourself.
Community notes