The traffic list
Find the request you care about among thousands: filter chips, the search syntax, columns, apps and domains, on Mac, iPhone and Android.
Every exchange WireLens captures becomes a row. This page is about finding the one you need.
On the Mac#

The window has three parts:
- Sidebar. The capture status and Start Capture / Stop Capture at the top, then Traffic, Sessions, Compose, Tools and Settings. Below them, a Filter apps and domains field, All Traffic, Saved Folders, Apps, Remote Devices and Domains, each with a count. Click an entry to narrow the list to it.
- Traffic list. A table with the columns Method, Status, Host, Path, Operation, Source, Tools, Size, Time and Duration. Sort by any column, and resize or reorder them. Tools names the rules that changed a flow.
- Inspector. The selected flow's request and response. See The inspector.
Above the table sit the search field, the filter chips, the Saved filters button (a bookmark) and the Custom header columns button (a table icon). File ▸ New Tab (⌘T) opens another tab of the traffic list; ⌘1 to ⌘8 switch tabs.
Filter chips#
One click narrows the list to a kind of traffic. Several lit chips combine.
| Chip | Shows |
|---|---|
| Errors | 4xx and 5xx responses, and requests that got no response |
| Slow | Took longer than 1 s |
| Large | Request or response over 250 KB |
| WebSocket | Upgraded connections. See WebSocket |
| gRPC | gRPC calls. See gRPC, GraphQL and Protobuf |
| GraphQL | GraphQL operations |
| LLM | Calls to AI model APIs. See LLM and MCP calls |
| MCP | Model Context Protocol traffic |
| Decrypted | HTTPS that WireLens decrypted |
| Blocked | Requests your Block List stopped |
Filters opens a panel with every filter, grouped:
- Request: Method, Scheme, Protocol (HTTP/1.1, HTTP/2, HTTP/3), API (WebSocket, gRPC, GraphQL, LLM, MCP), Started (Last 5 min, Last 15 min, Last hour).
- Response: Status (status classes and No Response), Content type, Size (> 100 KB to > 10 MB), Duration (> 500 ms, > 1 s, > 3 s).
- WireLens: Capture (Decrypted, Bypassed, Truncated) and Rules (Blocked, Mapped, Rewritten, Breakpoint).
- Annotations: Has comment, Struck, and the eight annotation colours.
Chips in one section match any of them. Sections narrow each other. Clear All turns everything off.
Saved filters and custom columns#
The Saved filters button keeps the current search and chips under a name. Right-click a saved filter for Apply, Update from Current, Rename…, Duplicate, Move Up, Move Down and Delete.
The Custom header columns button turns a Header, a Query parameter or a JSON path from the request or the response into a column. Custom columns sort, and they stay after a restart. A flow without the value shows a dash.
Search syntax#
The search field searches host, path and status as you type. Add a field to be precise. Terms combine with AND.
| Field | Matches | Example |
|---|---|---|
host | Hostname | host:api.example.com |
path | Path, without the query | path:^/v1 |
url | The full URL, query included | url:^https://api. |
query | Query string only | query:page=2 |
method | HTTP method | method:=post |
status | Response status | status:>=400 |
duration | Time taken, in ms or s | duration:>500ms |
reqsize | Request bytes | reqsize:>500kb |
respsize | Response bytes | respsize:>1mb |
type | Content type, either side | type:json |
header | A header, either side | header:Content-Type: json |
reqheader | A request header | reqheader: |
respheader | A response header | respheader:Set-Cookie |
body | Request or response payload | body: |
json | JSONPath over a JSON payload (Pro) | json: |
jq | A jq program over a JSON payload (Pro) | jq:.errors[0].code |
all | Everything, headers and bodies too | all:session-id |
ip | Destination address | ip:104.18 |
port | Destination port | port:8443 |
app | The app that sent it | app:Acme |
comment | Your comment on the flow | comment:flaky |
note | WireLens's capture note on the flow | note:timed |
operation | GraphQL operation or gRPC method | operation:GetUser |
protocol | HTTP version | protocol:HTTP/2 |
scheme | http or https | scheme:=http |
Some fields have shorter or alternative names: domain for host, code for status, op for operation, mime for type, any for all. A word WireLens does not know as a field is searched as plain text.
| Operator | Meaning |
|---|---|
: | contains |
:= | equals |
:!= | does not equal |
:^ | starts with |
:$ | ends with |
* ? | wildcards |
:~ | regular expression |
:> :< :>= :<= | compare numbers |
:100-599 | a numeric range |
!field: or -field: | does not match |
"…" | keep spaces in a value |
A few that earn their place:
host:api.example.com status:>=500
method:=post respsize:>1mb
json:$.errors[0].code -host:*.example.net
operation:CheckoutMutation duration:>1s
The ? next to the search field lists every field; click one to type it for you. Edit ▸ Find in Traffic (⌘F) jumps to the search field.
Keep what matters#
- Annotate. Flow ▸ Annotate… (⌥⌘K) gives a flow a colour, a comment or a strike-through.
comment:finds comments again. - Saved Folders. Right-click flows and choose Add to Folder ▸ New Folder…. A folder keeps its own copy of the flows, which stays after you clear the capture.
- Diff (Pro). Select two flows and press ⇧⌘D (Flow ▸ Diff Selected Flows) to compare them side by side.
- Delete. ⌘⌫ deletes the selected flows, and ⌘Z brings them back.
- Clear. Capture ▸ Clear Captured Traffic… (⇧⌘K) deletes every captured flow and every finished session. It asks first and cannot be undone.
On iPhone and iPad#

