v0.6.0RetirePostman, Bruno, Insomnia, Charles, Fiddler, WireMock, Mockoon, Mailpit, your hosts file

Every API tool you juggle. One app.

An API client, proxy, mock server, traffic capture and mail inbox sharing one workspace. Native, free, and on your machine. No account. No cloud. No seat limits.

PowerShell
> irm https://bifurc.app/install.ps1 | iex

Windows · macOS · Linux — free, every feature included

  • REST✦
  • GraphQL✦
  • gRPC✦
  • SOAP✦
  • WebSocket✦
  • SSE✦
  • Socket.IO✦
  • MCP✦
  • Webhooks✦
  • SMTP✦

Your setup today

Six tools. Six installs. Six places your data lives.

API client

Postman · Insomnia · Bruno

Debugging proxy

Charles · Fiddler

Mock server

WireMock · Mockoon

Mail catcher

Mailpit · MailHog

Local domains

nginx · Caddy · hosts file

Load tester

k6 · JMeter

Or one.

  • API client
  • Proxy
  • Mocks
  • Capture
  • Mail
  • Load runs

One workspace of plain files in git. The request you just watched fail is one click from being replayed, saved or mocked.

Why it's different

Postman sends requests. Bifurc sits in the path.

An API client only sees the calls you make by hand. Bifurc is also the proxy your app's traffic runs through, so it can name, watch, mock, break and replay the real thing.

  1. 01 — Name it

    Give every service a real name

    api.localhost goes to :3000, web.localhost to :5173, with HTTPS if you want it. Names ending in .localhost already point at your machine, so there's no hosts file to edit.

    GEThttps://api.localhost/users
    your appBifurcapi:3000mockusers.jsoncassetterecordedCAPTUREGET/users200POST/login201GET/cart200
    200 OK34 ms · from api :3000
  2. 02 — Watch it

    See every call as it happens

    Traffic from your browser, your app or the browser extension lands in Capture with headers, bodies and timing. Turn any captured call into a saved request or a mock.

    GEThttps://api.localhost/users
    your appBifurcapi:3000mockusers.jsoncassetterecordedCAPTUREGET/users200POST/login201GET/cart200
    200 OK34 ms · captured
  3. 03 — Mock it

    Mock it without touching a URL

    Bifurc answers instead of the real service, or changes only the status, the body or the timing. Your app keeps calling the same URL. Turn the mock off and it's real again.

    GEThttps://api.localhost/users
    your appBifurcapi:3000mockusers.jsoncassetterecordedCAPTUREGET/users200POST/login201GET/cart200
    200 OK2 ms · mocked, same URL
  4. 04 — Break it

    Break it on purpose

    Add latency, or fail 30% of calls with a 503, and find out what your retries and error screens really do before your users do.

    GEThttps://api.localhost/users
    your appBifurcapi:3000mockusers.jsoncassetterecordedCAPTUREGET/users200POST/login201GET/cart200
    503 Service Unavailablefault on 30% of calls
  5. 05 — Replay it

    Record once, replay offline

    Record real answers into a cassette and replay them when the service is down, rate-limited, or you're on a plane.

    GEThttps://api.localhost/users
    your appBifurcapiofflinemockusers.jsoncassetterecordedCAPTUREGET/users200POST/login201GET/cart200
    200 OK1 ms · replayed from cassette

Head to head

Everything they do. Then some.

REST, GraphQL, gRPC, WebSocket, SSE, Socket.IO, MCP and SOAP, with scripts, tests, environments and vaults. Then the proxy, the mocks and the inbox that an API client never had.

The full Bifurc vs Postman comparison

Moving over? Paste a cURL command and Bifurc fills in the request.

FeatureBifurcPostmanBruno
Free for your whole team1 user on free
Every feature with no account
Your work as files in git
Native app, not ElectronRust
Custom *.localhost domains
Capture your app's traffic
Mocks with no URL change
Fault injection, record & replay
Local mail inbox
SOAP requests built from a WSDL

Command line

Your terminal. Your CI. Your agent.

  • Same engine as the app

    Every saved request, mock and flow, with the same verbs: list, show, create, update and run.

  • Exit codes that mean something

    One line per result, JSON when you ask, and a code that says what failed. Drop it straight into CI.

  • Guardrails for AI agents

    bifurc --mcp exposes it all as an MCP server. A policy file blocks calls, or holds them until you approve.

~/acme-api — bifurc
$ bifurc requests send "Create user" 201 Created · 142ms · 4.2KB json · tests 3/3 ✓ $ bifurc flows run "Checkout" ✓ Login 200 · 88ms ✓ Add to cart 201 · 64ms ✓ Pay 200 · 210ms passed $ bifurc mail last --otp 482913 $ bifurc --session agent requests send "Delete order" --env prod denied by policy no-prod-writes (exit 7) $ bifurc agent init cheat sheet added to AGENTS.md

In the box

And everything else your localhost needs.

Flows that chain requests on a canvas, signed webhooks, encrypted vaults, a health bar for your services, and a workspace you can diff, restore and push to your own repo.

Service DiscoverySee the local processes listening on a port, with their PIDs, and map any of them to a name directly.REST, GraphQL, gRPC, SOAP, WebSocket, SSE, Socket.IO and MCPWrite, save and organize requests across the protocols real local integration work uses, and run a folder of them at once.FlowsChain saved requests on a canvas, pass values between them, branch on the answer, and run the whole flow at once.Dev Servers & LogsStart, stop and restart your dev servers from the Services screen, and follow their logs live.Browser Extension WorkflowsToggle browser proxying, review traffic in a DevTools tab, and send real requests or mocks into Bifurc.Environments & VaultsReuse variables across requests, mocks and health checks, and keep secrets sealed behind a passphrase.

See how each one works

Your traffic never leaves your machine.

Workspaces, captured traffic, certificates and secrets stay on your computer unless you sync a workspace to your own repository. Bifurc does send anonymous usage analytics. They are on by default once you accept the terms, and one switch in Settings, under About, turns them off. The details are in the privacy policy and the terms of use.

What analytics send

  • What kind of thing you did: “request sent”, “mock created”
  • Its shape: request type, HTTP method, counts, yes/no flags
  • Bifurc version, operating system and CPU architecture
  • Where in Bifurc's own code it crashed or failed
  • A random install ID, derived from nothing

What they never send

  • Names, URLs, hosts, paths or patterns
  • Headers, bodies, scripts, variables or secrets
  • Captured or proxied traffic
  • Your GitHub account, token or repositories

Make room in your dock.

The API client, the debugging proxy, the mock server and the mail catcher, in one free app. Map your first service in a minute; the rest is already there.

Free · No account · Windows, macOS and Linux