Frequently asked questions
Does EchoKit send my data anywhere?
No. Everything captured lives in your browser's IndexedDB. There is no backend, no telemetry, no analytics, no account. The only external request EchoKit itself makes is loading two Google Fonts for the UI. Full privacy policy →
Why does it need
<all_urls>?To record and mock network traffic on whatever site you're debugging. Scoped via
content_scripts; only activated on tabs where you explicitly press REC.Can I mock WebSockets / Server-Sent Events?
Not yet. v1 covers
fetch and XMLHttpRequest. WebSocket capture is planned — the interaction schema is designed to extend cleanly.What's the difference between EchoKit and Mirage / MSW?
MSW and Mirage need a build-time integration — you write handlers in code. EchoKit requires zero code changes: install the extension, hit record, edit, done. Great for ad-hoc debugging and bug reproduction. MSW remains the right choice for version-controlled test fixtures.
Chrome DevTools already has "Override content" — why EchoKit?
Chrome's override only replaces response bodies for network requests you've loaded. EchoKit captures the real response first, lets you edit it, simulate latency/errors, conflict-resolve between versions, share via export, and pick match modes (wildcards, GraphQL). It's a richer loop built for iterating.
Will mocks survive browser restart?
Yes. Mocks are in IndexedDB and persist. Per-tab recording state lives in
chrome.storage.session which clears on browser close — so "was this tab recording?" resets, but your recorded data is safe.My mocks don't fire even though MOCK is on.
Three common causes: (1) Your scope is Tab-strict and you're on a different tab than the one that recorded. Switch Scope to Domain. (2) The request has a different body than recorded — strict matching. Switch the API's match mode to ignore-body or path-wildcard. (3) You're on a different origin. Recordings in EchoKit are origin-scoped by default. Export+Import to move them across origins.
Can I mock responses for just some requests while letting others hit the real server?
Yes — every recorded API has its own toggle. Master MOCK must be on; individual mocks opt in via the per-row switch. Requests that don't match any enabled mock fall through to the real network.
Does CORS override work on recorded or on real responses?
Both. Mocked responses always include permissive CORS headers. For real responses, the CORS Override toggle installs a
declarativeNetRequest rule that rewrites the headers at the network layer. Toggle it off when you're done debugging.Can teammates import my mocks?
Yes. Menu → Export JSON produces a single file with every interaction and override. Teammates hit Menu → Import JSON and pick Merge or Override strategy. Commit the JSON to your repo alongside bug repro issues.
Does the popup stay open while I navigate?
Chrome closes popups on focus loss — that's a platform rule. EchoKit's auto-open-on-refresh setting will pop it back open on every navigation when recording is active. Prefer a persistent surface? Use the DevTools panel: it stays put.
Is there a roadmap?
See Changelog and GitHub issues. Short list: WebSockets, team sync via gist, onboarding tour improvements, Chrome Web Store launch.