Skip to content

Debugging tools

Repeat and Compose

Send a captured request again with Repeat, change it first with Edit and Repeat, or write a new one in Compose. All of them go through your debugging tools.

Repeat sends a captured request again, exactly as recorded. Edit and Repeat opens it in Compose so you can change it first, and Compose lets you write a request from scratch or from a cURL command. Every request you send this way goes through Cloak Proxy and your debugging tools, and appears in the traffic list like live traffic. Use them to check a fix, reproduce a bug, or try a rule without touching the app.

  1. Select one or more requests in the traffic list.

  2. Choose Proxy › Repeat Selected Request or press ⌘ R.

    You can also right-click and choose Repeat (or Repeat N Requests with several selected), or search for Repeat Selected Request in Search Everything.

  3. Each request is sent again with its recorded method, URL, headers and body. The new requests appear in the traffic list with the app Cloak Proxy (Repeat).

The original rows aren’t changed. Encrypted tunnels can’t be repeated, because Cloak Proxy never saw the requests inside them.

  1. Select a request in the traffic list.

  2. Choose Proxy › Edit and Repeat… or press ⌥ ⌘ E. You can also right-click it and choose Edit and Repeat….

  3. The Compose window opens with the request’s method, URL, headers and body. The body is decompressed to readable text, and the Content-Length, Connection and Proxy-Connection headers are left out.

  4. Change what you need and click Send (⌘ ↩).

Choose File › Compose Request or press ⌥ ⌘ N. A new request starts as GET https:// with the header Accept: */*.

Compose: the request on top, the response below.

  1. Method.
  2. URL. Press Return to send, or paste a curl command to import it.
  3. Import a curl command.
  4. Send through Cloak Proxy (⌘↩).
  5. Headers, Query, Body and the cURL equivalent.
  6. The response, with the same viewers as the main inspector.
The Compose window with a POST to https://api.example.com/v1/orders?expand=items, one Content-Type header, and a JSON response shown below in the tree viewer
Control What it does
Method GET, POST, PUT, PATCH, DELETE, HEAD or OPTIONS.
URL The full URL, including the query string. Press ↩ in the field to send. Pasting a whole curl … command here imports it.
Import cURL Opens a sheet where you paste a curl command. See Import a curl command.
Send Sends the request (⌘ ↩). Disabled until the URL has a host, and while a request is being sent.
Tab What it shows
Headers The headers, with their count on the tab. Click Add for a new one; click the minus button to remove one. Headers with an empty name aren’t sent.
Query The URL’s query parameters as name and value pairs. Add adds a name=value pair to edit. Changes update the URL.
Body The body as text. JSON shows Valid JSON with Format and Minify, or Invalid JSON.
cURL The request as a curl command, kept in sync with your edits.

If the body is valid JSON and you haven’t set a Content-Type header, Cloak Proxy adds Content-Type: application/json when you send.

After you send, the bottom half shows the result: the method, URL, status, duration and size, and the response tabs and body viewers you know from the inspector. Before the first send it says Send the request to see the response here.

The request also appears in the main traffic list with the app Cloak Proxy (Compose).

  1. Copy a curl command, for example with Copy as cURL in a browser’s developer tools.

  2. Click Import cURL. If the clipboard holds a curl command, it’s already pasted in.

  3. Click Import. The method, URL, headers and body fill the Compose window.

You can also paste the command straight into the URL field. If the command can’t be read, Compose shows Couldn’t import that curl command with the reason. The sheet’s description lists where commands usually come from: Chrome, Safari or Firefox (Copy as cURL), API docs, or a teammate. See Import for the curl options Cloak Proxy understands.

The Compose window keeps your request while Cloak Proxy is running. Edit and Repeat replaces it with the selected request.

Repeated and composed requests take the same path as live traffic, so every enabled tool applies:

  • A breakpoint pauses them, scripts change them, and Map Local or a mock set can answer them without the network.
  • Map Remote and DNS Spoofing change where they go.
  • Alerts check them when they finish.
  • In scripts, context.clientApp is "Cloak Proxy (Repeat)" or "Cloak Proxy (Compose)", so a script can treat them differently.

This makes Compose a quick way to test a rule: send a request that should match and check the badge in the traffic list.

Repeat from the command line or an AI assistant

Section titled “Repeat from the command line or an AI assistant”
  • cloakctl replay ID sends a captured request again.
  • The MCP server has replay_request (send a captured request again, unchanged) and edit_and_replay (send a modified copy, or a new request).

Compose is for quick, one-off requests through the proxy. To save requests, organize them in collections, use variables and environments, or write tests, use the API client (⇧ ⌘ O). You can send a captured request there with Save to API Client in the traffic list’s right-click menu.