Net Tinker Add to Chrome

browser extension · fetch + XMLHttpRequest

Mock any API response without touching your backend.

  • mock
  • redirect
  • delay
  • block
  • rewrite

A 100% free extension that intercepts the fetch and XMLHttpRequest calls a page makes and lets you decide what the API answers. Write a rule once and it keeps firing on every matching request — without DevTools open, and without changing a line of code.

Add to Chrome Add to Edge Firefox coming soon
  • backend: none, and no account
  • permissions: 2 in total
  • limits: none, no upsell
Example: the page sends POST /v1/payments, the rule "Payment declined (502)" catches it, the network is never contacted, and the page receives a 502 with the body you wrote.

the page asked

POST /v1/payments

{ "order": "ord_1043", "amount": 240.50 }

rule · Payment declined (502)

match
URL contains /v1/payments
do
Mock the response
delay
800 ms

network never contacted

the page received

502 Bad Gateway 803 ms

{ "error": "card_declined" }

01 · features

One idea, and everything built on it

A rule says which requests to catch and what to do with them. Scenarios, importers and network simulation are all built on that — there is nothing else to learn.

  1. GET /v1/orders 200 mocked

    Mock a response

    Your own status, headers and body. The request never reaches the network.

  2. PATCH /v1/profile 200 rewritten

    Change what goes and comes

    Rewrite headers, query parameters or one JSON field of the body — or of the real response — and let everything else through untouched.

  3. GET /api/v1/* → /api/v2/*

    Redirect or block

    Send /api/v1/* to /api/v2/* with one regex rule, repoint a whole environment at another backend, or cut a request off.

  4. GET /v1/search timeout

    Make the network misbehave

    Random latency, a real-looking timeout, chaos percentages, a call limit and intermittent failures — the branches your code was written for and never reached.

  5. POST /graphql GetCart

    Hit exactly what you mean

    URL or host, then method, header, request body or calling page. Matching on the body is what lets you mock one GraphQL operation and not the rest.

  6. GET /v1/cart 200 · 8 ms

    See what actually happened

    A DevTools panel says what happened to each request, spots repeated calls, times them, searches bodies and compares two responses. One click turns any of them into a rule.

  7. POST /v1/auth/login 401 invalid credentials

    Switch a whole state

    Scenarios hold several variants of one API — Success, Invalid credentials, Backend down — and you pick which is live from the popup. Six come ready-made.

  8. GET {{baseUrl}}/v1/me staging

    Projects, variables, environments

    Keep two clients apart, write {{variables}} once, and follow the same rules from localhost to staging.

  9. FILE openapi.yaml 60 rules

    Don't type what you have

    Import OpenAPI, Postman, HAR or ModHeader, or paste a curl. Copy any rule back out as curl, fetch, Playwright, Cypress or TypeScript types.

02 · how it works

Three steps, and the second one is optional

  1. Install it

    From the Chrome Web Store or Edge Add-ons. No account, no sign-up, nothing to configure.

  2. Start from something real optional

    Pick a request in the DevTools panel and press Mock, paste a curl, or import your OpenAPI spec. Or write the rule by hand.

  3. Reload and see it

    The rule fires on every matching request from page load, with or without DevTools open, until you switch it off.

03 · privacy

The privacy argument, in figures

“No account, no server, all local” is what every tool in this space claims, so here are the numbers behind it.

Read the full privacy policy

  • 2permissions declared: storage and host access
  • 0servers, accounts or trackers
  • 0third-party libraries inside the package
  • 200requests kept, at most, when you record a tab — locally
  • It declares two permissions: storage, and host access. Nothing else — no tabs, no scripting, no browsing data. The broad host access exists because the extension cannot know in advance which site you will want a rule for.
  • You can narrow that down whenever you like: everywhere, only on localhost, or only on domains you list. Outside that scope Net Tinker doesn't touch the page at all.
  • Recording a tab is the one feature that keeps a log, and only while you have it switched on: the 200 most recent requests of that tab, locally, and one click empties it.
  • Nothing third-party ships inside the package, and this website has no analytics either — no scripts, no cookies, no third-party requests.

04 · screenshots

What it looks like

These are the extension as it is today.

The Net Tinker panel in DevTools under a demo shop page, listing four requests with their GraphQL operation name, and a lightning bolt next to the ones a rule touched.
The DevTools panel. Every request the page made, the rule that touched it, and a Mock button to turn it into one.
The Net Tinker options page: the project name and the Export, Import and New rule buttons in the header, the strip of panel tabs below it, and the list of rules with their group, their URL and their on/off switch.
Your rules. Grouped, searchable, and switched on and off one by one or a whole group at a time.
The Scenarios panel: a scenario called Login API with four variants — Success, Invalid credentials, Backend down and Slow — and a dropdown choosing which one is live.
Scenarios. Several versions of the same API; pick which one is live and every rule inside it follows.
The Import menu open over the rule list, listing Net Tinker export, OpenAPI / Swagger spec, Postman collection, HAR capture and ModHeader profile.
Import. Sixty endpoints of a spec become sixty mocks in one go.

05 · faq

Questions people ask

Does DevTools have to be open?

No. Rules run from the moment the page loads, and nothing puts a “this browser is being debugged” banner across your tabs. DevTools is only where you watch the traffic.

Why doesn't my rule touch an image or a page navigation?

Net Tinker acts on the requests a page makes itself with fetch or XMLHttpRequest. Images, stylesheets, navigations and a site's own service worker are out of reach, and the DevTools panel says so rather than offering a rule that would never fire.

Does anything leave my machine?

No. Rules live in your browser's local storage, captured values in session memory, and there is no server to send anything to. This website has no analytics either.

Is there a paid version?

No. Every rule type is free and there is no cap on how many rules you create or keep active.

And Firefox?

The port is in progress. Chrome and Edge are available today.

GET /pricing 404 Not Found

No limits, no upsell

Every rule type is free, and there is no cap on how many rules you create or keep active. That is worth saying plainly, because it is where comparable tools draw their paid line — the best known one stops you at five rules, three of them active at a time.