Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vdns

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.

Install

Homebrew (macOS/Linux)

brew install Vector-DNS/tap/vdns

Go

go install github.com/Vector-DNS/vdns-cli/cmd/vdns@latest

Binary

Download pre-built binaries for Linux, macOS, and Windows from the releases page.

Quick Start

# 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-consistent

No account needed. All of the above run locally using your system's DNS resolver.

Modes

Local (default)

Pure Go DNS resolution via your system resolver (or public resolvers for propagation). No network calls to VectorDNS. No rate limits.

Remote

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

Commands

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 -

Global Flags

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

Watch Mode

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-consistent

Press Ctrl+C to stop. Remote mode enforces a minimum 30s interval to respect API rate limits.

Batch Lookups

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.com

Results are displayed sequentially with clear separation.

Compare

Compare DNS records between two domains side by side:

vdns compare google.com cloudflare.com
vdns compare example.com example.org -t A,MX,NS

Matching records are shown plain, differences are highlighted. Works in both local and remote mode.

Benchmark

Measure response times for all public resolvers from your machine:

vdns benchmark             # Query google.com by default
vdns benchmark example.com # Query a specific domain

Results are sorted by latency and color-coded. Also shows your detected system resolver.

Local History

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 history

History 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.

JSON Output

All commands support --json for scripting:

vdns a github.com --json | jq '.Records.A[].Value'
vdns avail mycoolsite.com --json

Exit Codes

Code Meaning
0 Success
1 Error, or domain is taken (vdns avail)
vdns avail example.com && echo "Available!" || echo "Taken."

Configuration

Config is stored at:

  • Linux: ~/.config/vdns/config.yaml
  • macOS: ~/Library/Application Support/vdns/config.yaml
  • Windows: %APPDATA%\vdns\config.yaml

Settings

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 show

Profiles

Multiple VectorDNS accounts:

vdns config add-profile work
vdns config set profile work
vdns config remove-profile work

Environment Variables

Variable Description
VDNS_API_KEY Override the API key from config

Propagation Resolvers

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)

Shell Completions

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.fish

Man Pages

Man pages are included in Homebrew installs and release archives:

man vdns
man vdns-lookup
man vdns-prop

Building from Source

git 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 tests

License

GPLv3 - see LICENSE for details.

About

VectorDNS CLI Tool

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages