ScriptsJul 3, 2026·3 min read

doggo — Command-Line DNS Client for Humans

A modern DNS client written in Go with colorful output, support for DoH/DoT/DoQ, and a clean interface for quick DNS lookups.

Agent ready

Safe staging for this asset

This asset is staged first. The copied prompt tells the agent to inspect the staged files and ask before activating scripts, MCP config, or global config.

Stage only · 29/100Policy: stage
Agent surface
Any MCP/CLI agent
Kind
CLI Tool
Install
Single
Trust
Trust: Established
Entrypoint
doggo
Safe staging command
npx -y tokrepo@latest install 8994e469-76db-11f1-9bc6-00163e2b0d79 --target codex

Stages files first; activation requires review of the staged README and plan.

Introduction

doggo is a modern DNS client for the command line that replaces dig with a more readable and user-friendly interface. It supports DNS-over-HTTPS, DNS-over-TLS, and DNS-over-QUIC, and outputs results in colorized tabular format that is easy to scan.

What doggo Does

  • Performs DNS queries with colorized, human-readable tabular output
  • Supports DNS-over-HTTPS (DoH), DNS-over-TLS (DoT), and DNS-over-QUIC (DoQ)
  • Queries any record type: A, AAAA, MX, TXT, CNAME, NS, SOA, SRV, and more
  • Supports reverse DNS lookups and multiple query targets in a single command
  • Outputs results in JSON format for scripting and automation

Architecture Overview

doggo is written in Go and uses the miekg/dns library for DNS protocol handling. It builds queries from command-line arguments, sends them over the selected transport (UDP, TCP, DoH, DoT, or DoQ), and formats responses into a colored table. The JSON output mode makes it composable with tools like jq.

Self-Hosting & Configuration

  • Install via Homebrew: brew install doggo
  • Or download a binary from GitHub releases for Linux, macOS, and Windows
  • Specify a DNS server with @ prefix: doggo example.com @8.8.8.8
  • Use DoH with doggo example.com @https://dns.google/dns-query
  • Use DoT with doggo example.com @tls://dns.google

Key Features

  • Clean colorized output that is easier to read than dig
  • Native support for encrypted DNS protocols (DoH, DoT, DoQ)
  • JSON output mode for scripting: doggo example.com --json | jq .
  • Multiple queries in a single command: doggo A example.com MX example.com
  • Lightweight single binary with no external dependencies

Comparison with Similar Tools

  • dig — The classic DNS tool; doggo provides better formatting and encrypted DNS support
  • dog — Another modern DNS client; doggo adds DoQ support and JSON output
  • drill — Part of ldns; less user-friendly output than doggo
  • nslookup — Basic DNS lookup; lacks DoH/DoT and structured output

FAQ

Q: How is doggo different from dig? A: doggo provides colorized tabular output, built-in DoH/DoT/DoQ support, and JSON output mode.

Q: Can I use it with encrypted DNS? A: Yes. Prefix the server with https://, tls://, or quic:// for DoH, DoT, or DoQ.

Q: Does it support scripting? A: Yes. Use --json to get structured JSON output suitable for piping to jq or other tools.

Q: What platforms are supported? A: Linux, macOS, and Windows via pre-built binaries or Go install.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets