Skip to content

Cloak Proxy

for Mac · Free for life

See every request your Mac makes.

A native macOS debugging proxy with an API client built in. Decrypt HTTPS, pause, mock and rewrite any request, catch the apps that skip the proxy, and let Claude drive it through MCP.

Cloak Proxy · All Traffic

  1. GETapi.example.com/v1/users/42200
  2. GETtiles.example.com/v2/radar/8/181/116.png200
  3. GETauth.example.com/oauth/userinfo401
  4. POSTapi.example.com/v1/cart/items201
  5. GETstatus.example.com/health204
  6. GETcdn.example.com/assets/app.js200

GEThttps://api.example.com/v1/users/42200 · 84 ms

{
  "id": 42,
  "name": "Ada Park",
  "plan": "pro",
  "verified": true
}

Everything a debugging proxy should do, and a few things none of them do

  • HTTP/1.1 and HTTP/2
  • WebSocket
  • gRPC and Protobuf
  • GraphQL
  • HAR and Charles import
  • Postman collections
  • OpenAPI
  • Map Local
  • Breakpoints
  • JavaScript rules
  • iOS and Android
  • Code in 19 languages

SSL Proxying

HTTPS, in plain text.

Most traffic is encrypted, so most proxies show you a wall of locked tunnels. Turn on SSL Proxying for an app or a domain and its requests open up: headers, bodies, cookies, timings.

  1. 1

    Install & Trust

    One click adds Cloak Proxy's certificate to your login keychain. macOS asks for your password.

  2. 2

    Capture

    The macOS proxy turns on by itself. Your previous proxy settings come back when you quit.

  3. 3

    Decrypt

    Pick an app in the sidebar and press Enable SSL Proxying. Only what you choose is decrypted.

auth.example.com:443

TLS 1.3 · MyApp

Encrypted tunnelDecrypted
POST /v1/sessions HTTP/2
host: auth.example.com
authorization: Bearer eyJhbGciOi…
content-type: application/json

{
  "email": "ada@example.com",
  "device": "iPhone 17 Pro",
  "remember": true
}

10 debugging tools

Change what the app sees, without touching its code.

Pause a request and edit it. Answer it from a file. Point it at staging, rewrite it with JavaScript, or slow the network to 3G. Every rule can be made from a captured request in two clicks.

❚❚

Request paused

rule “Checkout”

POST pay.example.com/v1/checkout

{
  "plan": "free""pro",
  "seats": 5,
  "coupon": null
}
AbortCancelExecute

Breakpoint

Stop a request mid-flight

Pause matching requests or responses, edit the method, URL, headers or body, then send it on, send the original, or drop it.

GETapi.example.com/v1/usersserver

users.json200 · local

Map Local

Answer from a file

Serve a local file, folder or inline response. The server is never contacted, so the backend doesn't have to exist yet.

GETapi.example.comstaging.example.com/v1/feed

Map Remote

Point production at staging

Rewrite the scheme, host, port, path or query of matching requests, and keep the original Host header if you need to.

// runs before the app gets it
function onResponse(ctx, url, res) {
  res.body.price = 0;
  res.headers["X-Debug"] = "1";
  return res;
}

Scripting

Rewrite it with JavaScript

Change requests and responses in code, with a console for your logs. Handy when a rule isn't enough.

Wi-Fi
4G
3G

Network Conditions

Feel it on a bad connection

3G, Edge, a very bad network, total loss or your own profile, for every request or just the ones that match.

GETapi.example.com/v1/cart200

POSTtelemetry.example.com/v2/events202403

GETcdn.example.com/app.css200

Block List

Cut off a host

Block trackers, flaky third parties or a whole API, and see how the app copes.

  • Allow List

    Only let chosen hosts through

  • DNS Spoofing

    Point a host at another IP

  • No Caching

    Strip cache headers everywhere

  • Mock Sets

    Record a session, replay it offline

  • Alerts

    Notify on errors, slow calls or a match

Sidebar · Not Using the Proxy

21 direct connectionsCaptured · api.payments.example
DNSShopping apppayments SDK, gRPCCloak Proxy0 requestsInternetapi.payments.example
!✓Requests from this app never reach the proxyLookups answered by Cloak Proxy · every request visible

Only in Cloak Proxy

Apps that ignore the proxy, caught anyway.

Some apps never ask macOS for its proxy: payment SDKs, gRPC clients, anything built on raw sockets. In other debuggers they simply never show up, and you can't tell why.

  • It notices. Cloak Proxy watches which apps connect to the internet directly and lists them under Not Using the Proxy.

  • You choose. Click one to see the domains it uses, read from its traffic and its own binary.

  • It captures. With your OK, lookups for those domains are answered by Cloak Proxy, so the app's requests come through it like everyone else's.

API client, built in

Capture it. Save it. Test it.

Right-click any captured request and it's a saved request in a collection. Then everything you'd reach for Postman for, in the same app: environments, scripts, tests, runs, mocks, load tests, specs and docs.

Run Petstore · 3 requests · 5 tests

