Compare
Bifurc vs Charles Proxy
Charles is a paid HTTP debugging proxy that runs on macOS, Windows and Linux. Developers use it to watch traffic, decrypt HTTPS with SSL Proxying, and change what an app sees with tools like Map Local, Map Remote and Rewrite.
Bifurc covers the same ground with a different starting point: it is built around the services on your own machine. It gives them names, proxies and captures their traffic, mocks their responses, and sends requests to them in every protocol they speak. If you want a free Charles Proxy alternative that is also an API client, here is how they line up.
At a glance
| Bifurc | Charles | |
|---|---|---|
| Price | Free | Paid licence, with a free trial |
| Platforms | Windows and Linux | macOS, Windows and Linux |
| App | Native Rust desktop app and CLI | Java desktop app |
| Capture and inspect HTTP and HTTPS | Yes | Yes |
| Decrypt HTTPS | TLS interception with a local root certificate | SSL Proxying |
| Serve a response you define | Mocks | Map Local |
| Send a request to another host | Proxy rules | Map Remote |
| Change requests and responses | Proxy rule scripts | Rewrite |
Custom *.localhost domains | Yes, built-in reverse proxy | No |
| Saved requests for REST, GraphQL, gRPC, SOAP | Yes | Repeat and Compose for HTTP |
| WebSocket, SSE, Socket.IO and MCP clients | Yes | No |
| Environments and encrypted vaults | Yes | No |
| Workspaces as files in git | Yes | No |
| CLI for scripts and CI | Yes | No |
Charles tools and their Bifurc equivalents
- Map Local → Mocks. A mock answers a matching request itself. It can replace the whole response or only the status, the body, some headers or the timing, and leave the rest of the real response alone. Mocks support regex matching, variables, server-sent events and chunked streaming. See Advanced Mocking.
- Map Remote → Proxy rules. A rule matches an exact URL or a regular expression and sends it to a mapping or any other target, for example sending a production API's traffic to the build running on your machine. See Proxy Rules & Scripts.
- Rewrite → Rule scripts. Instead of a list of rewrite operations, a rule can run a script on the request before it is forwarded and on the response before it is returned.
- SSL Proxying → TLS interception. Bifurc generates a root certificate on your machine, or uses one you import, and decrypts HTTPS through the forward proxy. The certificate and its key never leave your computer. See TLS Interception.
What Bifurc adds
- Names for local services.
api.localhostinstead oflocalhost:3000, with no hosts file to edit, and HTTPS for those names with the same local certificate. See Localhost Domain Mapping. - A full API client. Write and save REST, GraphQL, gRPC, SOAP, WebSocket, SSE, Socket.IO and MCP requests, with scripts and tests, and run a folder of them at once. See Protocol Support.
- Workspaces in git. Mappings, rules, mocks and requests are files with history that you can publish to GitHub and import elsewhere.
- A browser extension for Chrome and Firefox that toggles proxying and adds a Bifurc tab to DevTools.
When Charles is the better choice
- You work on macOS, which Bifurc does not support yet.
- You need network throttling to simulate a slow connection, or breakpoints that pause a request so you can edit it by hand before it continues. Bifurc changes traffic with rules, scripts and mock delays instead.
- You debug a phone or another device by pointing it at the proxy over your network.
When Bifurc is the better choice
- You want the Charles workflow, mapping, rewriting and decrypting, for free, together with an API client.
- Your work is on services running locally, and you want them named, captured and mocked from one place.
- You want your mocks and rules in version control, shared with your team as files.
Moving from Charles
- Install Bifurc from the download page.
- Generate or import a root certificate in Settings and turn on HTTPS interception.
- Recreate Map Remote entries as proxy rules, Map Local entries as mocks, and Rewrite sets as rule scripts.
- Send your browser through Bifurc with the Bifurc Companion extension and check the traffic in Capture.