Trowser

This page might answer some of your questions. If something is wrong or missing, it is a documentation bug that should be logged at Github issues.

Getting Trowser

What is Trowser?

A Windows browser built for testing web services. It is a real WebView2 (Edge) window — not a headless fetch tool — with a Script Console, quick technical scans, and a REST/MCP API so an LLM can sit beside you. The ambition is to make exploratory testing faster and richer, not to replace the tester.

You decide what is important, what to investigate, and what to report. Trowser just helps you do things sooner.

Who is it for?

Exploratory testers who already know (or are learning) the product under test. It will feel dense if you are brand new to testing; see that as a huge learning opportunity. It is a companion for people who want quick access to accessibility, performance, compatibility, and security checks, plus scripting and an LLM, without leaving the browser.

Is it free? What’s the license?

Yes — freeware, with the purpose of enabling more and better exploratory testing. You may use it at work. The license is MIT with Commons Clause: you may modify and share, but you may not sell Trowser or a product that is substantially Trowser.

What do I need to run it?

Windows 10 or 11, 64-bit, and the WebView2 Runtime (ships with Edge; install it from Microsoft if a machine is missing it). Unzip and run Trowser.exe. You do not need Visual Studio for the download zip.

If you build from source you will want the .NET 8 SDK. Most newcomers never need that.

How do I install it?

Download Trowser.zip, unpack it, run Trowser.exe. There is no installer. The zip also contains the trowserkit folder — API docs, scripting help, and example prompts to give an LLM.

Windows says it protected my PC

SmartScreen is cautious with less-known publishers. Choose More infoRun anyway once. After that, Windows usually remembers. If it keeps nagging, open SMARTScreen.md in the zip (next to Trowser.exe) for a one-time certificate install.

Does it work on macOS or Linux?

No native build. Trowser is Windows all the way — WebView2 and C# scripting. It should run on Wine or Crossover; treat that as a bonus, not a promise.

Using it

Is this a replacement for Chrome, Playwright, ZAP, or axe?

No. Use your favorite browser for everyday browsing. Use Playwright or similar when you need a solid, long-lived automation suite. Use ZAP (or another proxy) when you want a dedicated attack proxy. Use axe DevTools when you want the full accessibility specialist workflow.

Trowser gives you quick access to many of those jobs inside the testing browser — axe-core, Retire.js, html-validate, web-vitals, a simple mock/intercept, optional proxy routing — plus things few other tools combine: scripting at the current URL, Watch mode, and an API designed for LLMs. Reach for the specialist tool when you outgrow the quick path.

I launched it. Where do I start?

Go to the site you are testing. Open the Script Console (Ctrl+0) and try a few Quicktests. Watch mode can re-run a smoke script on every navigation — tailor it to your service (user name, company musts, no 500s).

Useful from minute one: Ctrl+D copies random test data, Ctrl+I offers a testing inspiration, F12 is DevTools. If you have an LLM agent, turn on the REST API in the status bar and hand it the kit docs.

The in-app manual walks through this in more detail.

I don’t know C#. Can I still use it?

Yes. Browse, inspect, run Quicktests, use the built-in Chat, and let an external agent drive the API or write new quicktests for you — none of that requires you to write C#. Scripts are C# (.csx, Roslyn) because that is what the host is. If you already script in another language, the syntax gap is small; start from a Quicktest and change it. The Script Console help is the cheat sheet.

What are Quicktests?

Ready-made scripts in the Script Console dropdown: accessibility, performance, compatibility, HTML validation, security scans, monkey testing, and more. They are starting points, not oracles. A green check does not mean the product is good; a red one does not always mean a bug. Read the output, then decide.

Some are better after a session than during it (for example biggest files, or collecting console/network errors). Security Quicktests work best after you have actually used the app — they learn from captured traffic.

What is Safe mode?

It blocks operations that can change the page or the server. With Safe mode on (CLI --safe, or the setting in the UI), Trowser blocks scripting, in-page fetch, mocks, intercepts, fuzzing, and most active security probes. Passive looking stays available. Turn it off — and for API scans set safetyMode to active or higher — only when you mean to poke the server, and only on systems you are allowed to test.

