Security research browser for macOS

Find out what your web app trusts.

Refract is a Chromium browser for security researchers and developers. Hold any request your app builds and rewrite it before it reaches the network, or hold the server's response and change it before the page sees it. Open the React component tree and change props, hooks, and store state while the page runs. Then see what the server accepts and what the UI exposes.

Coming soon · macOS Apple Silicon

See what it does

Free: browser, interception, and state editing · Licensed: the BYOK agent

Request and response interception

Rewrite traffic in both directions.

Arm interception for everything, or only for URLs that match a rule. When the page sends a fetch, an XHR, a navigation, or a beacon, Refract holds it inside the browser before it reaches the network. Change the method, URL, headers, or JSON body, then release it or drop it. The request still carries the page's own cookies and session, because it never left the browser.

Responses work the same way in reverse. Hold what the server sends back, change the status code, headers, or body, and release it to the page. Flip "isAdmin": false to true in an API response and see what the client does with it.

A real Refract run: a POST built by the page is held in the inspector, its JSON body is edited from 67 to 91 bytes, and the test server reports the edited amount after release
FIG. 01A real run against Refract's local test server: the page builds a POST, Refract holds it, the amount is rewritten to 1337, and the server records the edited body.
01 · Hold

Pick a rule or catch everything. The request stops after the page builds it.

02 · Rewrite

Change the method, URL, headers, or body. The inspector shows exactly what will go out.

03 · Release or drop

Send your version, or kill the request and see how the page handles it.

04 · Rewrite the response

Hold the server's answer and change its status, headers, or body before the page reads it.

React and store state

Edit React state in the running page.

Open the State panel on any React app and walk its component tree. Select a component to read its props, hooks, class state, and context. Change a value and the page re-renders with it. Refract also finds the app's Redux, Zustand, and TanStack Query stores, so you can edit store state, dispatch a Redux action, or rewrite cached query data.

Set role to admin and see which screens appear. Push a value past the form's validation and check whether the server catches it. If the UI is the only thing enforcing a rule, you'll find out here.

Components

Tree, search, and highlight in page. Props, hooks, class state, and context for each one.

Stores

Redux and Redux Toolkit with dispatch, Zustand with its devtools middleware, and the TanStack Query cache.

Production builds

Refract reads props and hooks in production builds but edits them only in development builds. The panel tells you which you're looking at.

Bring your own key · every step approved

An AI agent that asks before every action.

Add an Anthropic or OpenAI API key and describe the test you want to run. The agent reads the tab, the network log, held requests, and the page's React and store state. When it wants to navigate, click, type, add an intercept rule, edit state, or change a held request, it shows you the exact proposal and waits for Allow. No approval carries over to the next step.

Refract encrypts your key in the local macOS profile and sends it only to your provider. Cookie and authorization values are redacted before the model sees them. There's no Refract-hosted model and no bundled usage credit.

Set up the agent
A real Refract run: the agent proposes filling a login form and pausing its POST, and each step waits on an approval sheet for the human to allow or deny
FIG. 02A real agent-driven login test: the agent fills the form and holds its POST, and each step waits for approval.
Inside the runtime

It sees what a proxy can't.

A proxy sees traffic after it leaves the browser, and it needs a trusted certificate authority to read it. Refract works inside Chromium. It holds the request the page built, with the page's own session, and it reads the application state that produced that request. There's no proxy to configure and no certificate to install.

Limits

What Refract doesn't do.

No MITM
Refract doesn't break TLS. There's no certificate authority to install and no proxy.
No scanner
No payload packs, fuzzer, or exploit library. Refract works with the requests your app builds. It doesn't generate attacks.
No stealth
A held request keeps its page waiting, and the attached debugger changes timing. A watchful target can notice.
Memory only
The network log and held requests live in memory. Quitting clears them.
Coming soon

Refract is coming to Apple Silicon Macs.

The browser, request interception, and state editing will be free. The AI agent needs a license and your own API key.