doggo - Modern DNS Client Cheatsheet
doggo is a modern DNS client for the command line — a friendlier, colorized alternative to dig with clean tabular or JSON output. Beyond traditional UDP/TCP queries it speaks the modern encrypted transports: DNS-over-HTTPS (DoH), DNS-over-TLS (DoT), DNS-over-QUIC (DoQ), and DNSCrypt. It is written in Go, ships as a single binary, and is handy for both quick lookups and scripted DNS diagnostics.
Installation
| Platform | Command |
|---|
| Go install | go install github.com/mr-karan/doggo/cmd/doggo@latest |
| macOS (Homebrew) | brew install doggo |
| Arch Linux | sudo pacman -S doggo |
| Docker | docker run --rm ghcr.io/mr-karan/doggo doggo example.com |
| Binary | download from the GitHub Releases page |
Basic Queries
| Command | Description |
|---|
doggo example.com | Default A record lookup |
doggo example.com MX | Query a specific record type |
doggo example.com A AAAA MX | Query several record types at once |
doggo example.com @1.1.1.1 | Use a specific resolver |
doggo --help | Full option list |
doggo --version | Version |
Record Types
| Example | Returns |
|---|
doggo example.com A | IPv4 addresses |
doggo example.com AAAA | IPv6 addresses |
doggo example.com MX | Mail servers |
doggo example.com TXT | TXT records (SPF, DKIM, verification) |
doggo example.com NS | Name servers |
doggo example.com CNAME | Canonical name |
doggo example.com SOA | Start of authority |
doggo example.com CAA | Certificate authority authorization |
Encrypted & Alternative Transports
| Command | Transport |
|---|
doggo example.com @https://cloudflare-dns.com/dns-query | DNS-over-HTTPS (DoH) |
doggo example.com @tls://1.1.1.1 | DNS-over-TLS (DoT) |
doggo example.com @quic://dns.adguard.com | DNS-over-QUIC (DoQ) |
doggo example.com @sdns://... | DNSCrypt (stamp) |
doggo example.com @udp://1.1.1.1 | Explicit UDP |
doggo example.com @tcp://1.1.1.1 | Explicit TCP |
Output Control
| Option | Description |
|---|
--json | JSON output (great for scripts) |
--short | Print only the answer values |
--color=false | Disable colorized output |
--time | Show query round-trip time |
-4 / -6 | Force IPv4 / IPv6 transport |
Reverse & Advanced
| Command | Description |
|---|
doggo --reverse 1.1.1.1 | Reverse DNS (PTR) lookup |
doggo example.com --ndots=1 | Control ndots resolution behavior |
doggo example.com --search | Use the system search list |
doggo example.com --aa | Request authoritative answer |
doggo example.com --do | Set the DNSSEC OK bit |
Common Workflows
# Quick, human-readable answer only
doggo --short example.com
# Verify mail setup at a glance
doggo example.com MX TXT
# Test a DoH resolver and time it
doggo example.com @https://dns.google/dns-query --time
# Script-friendly JSON for monitoring
doggo example.com A --json | jq '.responses[].answers'
# Confirm a reverse record for an IP
doggo --reverse 8.8.8.8 --short
doggo vs dig vs dog
| Feature | doggo | dig | dog |
|---|
| Colorized output | Yes | No | Yes |
| JSON output | Yes | No | Yes |
| DoH / DoT / DoQ | Yes | Limited | Yes |
| DNSCrypt | Yes | No | No |
| Single binary | Yes (Go) | System pkg | Yes (Rust) |
Resources