Skip to content

Filtering captures

The capture list’s search bar accepts a small filter DSL. It evaluates left to right, all space-separated terms must match (AND).

Keys

KeyMatchesExample
host:server_host substring (SQL LIKE, * works)host:api.example.com, host:*.dev
method:exact method, case-insensitivemethod:POST
status:single status or rangestatus:200, status:500..599, status:5..
mime:response Content-Type substringmime:json, mime:image/
path:URL path substring (* works)path:/v1/*, path:auth
size:response total bytes, single or rangesize:0, size:1000..
duration:request duration in msduration:1000.. (slow), duration:..50 (fast)
error:exact error_kind valueerror:tls_handshake, error:pinning

Keys are case-insensitivehost:, Host: and HOST: all resolve to the same clause. Useful when iOS autocapitalises the first letter.

Negation

Prefix any term with ! to exclude matches:

!error:tls_handshake # drop everything that failed TLS
!host:*.cdn.example.com # ignore CDN noise
!path:/healthz # hide health-check pings

Barewords

A term without a colon is treated as a substring search across host or path simultaneously:

google # any capture touching google.com or /google
docs # matches host:docs.example.com OR path:/docs

Quote phrases that contain spaces or special characters: "some phrase".

Saving filters

The ☆ button on the right of the search bar saves the current filter to the sidebar. Pinned filters live above non-pinned and survive restarts.

Syntax highlighting

Tokens light up as you type:

ColourMeaning
accent (blue)Known key (host, method, …)
red, dotted underlineUnknown key — backend will reject this term
redThe ! negation prefix
mutedThe : separator
defaultValues and barewords

Unknown keys are flagged immediately, before sending to the backend.

What’s not (yet)

  • No OR between terms. Workaround: save two filters and switch.
  • No regex (deliberate — DSL is for skimming, not full grep).
  • Nothing matches inside the body. Use the body viewer’s Tree mode to navigate captured bodies.