# doggo — Command-Line DNS Client for Humans > A modern DNS client written in Go with colorful output, support for DoH/DoT/DoQ, and a clean interface for quick DNS lookups. ## Install Save as a script file and run: # doggo — Command-Line DNS Client for Humans ## Quick Use ```bash # macOS brew install doggo # or Go go install github.com/mr-karan/doggo/cmd/doggo@latest doggo example.com doggo MX example.com @1.1.1.1 ``` ## Introduction doggo is a modern DNS client for the command line that replaces dig with a more readable and user-friendly interface. It supports DNS-over-HTTPS, DNS-over-TLS, and DNS-over-QUIC, and outputs results in colorized tabular format that is easy to scan. ## What doggo Does - Performs DNS queries with colorized, human-readable tabular output - Supports DNS-over-HTTPS (DoH), DNS-over-TLS (DoT), and DNS-over-QUIC (DoQ) - Queries any record type: A, AAAA, MX, TXT, CNAME, NS, SOA, SRV, and more - Supports reverse DNS lookups and multiple query targets in a single command - Outputs results in JSON format for scripting and automation ## Architecture Overview doggo is written in Go and uses the miekg/dns library for DNS protocol handling. It builds queries from command-line arguments, sends them over the selected transport (UDP, TCP, DoH, DoT, or DoQ), and formats responses into a colored table. The JSON output mode makes it composable with tools like jq. ## Self-Hosting & Configuration - Install via Homebrew: `brew install doggo` - Or download a binary from GitHub releases for Linux, macOS, and Windows - Specify a DNS server with `@` prefix: `doggo example.com @8.8.8.8` - Use DoH with `doggo example.com @https://dns.google/dns-query` - Use DoT with `doggo example.com @tls://dns.google` ## Key Features - Clean colorized output that is easier to read than dig - Native support for encrypted DNS protocols (DoH, DoT, DoQ) - JSON output mode for scripting: `doggo example.com --json | jq .` - Multiple queries in a single command: `doggo A example.com MX example.com` - Lightweight single binary with no external dependencies ## Comparison with Similar Tools - **dig** — The classic DNS tool; doggo provides better formatting and encrypted DNS support - **dog** — Another modern DNS client; doggo adds DoQ support and JSON output - **drill** — Part of ldns; less user-friendly output than doggo - **nslookup** — Basic DNS lookup; lacks DoH/DoT and structured output ## FAQ **Q: How is doggo different from dig?** A: doggo provides colorized tabular output, built-in DoH/DoT/DoQ support, and JSON output mode. **Q: Can I use it with encrypted DNS?** A: Yes. Prefix the server with `https://`, `tls://`, or `quic://` for DoH, DoT, or DoQ. **Q: Does it support scripting?** A: Yes. Use `--json` to get structured JSON output suitable for piping to jq or other tools. **Q: What platforms are supported?** A: Linux, macOS, and Windows via pre-built binaries or Go install. ## Sources - https://github.com/mr-karan/doggo - https://doggo.mrkaran.dev/ --- Source: https://tokrepo.com/en/workflows/asset-8994e469 Author: Script Depot