Test expressions against request values. Everything stays in your browser.
Separate rules with a blank line. Each rule can span multiple lines. Top-level or branches are tested separately; unparseable branches are highlighted and skipped.
Add rules to get started.
Use eq, ne, gt, ge, lt, le, contains, wildcard, in {…}, and, or, xor, not, and parentheses. Symbol aliases such as ==, !=, &&, and || also work.
Functions: lower(), upper(), len(), starts_with(), ends_with(). Values: double-quoted or raw strings (r"…"), integers, true/false, and unquoted IPv4/IPv6 addresses with eq/ne. Enter IP request values as Text. Cookie and request header expressions support any(http.request.cookies["name"][*] eq "value"); the same syntax works with http.request.headers. Enter one value per line. Field types are fixed. Unset values default to empty text, 0 for integers, and false for booleans.
This is a limited expression simulator. CIDR, IP sets, regex, strict wildcard, other array/map operations, named lists, and other functions are unsupported. It does not simulate Cloudflare actions or rule ordering.
Values update results as you type.
Your rules will determine the fields shown here.
No rules to evaluate.