The Traffic tab switches between Domains, which groups requests by host, and Requests, the flat list. The toolbar has the magnifier (search and filters) and the trash can (Clear Traffic). The capture bar at the bottom starts and stops capture; tap it for an Overview with status codes, top hosts and the slowest requests.
Search matches host, path, method and status. The filter row under it has these chips:
| Chip | Shows |
|---|---|
| Errors | Responses with status 400 or higher |
| 4xx, 5xx | One status class |
| Failed | Requests that got no response at all |
| Decrypted | Flows WireLens decrypted |
| GraphQL | JSON requests to a path containing graphql |
| Images | Image responses |
| WebSocket | Upgraded connections |
| Video | Video responses |
After them come Method, Status and Scopes. Scopes opens an editor with Host & Path, Header, Body, Content-Type, Flags, Duration (ms) and Size (bytes). Flags includes gRPC, Rewritten, Truncated, Pinned likely and Payload error (200 that failed).
Rows carry chips for what happened to them: Pinned, QUIC, Encrypted, the transport, and the tool that changed the flow.
The ⋯ menu holds Overview, Historical Sessions, Refresh, Export Session HAR, Share Session to Mac, and Share to Team Workspace when your key carries Team Workspace.
On Android#


The Traffic tab shows Capturing · N flows · N hosts under its title. Switch between Domains and Requests; with Group by App on in the ⋮ menu, Domains becomes Apps. The floating button starts and stops capture.
- Search matches URL, method, status and app.
- Filters: Errors, Decrypted, Method, Status and App.
- ⋮ menu: Group by App, Overview (flows, hosts, decrypted, errors, transferred, median time, status mix, top hosts, slowest), Sessions, Export HAR, and Share to Team Workspace with a Team Cloud key.
- Clear traffic empties the list and offers Undo.
Rows carry chips such as Decrypted, Encrypted, Blocked, Map Local, Map Remote, Breakpoint, Script and Rewrite. Long-press a host or a request for the copy actions and rule shortcuts; the host menu also has Delete All from Host, the request menu Delete.
What the status column tells you#
- A number is the status the server sent.
- Not included marks a tunnel to a host you have not chosen to decrypt. Add the host to see inside. See SSL Proxying.
- Decrypt off means the SSL Proxying switch is off. The Mac and Android show a banner with Turn On.
- Excluded is a host on the Exclude list. Pinned is an app that refused the WireLens certificate.
- Failures are named for what happened: DNS failed, Refused, Timed out, Unreachable, Reset, Client aborted, No response, Blocked, Aborted (at a breakpoint), Script aborted. WireLens shows a status code only when a response really came back.
Which app sent it#
- Mac: the Source column names the app that opened the connection, and the sidebar lists traffic under Apps. Phones, simulators and emulators appear under Remote Devices. Traffic WireLens cannot tie to an app shows as Unattributed.
- Android: every request shows its app. Group by App and the App filter narrow the list to one.
- iPhone and iPad: iOS does not tell a VPN app which app sent a request. Rows are grouped by domain instead.
Something here is unclear, or wrong for your setup? Contact support or write to support@wirelens.app.