5 passed
  1. ✓List pets · status is 20042 ms
  2. ✓List pets · returns an array42 ms
  3. ✓Create pet · status is 20188 ms
  4. ✓Create pet · id is a number88 ms
  5. ✓Get pet · matches the schema37 ms
Load test · ramp up to 20 usersp95 48 ms

11 protocols, one collection

  • GETHTTP
  • GQLGraphQL
  • gRPCgRPC
  • WSWebSocket
  • SIOSocket.IO
  • MQTTMQTT
  • MCPMCP
  • AIAI models
  • SQLSQL
  • TCPTCP
  • UDPUDP

Import Postman, OpenAPI, HAR or cURL. Export back to Postman.

  • Scripts and tests

    Postman-style pm.* scripts before and after every request

  • Runner and datasets

    Iterations, CSV or JSON data, JUnit reports

  • Mocks and specs

    Mock servers from examples; OpenAPI lint and sync

  • Flows and monitors

    Chain requests with logic; run them on a schedule

Model Context Protocol

Hand the debugging to Claude.

Cloak Proxy is an MCP server. Claude Code, Claude Desktop, Cursor or any MCP client can read your traffic, replay requests, set up mocks and breakpoints, and run your collections. Anything you can do in the app, it can do too.

Tools
82
Resources
6
Prompts
5
$ claude mcp add cloak-proxy -- cloakctl mcp

It only answers your own Mac, using a token stored on it. Assistants are told to ask before deleting anything or turning capture off.

Claude · cloak-proxy MCP

82 tools

Checkout fails in MyApp. Why?

  1. list_requests(errors_only: true, app: "MyApp")

    ↳ #412 POST pay.example.com/v1/charge → 503

  2. get_request(id: 412)

    ↳ 503 · upstream timed out after 30 s · Retry-After: 30

  3. upsert_rule(tool: "mapLocal", url: "*/v1/charge", status: 200)

    ↳ Map Local on · rule “Charge OK”

  4. replay_request(id: 412)

    ↳ 200 OK · 41 ms · served by Map Local

The payment API is timing out (503 after 30 s), so checkout never completes. I've mocked /v1/charge with a 200 so you can keep testing the flow. Switch the rule off in Tools once the API is back.

The real app

A native Mac app, not a web page in a box.

Written in Swift, with a command palette for everything (⇧⌘A) and Insights that flag leaked keys, slow endpoints and API changes on their own.

Cloak Proxy's traffic list with a decrypted JSON response open in the inspector

Everything inside

One app, end to end.

From the first byte on the wire to a load test in CI. Search it, or just read it.

152 features, all free

Click any feature to read its documentation, or browse docs.subcloak.com.

01 · 20 features

Capture

Cloak Proxy sits between your apps and the internet and records HTTP/1.1, HTTP/2 to apps and servers, HTTPS tunnels, WebSocket (ws and wss) and gRPC. It decrypts with SSL Proxying per app or per host, with wildcards, leaves the hosts on your bypass list alone, and catches apps that ignore the macOS proxy through per-app DNS capture. It turns the macOS proxy on at launch and restores your settings on quit, and a proxy guard puts your network back if it ever quits unexpectedly. Traffic is grouped by app, with icons and by domain, with pinned apps and domains and a sidebar filter. It also runs as a SOCKS5 proxy, a reverse proxy, or behind an upstream HTTP or SOCKS5 proxy with auth.

02 · 33 features

Inspect

Every request opens with request and response side by side: headers, query, body, form fields, cookies, GraphQL query and variables, JWT and Basic auth decoding, raw and a timing summary. Bodies show as a JSON tree with search and highlight, JSONPath and jq queries, or as Pretty, Raw and Hex, with HTML and image previews. It decodes gzip, deflate and Brotli, Protobuf, MessagePack and multipart forms, and Quick Preview reads Base64, JWTs, URL encoding and timestamps. The list has sortable, customizable columns, colored methods and status codes, filters with regex, content-type chips, saved filter presets, highlight colors and comments. Diff any two requests, and find anything with the command palette and global search.

03 · 19 features

Change

Breakpoints pause requests and responses so you can edit them. Map Local answers from a file, folder or inline response, Map Remote points requests somewhere else, Block List and Allow List decide what gets through, Network Conditions simulates 3G, Edge or packet loss, DNS Spoofing sends a host to another IP, No Caching strips cache headers, and JavaScript scripting rewrites anything, with a script console and shared state. Rules use wildcard or regex matching with a live URL tester, can be made from any request, and exported or imported as JSON. Mock Sets record a session and replay it offline. Send things again with Repeat, Edit & Repeat and Compose.

04 · 9 features

Understand

Insights reads your traffic for you: an API catalog with p50 and p95 timings, a secret and PII scanner, security header and cookie grades, a waterfall timeline, performance hot spots, schema change detection and alerts for errors, slow calls or matching responses. Share it as a Markdown report.

05 · 11 features

Devices

