ZYNLEX
For you and your AI coding agent

The browser you share with your AI coding agent.

Claude Code, Codex and other coding agents test your localhost app in the ZYNLEX window you already have open. You watch every click, point at what’s broken, and take over whenever you want. It’s a developer’s browser in its own right, too.

then, in a new terminal: claude mcp add zynlex zynlex-mcp

Free and open source · Windows 10 & 11 · Rust + Tauri, not Electron · no account, no telemetry

One real take: ZYNLEX 0.18 and Claude Code, zoomed and sped up only where marked.

For AI coding agents

Your agent tests in a browser you can’t see. Unless it’s this one.

Ask a coding agent to check your app and it usually launches a browser of its own: a fresh profile, not logged in, an empty console, off screen. ZYNLEX gives it yours instead, through a built-in MCP server.

Point instead of describing

Press Ctrl+Shift+E, click the broken element, type a note. The agent’s next reply starts with it.

Show it the bug

Record yourself reproducing it. The agent reads each click and key, and the error each one caused.

It already knows what broke

Errors and failed requests from before it connected come first, so it doesn’t start from scratch.

Watch, pause, take over

Every action happens in the page in front of you. Pause holds the agent while you use the page.

The fix stays fixed

Your recording becomes a Playwright test, with your mocks, for CI.

Safe by default

Only localhost and staging you allow. Never production. Page text reaches the agent as data, not instructions.

25/25bugs fixed, same as Playwright MCP
33% fewertokens per bug: 176k vs 262k
37% lesscost per bug: $0.124 vs $0.196
10turns per bug, vs 13

Claude Code (Sonnet) fixing five held-out bugs, five runs each, both tools on the same day. Our harness on one machine, so the data and harness are public. Keep Playwright for CI, headless runs and other browsers.

The developer tools · real footage
What it's for

Four questions you ask all day, answered in one window.

Which port is that on? What did that request return? What happens when the API fails? How does it look on a phone? Each used to be a different app.

Which port is that on?

Your servers, on the new tab page

ZYNLEX scans the usual dev ports every few seconds, reads each page's title and shows what's running. Vite, Next.js, Astro, Storybook, Django, whatever. Add your own ports in settings.

  • Label and pin the ones you care about
  • Shows a server as stopped when it goes down
The new tab page listing three detected local dev servers: a dashboard, its API and a docs site
What did that request return?

A network log per tab

Every request with method, status, type, size and timing, captured through WebView2's own API. There's no proxy to route through and no certificate to trust.

  • Filter by errors, API calls or slow requests
  • Response headers and bodies, copy as cURL or fetch()
The network panel beside a dashboard, with the /api/orders request open and its JSON response pretty-printed
What happens when the API fails?

Mock any response. No proxy.

Match a URL, set the status, body and delay, and the page gets your version. Or click Mock this on a real request and edit what came back. It works cross-origin, so you can build against a backend that doesn't exist yet.

  • Fake the 500, the empty list, the 3-second endpoint
  • Mocked requests are marked in the network log
GET 200 /api/users?page=1 Fetch

          
try it
A mock rule returning 500 for /api/orders, and the dashboard showing its Couldn't load orders error
How does it look on a phone?

Devices at their real size

Pick a phone or tablet and the page renders at its true width, pixel ratio and user agent, with touch. One device at a time, at 1:1, not a shrunken thumbnail.

  • Current iPhone, Pixel, Galaxy and iPad sizes
  • Server-side device detection sees the right client
The dashboard rendered in an iPhone 17 Pro viewport at 402 by 874
And the rest

An API client that ignores CORS

Requests run through Rust, so the page's CORS rules don't apply. Saved collections and cURL import, per project. Next to it: header rules per URL pattern, an inspector for meta tags, Open Graph and HttpOnly cookies, a JWT decoder, Base64 and a user-agent switcher.

  • Workspaces keep each project's tabs, rules and requests apart
  • Ctrl+K finds all of it
The API tester calling localhost:8000/api/users with the JSON response below
Beyond localhost

The jobs you switch apps for, one command each.

Every action is a command: find it with Ctrl+K, give it your own shortcut, or pin it to the toolbar as a button. Settings → Shortcuts lists them all.

Is it broken on staging too?

