Doggo logo

Doggo Karan Sharma

Use this command to install Doggo:
winget install --id=MrKaran.Doggo -e

doggo is a modern command-line DNS client (like dig) written in Golang. It outputs information in a neat concise manner and supports protocols like DoH, DoT, DoQ, and DNSCrypt as well.

Doggo is a modern command-line DNS client designed to perform DNS queries efficiently while supporting advanced protocols such as DoH (DNS over HTTPS), DoT (DNS over TLS), DoQ (DNS over QUIC), and DNSCrypt. It provides clear, concise output in a human-readable format, making it ideal for troubleshooting network issues or scripting workflows.

Key Features:

  • Protocol Support: Enables queries via multiple secure protocols including DoH, DoT, DoQ, and DNSCrypt.
  • Neat Output Formatting: Delivers results in a clean, color-coded, and tabular format for easy readability.
  • JSON Output: Facilitates integration with scripts or external tools by exporting responses in JSON format.
  • Reverse DNS Lookup: Allows users to perform reverse IP address queries quickly and efficiently.
  • Globalping Option: Compares DNS response times from multiple locations around the world.
  • Cross-Platform Compatibility: Runs seamlessly on Linux, macOS, Windows, and other platforms.

Audience & Benefit:

Ideal for system administrators, network engineers, developers, and anyone requiring precise DNS query results. Doggo empowers users to troubleshoot DNS-related issues quickly, analyze domain configurations, and integrate its output into automated workflows. Its ability to handle multiple protocols ensures compatibility with modern secure DNS standards, providing flexibility and reliability in diverse environments.

Installation via winget is available for Windows users.

README

doggo

🐶 Command-line DNS client for humans

Web Interface · Documentation


doggo is a modern command-line DNS client (like dig) written in Golang. It outputs information in a neat concise manner and supports protocols like DoH, DoT, DoQ, and DNSCrypt as well.

It's totally inspired by dog which is written in Rust. I wanted to add some features to it but since I don't know Rust, I found it as a nice opportunity to experiment with writing a DNS Client from scratch in Go myself. Hence the name dog + go => doggo.

Installation

Easy Install (Recommended)

curl -sS https://raw.githubusercontent.com/mr-karan/doggo/main/install.sh | sh

Package Managers

  • Homebrew: brew install doggo
  • MacPorts (macOS): port install doggo
  • Arch Linux: yay -S doggo-bin
  • Scoop (Windows): scoop install doggo
  • Eget: eget mr-karan/doggo

Binary Install

You can download pre-compiled binaries for various operating systems and architectures from the Releases page.

Go Install

If you have Go installed on your system, you can use the go install command:

go install github.com/mr-karan/doggo/cmd/doggo@latest

The binary will be available at $GOPATH/bin/doggo.

Docker

docker pull ghcr.io/mr-karan/doggo:latest
docker run --rm ghcr.io/mr-karan/doggo:latest example.com

For more installation options, including binary downloads and Docker images, please refer to the full installation guide.

Quick Start

Here are some quick examples to get you started with doggo:

# Simple DNS lookup
doggo example.com

# Query MX records using a specific nameserver
doggo MX github.com @9.9.9.9

# Use DNS over HTTPS
doggo example.com @https://cloudflare-dns.com/dns-query

# JSON output for scripting
doggo example.com --json | jq '.responses[0].answers[].address'

# Reverse DNS lookup
doggo --reverse 8.8.8.8 --short

# Using Globalping
doggo example.com --gp-from Germany,Japan --gp-limit 2

Features

  • Human-readable output with color-coded and tabular format
  • JSON output support for easy scripting and parsing
  • Multiple transport protocols: DoH, DoT, DoQ, TCP, UDP, DNSCrypt
  • Support for ndots and search configurations
  • Multiple resolver support with customizable query strategies
  • IPv4 and IPv6 support
  • Web interface available
  • Shell completions for zsh and fish
  • Reverse DNS lookups
  • Flexible query options including various DNS flags
  • Debug mode for troubleshooting
  • Response time measurement
  • Cross-platform support

Documentation

For comprehensive documentation, including detailed usage instructions, configuration options, and advanced features, please visit our official documentation site.

Sponsorship

If you find doggo useful and would like to support its development, please consider becoming a sponsor. Your support helps maintain and improve this open-source project.

GitHub Sponsors

Every contribution, no matter how small, is greatly appreciated and helps keep this project alive and growing. Thank you for your support! 🐶❤️

License

This project is licensed under the MIT License.

Versions
1.0.5
1.0.4
Website
License