A fast, colorful DNS lookup and domain intelligence CLI. Works out of the box with no account required - or connect to VectorDNS for WHOIS, availability checks, SSL monitoring, and more.
brew install Vector-DNS/tap/vdnsgo install github.com/Vector-DNS/vdns-cli/cmd/vdns@latestDownload pre-built binaries for Linux, macOS, and Windows from the releases page.
# DNS lookup
vdns lookup example.com
# Shorthand record types
vdns a example.com
vdns mx google.com
vdns ns github.com
vdns txt cloudflare.com
# Filter by type
vdns lookup example.com -t A,MX,TXT
# Multiple domains
vdns lookup example.com google.com github.com
# Propagation check
vdns prop cloudflare.com
# Compare two domains
vdns compare google.com cloudflare.com
# Benchmark resolver speed
vdns benchmark
# Watch mode
vdns lookup example.com --watch
vdns prop example.com --until-consistentNo account needed. All of the above run locally using your system's DNS resolver.
Pure Go DNS resolution via your system resolver (or public resolvers for propagation). No network calls to VectorDNS. No rate limits.
Connect a VectorDNS account to unlock additional features:
vdns login
vdns whois example.com # WHOIS/RDAP registration data
vdns avail coolstartup.io # Domain availability
vdns ssl cloudflare.com # SSL certificate details
vdns lookup example.com # DNS lookup with DNSSEC validation| Command | Description | Mode |
|---|---|---|
vdns lookup <domain> [domain...] |
DNS record lookup | Local / Remote |
vdns a/aaaa/mx/ns/txt/cname/soa/caa/srv <domain> |
Shorthand lookups | Local / Remote |
vdns prop <domain> [domain...] |
DNS propagation check | Local / Remote |
vdns compare <domain1> <domain2> |
Side-by-side DNS comparison | Local / Remote |
vdns benchmark [domain] |
Measure resolver response times | Local |
vdns whois <domain> |
WHOIS/RDAP data | Remote |
vdns avail <domain> |
Domain availability | Remote |
vdns ssl <domain> |
SSL/TLS certificate | Remote |
vdns history [domain] |
Local lookup history | - |
vdns docs |
Quick reference and open docs | - |
vdns login |
Connect VectorDNS account | - |
vdns logout |
Remove credentials | - |
vdns whoami |
Show profile and status | - |
vdns config show |
Display configuration | - |
vdns config set <key> <value> |
Update configuration | - |
vdns config add-profile <name> |
Create a new profile | - |
vdns config remove-profile <name> |
Remove a profile | - |
vdns version |
Print version info | - |
| Flag | Description |
|---|---|
--json |
Output results as JSON |
--no-color |
Disable colored output |
--local |
Force local mode even when logged in |
-v, --verbose |
Show verbose output including rate limits |
Monitor DNS changes in real-time. Works with lookup and prop:
| Flag | Description |
|---|---|
-w, --watch |
Run continuously, refreshing at each interval |
--interval <duration> |
Refresh interval (default: 1m, min 30s for remote) |
--until-consistent |
Stop when all resolvers agree (propagation only) |
vdns a example.com --watch
vdns lookup example.com --watch --interval 30s
vdns prop example.com --until-consistent
vdns prop example.com --watch --interval 30s --until-consistentPress Ctrl+C to stop. Remote mode enforces a minimum 30s interval to respect API rate limits.
Pass multiple domains to any lookup or propagation command:
vdns lookup example.com google.com github.com
vdns a example.com cloudflare.com
vdns prop example.com google.comResults are displayed sequentially with clear separation.
Compare DNS records between two domains side by side:
vdns compare google.com cloudflare.com
vdns compare example.com example.org -t A,MX,NSMatching records are shown plain, differences are highlighted. Works in both local and remote mode.
Measure response times for all public resolvers from your machine:
vdns benchmark # Query google.com by default
vdns benchmark example.com # Query a specific domainResults are sorted by latency and color-coded. Also shows your detected system resolver.
Lookup results are stored locally by default. Browse, search, export, or clear:
vdns history # Last 50 lookups
vdns history example.com # Filter by domain
vdns history --export # Export as JSON
vdns history --export --format csv # Export as CSV
vdns history --clear # Clear all historyHistory is stored as JSONL at:
- Linux:
~/.local/share/vdns/history.jsonl - macOS:
~/Library/Application Support/vdns/history.jsonl - Windows:
%LOCALAPPDATA%\vdns\history.jsonl
Max entries default to 10000. Edit max_history_items in config.yaml to change.
All commands support --json for scripting:
vdns a github.com --json | jq '.Records.A[].Value'
vdns avail mycoolsite.com --json| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Error, or domain is taken (vdns avail) |
vdns avail example.com && echo "Available!" || echo "Taken."Config is stored at:
- Linux:
~/.config/vdns/config.yaml - macOS:
~/Library/Application Support/vdns/config.yaml - Windows:
%APPDATA%\vdns\config.yaml
| Key | Values | Description |
|---|---|---|
mode |
local, remote |
Preferred mode |
server |
URL | Override API server (default: https://api.vectordns.io) |
profile |
name | Switch active profile |
history |
true, false |
Toggle local history (default: on) |
upsell |
true, false |
Toggle upgrade suggestions |
vdns config set mode remote
vdns config set server https://custom.api.example.com
vdns config set history false
vdns config showMultiple VectorDNS accounts:
vdns config add-profile work
vdns config set profile work
vdns config remove-profile work| Variable | Description |
|---|---|
VDNS_API_KEY |
Override the API key from config |
Propagation checks and benchmarks query these public resolvers:
- Google DNS (8.8.8.8, 8.8.4.4)
- Cloudflare DNS (1.1.1.1, 1.0.0.1)
- Quad9 (9.9.9.9, 149.112.112.112)
- OpenDNS (208.67.222.222, 208.67.220.220)
- Control D (76.76.2.0, 76.76.10.0)
- AdGuard DNS (94.140.14.14, 94.140.15.15)
- CleanBrowsing (185.228.168.9, 185.228.169.9)
- Level3 (4.2.2.1)
Completions are installed automatically via Homebrew. For manual setup:
# Bash
vdns completion bash > /etc/bash_completion.d/vdns
# Zsh
vdns completion zsh > "${fpath[1]}/_vdns"
# Fish
vdns completion fish > ~/.config/fish/completions/vdns.fishMan pages are included in Homebrew installs and release archives:
man vdns
man vdns-lookup
man vdns-propgit clone https://github.com/Vector-DNS/vdns-cli.git
cd vdns-cli
go build ./cmd/vdns/Build with version info:
go build -ldflags "-X github.com/Vector-DNS/vdns-cli/cmd/vdns/cmd.Version=1.0.0 \
-X github.com/Vector-DNS/vdns-cli/cmd/vdns/cmd.Commit=$(git rev-parse --short HEAD) \
-X github.com/Vector-DNS/vdns-cli/cmd/vdns/cmd.Date=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
./cmd/vdns/Run tests:
go test ./... # All tests (includes network tests)
go test ./... -short # Skip network testsGPLv3 - see LICENSE for details.