Local, staging and production, one click apart

List a project's addresses once. While you're on one of them, the toolbar shows them all, and a click opens the same path and query on another, or in a new tab with Ctrl. Alt+Shift+1–4 from the keyboard.

  • Production is marked red and asks before you go there
  • Clear Site Data and Reload wipes cookies and storage for a first visit
The Orbit dashboard on staging.localhost, with local, staging and prod in the toolbar; prod was clicked and asks Open prod? before switching
Did anything break?

Errors on the tab, and a bug report in one command

JS errors and failed requests show as a count on the tab itself, so you notice them with the console closed. Click it for the Console panel. Copy Bug Report puts the URL, environment, device, browser and recent errors on your clipboard as Markdown, and saves a screenshot to Downloads.

  • Paste it straight into an issue or a chat
  • F12 still opens full DevTools
The dashboard failing to load orders, a 1 on its tab, the Console panel showing the 500, and Bug report copied in the status bar
Doing the same thing again?

Your own snippets, as buttons

Save a bit of JavaScript, like filling a test login, turning on a feature flag or outlining every element, and it becomes a command that runs on the current tab. Pin it to the toolbar or give it a shortcut.

  • Throttle a tab to Slow 3G, Fast 3G or offline
  • Snippet errors show in the Console panel
A Show layout grid snippet run from its pinned toolbar button, outlining every element of the dashboard; the button's tooltip shows its Ctrl+Alt+G shortcut
Small on purpose

No bundled Chromium. No sync. No extension host.

Tabs render with WebView2, the Chromium runtime that already ships with Windows, so heavy pages cost the same as in Chrome. The savings come from everything ZYNLEX doesn't run, graphics kept in one process, and background tabs that suspend themselves.

4 MBinstaller
152 MBidle with one tab, vs 348 MB for Chrome
21% lessthan Chrome with three tabs open
0accounts, trackers or telemetry

Measured on one Windows 11 machine with clean profiles. Method and numbers.

Before you download

What it doesn't do.

Windows only, for now

Every developer feature sits on WebView2 APIs that only exist on Windows. macOS and Linux are on the roadmap.

One device at a time

If you need many viewports side by side or accessibility audits, Polypane and Responsively do that well.

Agents: localhost and staging only

For other websites, headless runs or CI, use Playwright. ZYNLEX is for the loop where you and an agent build and fix your app together.

Its own tabs only

Mocks and header rules apply to pages open in ZYNLEX, not to other apps on your machine. WebSocket handshakes aren't covered.

FAQ

Questions people ask.

Can I use it as my everyday browser?

You can browse in it like any browser, and it is minimal: no sync, no extensions, no account. It's built around development work, so most people keep it open next to their editor rather than replacing their main browser.

Which AI agents work with it?

Any MCP client. After installing, connect Claude Code with claude mcp add zynlex zynlex-mcp; Settings → AI agents has the setup for Codex, Cursor, Antigravity and OpenCode. Agents see only localhost tabs and staging environments you tick, never production.

Should I stop using Playwright?

No. Keep it for CI, headless runs and other browsers. ZYNLEX is where you and your agent find and fix bugs together, and it can turn a recording into a Playwright test so the fix stays fixed.

Will websites work in it?

Yes. Tabs render with WebView2, Microsoft's packaging of Chromium, the same engine as Chrome and Edge. Pages look and behave the same.

How is it different from Chrome DevTools?

DevTools is a drawer inside a general browser. ZYNLEX puts the network log, device viewports and header rules in the browser's own sidebar, per tab and per project, and adds what DevTools doesn't have: localhost server detection, response mocking without a proxy, environment switching, one-command bug reports and an API client. F12 still opens full DevTools when you need it.

Do I need a proxy or certificate to mock responses?

No. Mocks are answered inside the browser before the request reaches the network, so there's nothing to install or trust. Cross-origin requests work too.

Why is it so small? Is it Electron?

It's not Electron. It's built with Tauri and Rust, and uses the WebView2 runtime that already ships with Windows instead of bundling its own copy of Chromium.

Does it collect any data?

No account, no telemetry, no analytics. The only network call it makes on its own is an update check against the project's GitHub releases. This page makes no third-party requests either.

Give your agent the browser you’re already looking at.