Repolode
mr-karan

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. 1

    Install via Homebrew

    brew install doggo
  2. 2

    Run a simple DNS lookup

    doggo example.com
  3. 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