Rule Debugger
Debug Clash/Mihomo and sing-box rules in local batches with per-target static candidates, indeterminate and no-result explanations; earlier unknown rules retain their effect.
- 1Config & targets
- 2Run debugger
- 3View matches
Add a configuration and the domains or IPs to test. Try the example to get started.
1. Rule input
Add a full config. For a rules-only fragment, change the input type in Advanced options.
2. Batch targets
One domain or IP per line, such as example.com. See Advanced options for other formats.
Clash/Mihomo accepts YAML or JSON; sing-box uses strict JSON. Full configuration checks actual policies, outbounds and explicit final.
One domain, IP, host:port or HTTP(S) URL per nonempty line. Or use a JSON object with explicit domain, ip, network and port. URLs contribute only the literal host and explicit port, without default ports/network or DNS.
Rules: 256 Ki characters. Targets: 32 Ki / 100 items / 2 Ki per line. Rules × targets: 20,000 checks. Full report: 2 Mi characters. Rule files: 1 MiB; target files: 128 KiB. Entire operation rejected on overflow, never truncated.
Evaluates only fixed metadata and supported rules. GeoIP/Geosite/rule sets/logical/process conditions and runtime actions stay indeterminate. No downloads, sniffing, speed tests or actual group selection.
Static candidates and real traffic have different scopes
Input and report stay in page memory. Format/source/account/language changes or leaving clear the workspace; input edits discard reports. No configuration uploads. Reports omit node passwords/server addresses/provider URLs/URL paths and queries/raw unknown containers; explicit targets, names and conditions may remain private.
Debug explicit target batches with original rule numbers and unknown conditions retained; all content stays in your browser.
Workflow
- Choose rule format and Full configuration or Rules only, then paste or read a local file. Changing options clears the workspace.
- Enter one domain, IP, host:port or HTTP(S) URL per line. Complex targets use strict JSON objects allowing only domain, ip, network and port. URLs add no default port/network and make no requests.
- Debug explicitly, filter/search targets and inspect any target for original rule numbers and match/no-match/unknown explanations. Copy the complete batch or single-target projected report.
Scope
ASCII/Punycode exact domains/suffixes/literal keywords, IPv4/IPv6 CIDR, TCP/UDP and integer ports reuse the three-valued model. sing-box address fields use OR; port/network use AND. Unknown/logical/legacy/GeoIP/Geosite/rule-set/process conditions and matched nonterminal actions are never skipped; later candidates remain conditional.
Full configuration uses actual policies, outbounds and final. Rules-only input creates no targets or defaults and retains original numbers; missing targets cannot become available. This is not complete client validation, live group selection or a real traffic result.
Local processing and limits
Up to 256 Ki rule characters, 32 Ki/100 targets, 20,000 rules × targets and 2 Mi report characters. Overflow rejects the complete operation. Page memory only: input changes discard results; account/language/format/source changes or leaving clear the workspace. Reports omit node credentials/addresses, provider URLs, private URL paths and unknown containers; targets, names and recognized conditions may remain private. Interactive flow diagrams, live groups, geographical datasets and full runtime conditions remain separate work.
Discussion 0
Ask a question or share something useful for the next reader.
Sign in to comment, reply and vote.
Sign in to join