Breakpoints
Pause a matching request or response, edit it, then send it on, abort it or give yourself more time.
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:
| Setting | What it does |
|---|---|
| Host | Which host to pause, such as api.example.com or *.example.com. |
| Path | Which paths, such as /v2/cart/*. A path with no * matches that one path only. |
| Break on | Request, response, or both. |
| Wait | How long WireLens holds the exchange before the timeout choice runs. Blank uses the default wait of 60 seconds. |
| On timeout | Send the original on unchanged, or abort it. |
| Notify | Whether a paused exchange sends you a notification (Mac and iPhone). |
| Conditions | Optional. 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 want | Mac | iPhone and iPad | Android |
|---|---|---|---|
| Send your edited version on | Execute | Execute | Continue |
| Send the original on | Execute Unchanged | Execute in the Waiting Breakpoints list | Continue from the list or the notification |
| Get another minute | Extend 1 Minute | +1 min | +1 min on the notification, 1 min in the list |
| Fail the exchange | Abort | Abort | Abort |
| Act on every paused exchange | Execute All, Abort All | Execute All, Abort All | Continue 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#
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.

- The editor switches between Structured and Raw Message. In Raw Message you edit the whole HTTP message as text.
- Paste a
curlcommand 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#

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 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.
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.