Doggo
:dog: Command-line DNS Client for Humans. Written in Golang
Install / Use
/learn @mr-karan/DoggoREADME
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 -fsSL 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 - Mise:
mise use -g doggo@latest - Nix:
nix profile install nixpkgs#doggo - Scoop (Windows):
scoop install doggo - Winget (Windows):
winget 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
- EDNS support with Client Subnet (ECS), NSID, Cookies, Padding, and Extended Errors
- Additional section support for glue records and supplementary data
- Internationalized Domain Names (IDN) with automatic punycode conversion
- Support for
ndotsandsearchconfigurations - Multiple resolver support with customizable query strategies
- IPv4 and IPv6 support
- Web interface available
- Shell completions for
zshandfish - 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.
Every contribution, no matter how small, is greatly appreciated and helps keep this project alive and growing. Thank you for your support! 🐶❤️
License
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