Debug more than your Mac: iPhone and iPad, the iOS, tvOS and watchOS Simulator with a one-click certificate, Android emulators and USB devices in one click, and a Terminal set up for Node, Python, Ruby, Go, curl and git. There are guides for Java, Firefox, Docker, Flutter and Electron, a certificate page with a QR code, and an IP allow list for other devices.

06 · 4 features

Secure

Bring your own root CA, use client certificates for mutual TLS, regenerate or remove the certificate any time, and write TLS keys for Wireshark.

07 · 9 features

Share

Save sessions, import and export HAR, open Charles sessions, and export to CSV, a Postman collection or OpenAPI 3 with inferred schemas. Redact secrets on export, publish to a GitHub Gist, or copy any request as cURL and 19 other languages.

08 · 39 features

Build and test

Any captured request becomes a saved request. Organize collections and folders, environments, globals and a vault for secrets, and write pre-request and test scripts with the pm.* API and shared script packages. Send HTTP, GraphQL with a schema explorer, gRPC with reflection, WebSocket, Socket.IO, MQTT 3.1.1 and 5, MCP, AI model requests, SQL for PostgreSQL, MySQL and SQLite and TCP, TLS and UDP, with 10 auth types including OAuth 2.0 and AWS Signature. Run collections in the collection runner with iterations and datasets, load test them with fixed, ramp, spike and peak profiles, serve them as mock servers, chain them into flows, watch them with monitors and webhooks. Keep OpenAPI specs with linting and sync, generate API docs, SDKs in TypeScript, Python and Swift and an MCP server from any collection, leave comments, browse history, recover from Recently Deleted, get help from Agent Mode, and version everything with Git.

09 · 8 features

Automate

From the terminal, cloakctl lists, shows and replays traffic, runs collections like Newman with JUnit reports, starts mocks and load tests, and runs as a headless CI recorder. A token-protected local API and an MCP server with 82 tools let scripts and AI assistants like Claude drive the whole app.

No trial. No tiers. No account.

Free.
For life.

Every feature on this page, free forever. We build Cloak Proxy for our own testing work and want it in every developer's hands. It's on the Mac today, and coming to every platform you debug on.

  • macOS

    Apple silicon and Intel

    Available now

  • iOS

    iPhone and iPad

    Coming soon

  • Windows

    Windows 10 and 11

    Coming soon

  • Linux

    Ubuntu, Fedora, Arch

    Coming soon

  • Android

    Phones and tablets

    Coming soon

Runs on your Mac

No account and no cloud. Traffic, collections and secrets stay on your machine.

Plain files you own

The API client's workspace is a folder of small JSON files, one per request, so it can live in Git next to your code.

Scriptable

cloakctl replays, exports and runs collections from the terminal, and records traffic headless in CI.

FAQ

Before you install it

Something else? Email hello@subcloak.com or book a call.

Is it really free?

Yes, for life. There's no trial, no paid tier and no account, and every feature on this page is included. We ask for your name and email when you download so we can tell you about new releases.

Which Macs does it run on?

Any Mac with macOS 14 Sonoma or later, Apple silicon or Intel.

Will it come to Windows, Linux, iOS or Android?

Yes, all four are on the way. Leave your email when you download and we'll tell you when your platform is ready.

Why does macOS ask me to confirm the first launch?

Cloak Proxy isn't notarized by Apple yet, so the first time you open it macOS asks you to confirm. Open System Settings › Privacy & Security, scroll down and click Open Anyway. You only do this once.

Does my traffic leave my Mac?

No. Cloak Proxy runs entirely on your Mac and has no account or cloud sync. Captured requests stay on your Mac unless you export them, publish one as a Gist, or send them to an AI model you've set up yourself.

Is it safe to install its certificate?

Cloak Proxy creates its own root certificate on your Mac, unique to your install, and adds it to your login keychain only when you click Install & Trust (macOS asks for your password). You can remove it from the Keychain or regenerate it from Settings at any time, or use your own CA.

Can I debug my iPhone, the Simulator or Android?

Yes. The Devices button walks you through iPhone, iOS Simulator, Android, Firefox, Java, Docker and Terminal setup, with the steps for trusting the certificate on each.

What about apps with certificate pinning?

Apps that pin their certificates refuse any certificate but their own, so no proxy can decrypt them without changing the app. Leave SSL Proxying off for those hosts and their traffic passes through as normal tunnels, so the app keeps working and you still see which hosts it talks to.

Can I use it from the command line or CI?

Yes. cloakctl lists and replays captured requests, runs collections like Newman (with JUnit output), starts mock servers and load tests, and can run as a headless proxy that records traffic in CI.

Stop guessing what the app sent.

Download Cloak Proxy free. One disk image, Apple silicon and Intel, macOS 14 Sonoma or later.

Download for Mac

Tell us who you are and it's yours, free for life.

Free for life · macOS 14 Sonoma or later · Apple silicon and Intel
We only use your email to tell you about Cloak Proxy releases. Privacy

Download Cloak Proxy

Free for life. Tell us who you are and it's yours.

Free for life · macOS 14 Sonoma or later · Apple silicon and Intel
We only use your email to tell you about Cloak Proxy releases. Privacy