Dogs can look up!

dog is an open-source DNS client for the command-line. It has colourful output, supports the DoT and DoH protocols, and can emit JSON.

$ dog A NS MX TXT
   A         18h34m32s
  NS        1d0h00m00s   ""
  NS        1d0h00m00s   ""
   A     14m08s +
AAAA     25m23s + 2001:500:8f::53
   A      7m03s +
AAAA      5m11s + 2001:500:8d::53
  MX         23h53m37s   0 ""
 TXT        1d0h00m00s   "v=spf1 -all"

Standard command-line options

dog lets you choose between a terse command-line syntax for fast invocations, and the --standard --option --syntax that you are used to.

$ dog --type TXT --query --short
"The dog (Canis familiaris when considered a distinct species or Canis lupus familiaris when considered..."

UDP, TCP, DoT, and DoH

dog supports the new DNS-over-TLS and DNS-over-HTTPS protocols.

$ dog -H @
A 59m59s

JSON support

dog can output its results as JSON, making it suitable for automated scripts.

$ dog --json | jq .responses[0].answers[0]
  "address": "",
  "class": "IN",
  "name": "",
  "ttl": 7111,
  "type": "A"


The most recent version of dog is v0.1.0. Downloads are available on GitHub:

For more information, including instructions on compiling from source, see the Installation page.