The inspector
Headers, bodies, JSON trees, images, hex, cookies, tokens, timing and your own preview tabs, for every request and response.
Select a flow and the inspector shows both halves of the exchange. On the Mac the request and the response sit side by side, below the traffic list or beside it. Choose the arrangement in View ▸ Inspector Layout, or detach the inspector into its own window with ⌥⇧⌘5.
Tabs#
| Request | Response |
|---|---|
| Header · Query · Body · Raw · Summary | Header · Body · Raw · Summary |
- Summary is the overview: host, path, scheme, negotiated protocol, when it started, how long it took, a timing bar for the phases of the exchange, the TLS cipher suites the client offered, and which debugging tools changed the flow.
- Raw shows the message as it went over the wire. For HTTP/2 that means pseudo-headers such as
:methodand:authorityin frame order, not a reconstructed HTTP/1 message. - Query lays out query parameters as a table you can copy.
- Cookies, Auth and Trailers appear when a side has cookies, credentials or trailers, and stay out of the way when it does not.
- WebSocket flows add Messages, the frame timeline. See WebSocket.
Reading bodies#
WireLens picks a viewer from the content type and the bytes themselves:
- JSON as a collapsible, coloured tree, or as formatted text.
- Images previewed in place with their metadata, including Base64 images inside text.
- Markdown, XML as a tree, and PDF previews.
- Server-Sent Events as a list of events, including streamed AI responses.
- Forms and multipart bodies as tables of fields.
- Hex for anything binary, and a minimap for long bodies.
- Protobuf and gRPC decoded, with field names once you import descriptors. See gRPC, GraphQL and Protobuf.
- Compressed bodies are decompressed for reading, while Raw keeps what was sent.
Query a JSON body#
The JSON viewer has a query bar. Type a JSONPath expression such as $.items[?(@.price>50)].sku, or a jq program such as .errors[0].message, and the tree narrows to the result. The same two languages work in the traffic list's search box as json: and jq:.
Headers that explain themselves#
- Bearer tokens in
Authorizationare decoded, so a JWT's claims and expiry are readable without pasting it anywhere. - Cookies are split into name, value and attributes.
Your own preview tabs#
Tools ▸ Custom Preview Tabs adds tabs of your own to the inspector: force a format for a content type WireLens does not recognise, or write an onPreview script that turns a body into something readable, such as a decoded, decrypted or reformatted view of your app's own payloads.
Custom columns#
Promote a request or response header, a query parameter or a value inside a JSON payload into a column of the traffic list. Columns sort and persist across restarts.
Quick looks and copies#
- Quick Preview (⌥⌘P) opens the selected body in a large preview.
- Copy as cURL (⇧⌘C), or generate code for more than a dozen languages and clients. See Compose and repeat.
- Annotate a flow with a colour or a comment. Comments are stored with the capture and searchable with
comment:.
Something here is unclear, or wrong for your setup? Contact support or write to support@wirelens.app.