Set up the API you need
Create endpoints by hand, or import a HAR capture or an OpenAPI or Swagger document in the app. Review what Mimic found before you keep it. Group routes so a larger project stays readable.
01 / Native mock API server for macOS
Run multiple local API servers from one Mac project. Mock the routes you need, forward the rest to real backends, and save supported text responses for replay. Test failure and recovery while you inspect every request.
Open source · MIT licensedExplore the code on GitHub
Set GET /account-summary to return 500 while the local server keeps running.
GET/orders/:id
200application/json
500200
A journey serves responses in order. Script a payment failure, an expired session, or a dropped connection, then replay the same flow every time you test. Try the live example below: send the next request four times and watch the same URL answer differently.
Nothing has arrived yet. Send a request below.
Press the request marked next four times. GET /account-summary is step 2 and step 4, so it answers 500 and then 200.
Set a status, headers, body, and delay for each step. A step can repeat or simulate a dropped connection or timeout.
Matching requests move through the journey. Calls outside it still use your normal endpoints.
Rewind to step one and clear the log from the window or with one command.
Run your app against Mimic, pick requests from the log, and save them as an ordered journey. Repeated polls become a single step with a repeat count. Nine included journeys give you a starting point for common flows.
Retry after failure · Payment retry · Session expiry · MFA challenge · Offline to online
/job/status202/job/status202/job/status202/job/status200/job/status202 × 3/job/status200Three polls, then the completed result.
The mimic command gives test suites and coding agents control over projects, local listeners, upstreams, endpoints, scenarios, journeys, and the request log. It returns JSON and useful exit codes, so they can check the result themselves.
# keep test data out of your own projects export MIMIC_DATABASE_PATH="$PWD/.mimic-ci/store.sqlite" mimic daemon start # no window mimic project import fixtures/api.json mimic journey activate "Session expiry" mimic reset --scope all # back to step 1 # … run your tests here … mimic journey status | jq -e '.journeyStatus.isComplete'
Run the installed Mac app without a window and use an isolated project store for CI.
Load a project, set up local backends, change responses, activate a journey, and reset it between cases.
Read requests, responses, and journey progress as JSON. The same controls are available through a token protected interface on 127.0.0.1.
HAR and OpenAPI review happens in the Mac app. The CLI imports and exports Mimic project files.
Run several named local servers from one native Mac workspace. Give each its own routes and optional upstream, then turn real responses into repeatable local mocks.
Create endpoints by hand, or import a HAR capture or an OpenAPI or Swagger document in the app. Review what Mimic found before you keep it. Group routes so a larger project stays readable.
Edit status, response headers, body, and delay. Keep several scenarios on an endpoint and switch the active one while your app runs. The next request uses the change immediately.
Give each local listener a name and port. Scope endpoints and journey steps to the right server, then run them together. Each listener can connect to a different real backend.
Enable pass-through on a listener to forward requests without a matching mock. The real reply appears in the log. Save a supported text response as a local mock, or opt in to automatic capture so the next matching call can use it.
The live log records both sides of every exchange. Filter to Unmatched calls, inspect formatted headers and bodies, then create an endpoint from a request or add it to a journey.
Build a local API, reproduce a client flow, connect to a real backend, inspect the traffic, and run it again from a script.
Start with the routes your client actually calls.
Run the same client behavior again and again.
Give each part of your app its own local API and optional real upstream.
Turn observed traffic into the next useful mock.
Use the same project from a Mac window or a test runner.
Mimic puts response editing, ordered journeys, and the live request log in one Mac window. Write the responses in the order they should happen, or save a sequence from traffic your app already sent. The same project can be driven from a script.
Mimic is an HTTP server on localhost:8080, so anything that can make a request can use it. There is no plugin and no adapter to install. Between cases your tests run mimic reset, which returns every journey to its first step and clears the log.
Yes. Run Mimic headlessly and use the CLI or local HTTP interface to set up endpoints, switch responses, run a journey, and read back the requests. HAR and OpenAPI import review happens in the Mac window; a Mimic project export can be imported from the CLI.
Nothing. There is no account and no trial period, so there is nothing to cancel either. Download the installer and use it.
It is an early release, numbered below 1.0. The app is still changing, and the features described here are in the release linked by the download button.
No. macOS 26.0 is the minimum and the installer will not run on anything earlier. It works on both Apple silicon and Intel Macs.
Projects and captured requests are stored locally on your Mac. If you enable pass-through with an upstream, Mimic forwards unmatched calls to that address. The control interface is bound to 127.0.0.1 behind a token that changes every time Mimic starts.
Yes. Run several named local listeners if your app uses multiple APIs. Give each listener its own upstream URL and enable pass-through. Mimic serves matching mocks, forwards other calls, and logs both. Save a supported text reply as a local mock, or opt in to automatic capture for the next matching request.
GraphQL is matched on the operation rather than the path, because GraphQL sends everything to one URL. An OpenAPI or Swagger document, or a HAR file saved from your browser, imports as endpoints you can review and edit before keeping them.
One installer adds the Mac app and the mimic command. Create a project, start the server, and point your app at localhost:8080.
Open the signed and notarised package. It puts Mimic in Applications and the command in /usr/local/bin.
Projects stay on your Mac. The server and its token protected control interface listen locally.
Free with no account or trial period. Mimic is an early release below 1.0 and is still changing.