dog

Command-line DNS client with colorful output, JSON support, and DNS-over-TLS/HTTPS protocols

install

dog is a command-line DNS client that serves as an alternative to dig. It performs DNS queries with enhanced output formatting, including colorized results and JSON output for programmatic use. The tool supports standard DNS record types (A, MX, NS, etc.) and can query custom nameservers.

The tool distinguishes itself through support for modern DNS protocols including DNS-over-TLS and DNS-over-HTTPS, alongside traditional UDP and TCP queries. It accepts both human-readable argument syntax (like dog example.net MX @1.1.1.1) and explicit command-line flags for scripting scenarios.

dog includes protocol-level customization options such as EDNS support, transaction ID modification, and timing measurements. The output can be configured for different use cases: short mode for scripts, JSON format for data processing, and detailed colorized output for interactive use. Network administrators, developers, and system administrators working with DNS troubleshooting or automation would find this tool useful for both manual queries and integration into monitoring or diagnostic scripts.

Installation

# via Homebrew
brew install dog
# via Arch Linux
pacman -S dog
# via Cargo
cargo build --release

Screenshot of dog making a DNS request

Alternatives & related tools

add a badge to your README

Maintain dog? Show that it's featured on trmn. The badge links back to this page.

Featured on trmn
Markdown
[![Featured on trmn](https://www.trmn.sh/badge/dog.svg)](https://www.trmn.sh/tools/dog?utm_source=badge)
HTML
<a href="https://www.trmn.sh/tools/dog?utm_source=badge"><img src="https://www.trmn.sh/badge/dog.svg" alt="Featured on trmn" height="20"></a>