18 releases
| new 0.10.1 | Feb 7, 2026 |
|---|---|
| 0.10.0 | Feb 5, 2026 |
| 0.1.94 | Jan 27, 2026 |
#1612 in Network programming
450KB
10K
SLoC
seer-cli
Command-line interface for the Seer domain utility suite.
Overview
seer-cli provides a feature-rich command-line interface with:
- Command mode for scripting and one-off queries
- Interactive REPL for exploratory work
- Human-readable and JSON output formats
- Bulk operations with CSV output
- Progress indicators and colored output
Installation
From crates.io
cargo install seer-cli
From Source
cd seer-cli
cargo install --path .
This installs the seer binary to ~/.cargo/bin/.
Modules
| Directory | Description |
|---|---|
src/main.rs |
Entry point, Clap commands, subcommand dispatch |
src/repl/ |
Interactive REPL implementation |
src/display/ |
UI utilities (spinners, etc.) |
Commands
Smart Lookup
Tries RDAP first, falls back to WHOIS.
seer lookup example.com
seer lookup example.com --format json
WHOIS Lookup
Query domain registrant information.
seer whois example.com
RDAP Lookup
Query RDAP for domains, IPs, or ASNs.
seer rdap example.com # Domain
seer rdap 8.8.8.8 # IP address
seer rdap AS15169 # ASN
DNS Query
Query DNS records (like dig).
seer dig example.com # A records (default)
seer dig example.com MX # MX records
seer dig example.com A @8.8.8.8 # Custom nameserver
Supported record types: A, AAAA, MX, TXT, NS, SOA, CNAME, CAA, PTR, SRV, DNSKEY, DS, ANY
DNS Propagation
Check DNS propagation across global servers.
seer propagation example.com A
seer propagation example.com MX
Domain Status
Check domain health (HTTP, SSL, expiration).
seer status example.com
DNS Follow
Monitor DNS records over time.
seer follow example.com # 10 iterations, 1 minute interval
seer follow example.com 20 0.5 # 20 iterations, 30 second interval
seer follow example.com 10 1 MX # Monitor MX records
seer follow example.com 10 1 A --changes-only # Only show changes
Press Esc or Ctrl+C to stop early.
Bulk Operations
Process multiple domains from a file.
seer bulk lookup domains.txt
seer bulk whois domains.txt
seer bulk dig domains.txt MX
seer bulk status domains.txt
seer bulk propagation domains.txt A
# Custom output file
seer bulk status domains.txt -o results.csv
Input file formats:
- Plain text (one domain per line)
- Comments (lines starting with
#) - CSV (uses first column)
Output Formats
# Human-readable (default)
seer lookup example.com --format human
# JSON
seer lookup example.com --format json
The --format flag works with all commands.
Interactive REPL
Start the REPL by running seer without arguments:
$ seer
seer> lookup example.com
seer> whois google.com
seer> dig github.com MX
seer> status cloudflare.com
seer> set output json
seer> help
seer> exit
REPL features:
- Command history (saved to
~/.seer_history) - Tab completion for commands
- Loading spinners during operations
- Persistent session state
Examples
Check If Domain Is Available
seer lookup newdomain.com --format json | jq '.source'
Export Domain Status to CSV
seer bulk status domains.txt -o report.csv
Monitor DNS After Change
seer follow example.com 60 0.5 A --changes-only
# Checks every 30 seconds for 30 minutes, shows only changes
Quick DNS Check with JSON
seer dig example.com A --format json | jq '.[].data.address'
Verify SSL Certificate
seer status example.com --format json | jq '.certificate'
Environment Variables
| Variable | Description |
|---|---|
RUST_LOG |
Logging level (trace, debug, info, warn, error) |
Enable debug logging:
RUST_LOG=debug seer lookup example.com
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Error (invalid input, lookup failure, etc.) |
Dependencies
- seer-core - Core library
- clap - Command-line parsing
- rustyline - REPL line editing
- indicatif - Progress indicators
- colored - Terminal colors
- crossterm - Terminal control
- tokio - Async runtime
- anyhow - Error handling
Build
# Debug build
cargo build -p seer-cli
# Release build
cargo build --release -p seer-cli
# Run without installing
cargo run -p seer-cli -- lookup example.com
Dependencies
~35–58MB
~1M SLoC