ns CLI
Run locally without us. No middleman. No rate limits. Same engine as ns.lol.
MITGo17 resolvers
Install
# Homebrew
brew install yokedotlol/tap/ns
# Or one-liner
curl -sSL https://ns.lol/install.sh | bash
# Or download from GitHub Releases
curl -sL https://github.com/yokedotlol/ns-lol/releases/latest/download/ns_darwin_arm64.tar.gz | tar xz
sudo mv ns /usr/local/bin/
Quick Start
# Full DNS lookup
ns stripe.com
# JSON output (default when piped)
ns stripe.com | jq
# Specific record type
ns stripe.com -t MX
# Propagation check across 17 global resolvers
ns stripe.com propagation
ns stripe.com -p
# DNS health audit
ns stripe.com health
# Email security (SPF/DKIM/DMARC)
ns stripe.com email
# DNSSEC & security
ns stripe.com security
# Side-by-side comparison
ns compare stripe.com shopify.com
Three Modes
| Mode | When | Use |
| Pretty | TTY (default) | Human-readable, colored output |
| JSON | Piped / --json | Machine-readable, matches ns.lol API |
| Quiet | --quiet | Exit code only — for scripts |
Commands
ns <domain> | Full DNS lookup (all record types) |
ns <domain> -t <type> | Query specific record type (A, AAAA, MX, NS, TXT, etc.) |
ns <domain> propagation | Check propagation across global resolvers |
ns <domain> health | DNS health audit |
ns <domain> email | Email security audit (SPF/DKIM/DMARC) |
ns <domain> security | DNSSEC & security check |
ns compare <a> <b> | Side-by-side DNS comparison |
ns version | Print version info |
Options
-j, --json | JSON output (default when piped) |
-q, --quiet | Exit code only |
--no-color | Disable ANSI colors |
-t, --type <TYPE> | Record type (A, AAAA, MX, NS, TXT, etc.) |
-p | Shortcut for propagation |
--timeout <dur> | Request timeout (default 30s) |
Pipe Support
# Read domains from stdin
echo "example.com" | ns
# Batch from a file
cat domains.txt | ns
Exit Codes
0 | Lookup succeeded |
1 | Lookup succeeded, issues found |
2 | Usage error or request failed |