Breakpoints

Pause a matching request or response, edit it, then send it on, abort it or give yourself more time.

Mac iPhone and iPad Android

A breakpoint holds a matching exchange inside WireLens before it goes on. You can pause the request before it reaches the server, the response before it reaches the app, or both. While it waits you can change the URL, method, headers, status and body, then send it on or abort it.

Add a breakpoint#

  • Mac: select a flow and choose Flow ▸ Create Rule ▸ Breakpoint on Request… (⌥⌘B) or Breakpoint on Response…. The same items are under Create Rule when you right-click a flow, and right-clicking a host offers Add Breakpoint for ‹host›. To write one by hand, open Tools ▸ Breakpoints and click Add Breakpoint.
  • iPhone and iPad: long-press a host and choose Add Breakpoint for Host, or open a request and choose Breakpoint This URL from its ⋯ menu. To write one by hand, open Tools ▸ Breakpoints.
  • Android: long-press a host or a request and choose Breakpoint…, or choose Breakpoint This URL in a request's menu. To write one by hand, open Tools ▸ Breakpoints and tap New breakpoint.

Starting from a flow fills in its host and path. Each rule has:

SettingWhat it does
HostWhich host to pause, such as api.example.com or *.example.com.
PathWhich paths, such as /v2/cart/*. A path with no * matches that one path only.
Break onRequest, response, or both.
WaitHow long WireLens holds the exchange before the timeout choice runs. Blank uses the default wait of 60 seconds.
On timeoutSend the original on unchanged, or abort it.
NotifyWhether a paused exchange sends you a notification (Mac and iPhone).
ConditionsOptional. On the Mac, narrow the rule by method, GraphQL operation or a request header, and for responses by status class, content type or a response header. On Android, by method.

Every platform has a master switch that stops all pausing without deleting your rules: Arm breakpoints on the Mac, Breakpoints Armed on iPhone and iPad, Breakpoints enabled on Android.

When a breakpoint fires#

The paused exchange waits for you. Open it to edit:

  • A paused request: method, URL, query, headers and body. Changing the URL sends the request to the new host and path.
  • A paused response: status, headers and body.

Then decide what happens next. The buttons have slightly different names on each platform:

What you wantMaciPhone and iPadAndroid
Send your edited version onExecuteExecuteContinue
Send the original onExecute UnchangedExecute in the Waiting Breakpoints listContinue from the list or the notification
Get another minuteExtend 1 Minute+1 min+1 min on the notification, 1 min in the list
Fail the exchangeAbortAbortAbort
Act on every paused exchangeExecute All, Abort AllExecute All, Abort AllContinue All, Abort All

What you send is exactly what the server or the app receives. While an editor is open WireLens holds the exchange and its wait stops counting down. The app you are testing still has its own timeout: edit quickly.

An aborted exchange is recorded as aborted at a breakpoint, with no server status. On the Mac and iPhone, On Abort in the editor chooses how: close the connection with no reply, which the app sees as a network failure, or answer with an HTTP status you type.

What the capture records#

The capture shows what really went over the wire. When you edit a paused body, the recorded body is the edited one, matching what the app actually received. A flow a breakpoint touched carries a Breakpoint mark in the traffic list. On the Mac its status reads Paused while it waits.

On the Mac#

Traffic
Rules
Setup
Breakpoints
Pause matching requests and responses to edit them.
Behaviour
Arm breakpointsMaster switch. Rules keep their own on/off state.
Notify when a breakpoint pauses
Play a sound with the notification
Default waitSeconds before a rule's On timeout action runs.
60
Rules
2 rules · 1 armedExpand AllEnable AllDisable All
Checkoutapi.acme.dev /v2/cart/*requestresponse
Host
api.acme.dev
Path
/v2/cart/*
Break on
RequestResponse
Wait
60seconds. Blank uses the default wait.
On timeout
Execute unchanged
Notify
Conditionsany request
Highlight
Folder
Checkout
Test this rule
Fired 4× · 9s ago·https://api.acme.dev/v2/cart/items
payments.acme.dev /v1/intents*request
Add Breakpoint
* matches any text, including dots and slashes.
Folders
Checkout
Folder nameTop levelAdd Folder
Tools ▸ Breakpoints

Paused exchanges collect in the Waiting Traffic window: Tools ▸ Waiting Traffic (⇧⌘B), or the Waiting Traffic item in the menu bar status menu, which shows how many are waiting.

A paused POST /v2/checkout response in the Waiting Traffic window
Waiting Traffic, editing a paused response
  • The editor switches between Structured and Raw Message. In Raw Message you edit the whole HTTP message as text.
  • Paste a curl command into the URL field of a paused request and WireLens takes the URL, method, headers and body from it.
  • Bulk Edit… on the headers lets you paste a whole header block at once.
  • ⌘↩ is Execute.
  • On Abort ▸ Respond with a status instead of resetting answers with the status in Abort status instead of closing the connection.

In Tools ▸ Breakpoints, the Behaviour group holds Arm breakpoints, Notify when a breakpoint pauses, Play a sound with the notification and Default wait. Rules can be sorted into folders, and Test this rule checks a rule against sample URLs before you switch it on.

On iPhone and iPad#

The Tools tab with Breakpoints at the top
The Tools tab

Tools ▸ Breakpoints has Breakpoints Armed, Default Wait, Notify When Paused and Notification Sound, then your rules.

Paused exchanges appear in Tools ▸ Waiting Breakpoints and as a Time Sensitive notification with Execute, Abort and +1 min. You can answer from the notification without leaving the app you are testing. Tap a row to open the editor, titled Paused Request or Paused Response, with Execute, Abort and +1 min next to the deadline. For a paused response, the editor can also show the request it answers.

If notifications are off for WireLens, Waiting Breakpoints says Paused flows can't reach you and offers Allow Notifications.

On Android#

Tools ▸ Breakpoints on Android
Tools ▸ Breakpoints

Tools ▸ Breakpoints has the Breakpoints enabled switch, Test a URL (which rules would act on a URL you type) and your rules. The editor has:

  • Match: pick a captured request or type a pattern, then choose Methods.
  • Pause: Request, Response or Both.
  • If nobody answers: Wait for 30 s, 1 min, 2 min or 5 min (or any time from 5 to 600 seconds), Then Continue unchanged or Abort it.

A paused exchange posts a Request paused or Response paused notification with a countdown and Continue, Abort and +1 min. Tap the notification itself to open the editor. Answering from the notification keeps you in the app you are debugging, which matters on Android: it closes the connections of an app you switch away from. Allow notifications in the Setup Guide (Allow notifications) or WireLens cannot reach you.

Tools ▸ Waiting Breakpoints lists everything paused. Swipe right to continue, left to abort, or use ⋮ ▸ Continue All and Abort All. Tap one to Edit request or Edit response; Continue then sends your edited version. The Tools tab shows a banner while anything is paused, and the launcher icon has a Breakpoints shortcut.

Worth knowing#

  • The host has to be decrypted for a breakpoint to see an HTTPS request. See SSL Proxying.
  • Request bodies that stream, such as client-streaming gRPC calls, cannot be paused on the way out. Their responses still can.

Free and Pro#

The free plan includes one breakpoint rule on every platform. Pro removes the limit.

Command line and MCP#

The command line and the MCP server run on the Mac. wirelens ships inside the app and is not on your PATH until you link it once.

bash
wirelens rules breakpoint --host api.example.com --path '/v2/cart/*'
wirelens rules list
wirelens rules rm <id>

The MCP tools are add_breakpoint, list_paused_flows and resume_paused_flow. With changes allowed, an agent can read what is paused and continue it, edited or as it was, abort it, or extend its wait. The same exchange stays in Waiting Traffic, and whichever side answers first decides.

Something here is unclear, or wrong for your setup? Contact support or write to support@wirelens.app.