A terminal network diagnostic tool that combines traceroute and ping to help analyze network connectivity issues.
mr-karan/doggo
A command-line DNS client written in Go, a modern take on dig with concise output and support for DoH, DoT, DoQ and DNSCrypt.
Open-source alternative to:dig
- Stars
- 4,523
- Forks
- 148
- Open issues
- 0
- Last commit
- 3 days ago
What is it?
doggo is a command-line DNS client, similar in purpose to dig, written in Go. It prints lookup results in a compact, color-coded, tabular format and can also emit JSON for scripts. Queries can be sent over plain UDP and TCP, or over encrypted transports such as DNS-over-HTTPS, DNS-over-TLS, DNS-over-QUIC and DNSCrypt.
Beyond basic lookups, doggo supports iterative delegation tracing with --trace, reverse DNS queries, and multiple resolvers with configurable query strategies. It handles EDNS options such as Client Subnet, NSID, Cookies and Padding, as well as IDN names via punycode conversion and the ndots and search settings. Defaults can be set through a TOML config file or DOGGO_* environment variables.
The project is distributed as prebuilt binaries, through many package managers, via go install, and as a Docker image. It was inspired by the Rust-based dog tool.
Key features
- 01Color-coded tabular output with optional JSON for scripting
- 02Supports UDP, TCP, DoH, DoT, DoQ and DNSCrypt transports
- 03Iterative delegation tracing with --trace
- 04EDNS options including Client Subnet, NSID, Cookies and Padding
- 05Reverse DNS lookups and IDN support via punycode
- 06TOML config file and DOGGO_* environment variable defaults
Use cases
- Troubleshooting DNS records from a terminal
- Querying specific resolvers over encrypted DoH or DoT connections
- Scripting DNS checks with JSON output
- Tracing how a domain's delegation chain resolves
Quick start
- 1
Install via Homebrew
brew install doggo - 2
Run a simple DNS lookup
doggo example.com - 3
Query MX records using a specific nameserver
doggo MX github.com @9.9.9.9
Things to know
- Licensed under GPL-3.0, a copyleft license that requires derivative works to remain open source.
In collections
Topics
FAQ
- What is doggo?
- A command-line DNS client written in Go, a modern take on dig with concise output and support for DoH, DoT, DoQ and DNSCrypt. doggo is a command-line DNS client, similar in purpose to dig, written in Go. It prints lookup results in a compact, color-coded, tabular format and can also emit JSON for scripts. Queries can be sent over plain UDP and TCP, or over encrypted transports such as DNS-over-HTTPS, DNS-over-TLS, DNS-over-QUIC and DNSCrypt.
- Is doggo free to use? What license does it have?
- doggo is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
- Is doggo still maintained?
- Actively maintained. The last commit to doggo was on Oct 22, 2026.
- What can I use doggo for?
- Troubleshooting DNS records from a terminal Querying specific resolvers over encrypted DoH or DoT connections Scripting DNS checks with JSON output Tracing how a domain's delegation chain resolves
- How do I install doggo?
- Install via Homebrew: brew install doggo Run a simple DNS lookup: doggo example.com Query MX records using a specific nameserver: doggo MX github.com @9.9.9.9
- Where can I get doggo?
- The source code and installation instructions are on GitHub: https://github.com/mr-karan/doggo
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A fast, lightweight DNS proxy that blocks ads and trackers for your whole local network, with per-client-group rules.
Self-hosted network-wide DNS server that blocks ads and trackers for every device on your network without client software.
Open source authoritative and recursive DNS server with a web console, ad and malware blocking, and encrypted DNS support.
Free, open-source application firewall for Windows and Linux that monitors and controls each app's network traffic, with built-in secure DNS and tracker blocking.
A DNS sinkhole that blocks ads and trackers for every device on your network, without installing client software.