Can I record what I do and play it back?

Yes, and it is still fragile, like every record/playback tool. First use is “help me right now,” not a five-year regression suite. Recordings often pick xpaths you will want to rewrite. An LLM with the API is surprisingly good at repairing scripts. If durable automation is the goal, improve the recording by hand, start from an LLM draft, or use a dedicated framework.

data-testid (and WebMCP on the site) makes everything easier — for you and for the machine.

LLM, REST, and MCP

How do I connect Cursor or another LLM?

Trowser must be running. Turn the API on in the status bar (default port http://localhost:6923).

  1. Settings → enable Keep API key for next session if you want to avoid rotate on every restart.
  2. LLM Settings → Provider → pick your model (OpenRouter free is cheap and your API key is all that is needed).
  3. Select your preferred interaction mode, consider to change the system prompt, and launch the AI Assistant, Ctrl+L.

MCP is Streamable HTTP: POST http://localhost:6923/mcp with Authorization: Bearer <api-key>. Copied configs use ?mode=core (interact + quality audits + a basic security scan). For a full security toolbox use ?mode=security. REST is always the full API surface; Safe mode still applies.

If you use REST API, give the agent the kit docs, not just the URL. Start with trowser-api-reference.md and prompt as you wish.

You can also connect your agent to a local MCP server, using the MCP config Copy.

Chat window vs an external agent — which should I use?

Built-in Chat is for small chunks: a sounding board, a quick pass, something you watch happen. Set the provider in LLM Settings (OpenRouter free is the default; you still need your own key). Modes: Chat (advisor), Economical (everyday live testing), Full (complete tool surface). Long chats burn tokens because the whole history is resent — start a new conversation when the old context is not helping.

An external agent (Cursor, Claude Code, …) with REST or MCP is the better setup for a real session. You can attach documentation, get a readable report, and leave it running over lunch. A strong model finds a useful share of what a human would, and sometimes things you did not have time for. A weak model mostly restates the current page.

Recommendation: second tester during lunch or after work — and you still judge the results. Pretty reports are not the same as good testing.

Why do I need an API key?

Anyone who can call localhost with a valid key can drive the browser, run page JavaScript, run C# in the Trowser process, and reuse the session’s cookies. The key is that privilege boundary. It is generated each start unless you keep it or pass --api-key. GET /api/ping is the exception (health check, no key).

Do not commit a live key. The API binds to localhost only; it is not a remote testing service.

Safety and data

Does Trowser phone home or train on my testing?

No telemetry, analytics, or usage data to Trowser’s author. Settings and logs stay on your machine (%APPDATA%\Trowser\).

Traffic that does leave the box: the sites you browse (normal WebView2); LLM calls only when you configure a provider and send a message (page snapshots and tool results go to that endpoint); an occasional Retire.js database version check on GitHub during security scans (no user data); and whatever you send through a proxy if you configured one.

Can I point it at production?

Only against systems you are authorized to test, and preferably not as a daily browser. Safe mode exists because mocks, intercepts, scripts, and active probes can change server state. Scope (navigation guard) can keep you on the intended host. Read the security notes in trowserkit before you get ambitious.

Active injection and fuzzing belong on a test environment. “The scanner said it was fine” is not a ship decision.

Can I test as two different users?

Yes. Start another Trowser with its own --session and --api-port, log in as a second identity, and let an agent (or you) compare what each session can see. That is the intended path for IDOR/BOLA-style checks — two real browsers, two cookies, not one clever header edit.

Docs and contact

Where is the rest of the documentation?

How do I report a bug or suggest an idea?

github.com/Trowser/Trowser/issues. Include the Trowser version, what you did, what you expected, and what happened. If an LLM was in the loop, say which model and whether it used Chat, REST, or MCP.

Trowser is a one-person project with a lot of LLM help. Fixes land when they can. Kind, specific issues help more than volume.