id = "doggo"
name = "doggo"
homepage = "https://doggo.mrkaran.dev"
description = "doggo is a modern command-line DNS client (like dig) written in Golang, supporting DoH, DoT, DoQ and DNSCrypt."
icon = "https://raw.githubusercontent.com/mr-karan/doggo/main/docs/public/favicon.svg"
executables = ["doggo"]
[dotfiles]
paths = ["[configHome]/doggo/config.toml", "~/.doggo.toml"]
exclude = []
secret = []
side_effect = false
[commands]
format = 1
label = "DNS lookup"
description = "Query DNS records with doggo. Flags for DNS-over-HTTPS and rarely used header bits are left out."
quality = "ai-draft"
base = "fig:doggo"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "fig"
kind = "completion"
url = "https://github.com/withfig/autocomplete/blob/master/src/doggo.ts"
license = "MIT"
[[commands.field]]
id = "names"
label = "Domain names"
type = "string"
position = 0
multiple = true
sources = ["fig"]
[[commands.field]]
id = "type"
label = "Record type"
type = "string"
option = ["--type", "-t"]
suggestions = [{ value = "A", label = "A" }, { value = "AAAA", label = "AAAA" }, { value = "MX", label = "MX" }, { value = "NS", label = "NS" }, { value = "TXT", label = "TXT" }, { value = "CNAME", label = "CNAME" }, { value = "SOA", label = "SOA" }, { value = "CAA", label = "CAA" }, { value = "PTR", label = "PTR" }, { value = "SRV", label = "SRV" }]
sources = ["fig"]
[[commands.field]]
id = "nameserver"
label = "Nameserver"
type = "string"
option = ["--nameserver", "-n"]
suggestions = [{ value = "1.1.1.1", label = "1.1.1.1" }, { value = "8.8.8.8", label = "8.8.8.8" }, { value = "9.9.9.9", label = "9.9.9.9" }]
sources = ["fig"]
[[commands.field]]
id = "class"
label = "Class"
type = "string"
option = ["--class", "-c"]
suggestions = [{ value = "IN", label = "IN" }, { value = "CH", label = "CH" }, { value = "HS", label = "HS" }]
sources = ["fig"]
[[commands.field]]
id = "short"
label = "Short output"
type = "boolean"
option = ["--short"]
sources = ["fig"]
[[commands.field]]
id = "json"
label = "JSON output"
type = "boolean"
option = ["--json", "-J"]
sources = ["fig"]
[[commands.field]]
id = "time"
label = "Show response time"
type = "boolean"
option = ["--time"]
sources = ["fig"]
[[commands.field]]
id = "any"
label = "All record types"
type = "boolean"
option = ["--any"]
sources = ["fig"]
[[commands.field]]
id = "ipv4"
label = "IPv4 only"
type = "boolean"
option = ["--ipv4", "-4"]
sources = ["fig"]
[[commands.field]]
id = "ipv6"
label = "IPv6 only"
type = "boolean"
option = ["--ipv6", "-6"]
sources = ["fig"]
[[commands.field]]
id = "strategy"
label = "Nameserver strategy"
type = "string"
option = ["--strategy"]
suggestions = [{ value = "all", label = "all" }, { value = "random", label = "random" }, { value = "first", label = "first" }]
sources = ["fig"]
[[commands.field]]
id = "timeout"
label = "Timeout (seconds)"
type = "integer"
option = ["--timeout"]
sources = ["fig"]
[[commands.field]]
id = "debug"
label = "Debug logging"
type = "boolean"
option = ["--debug"]
sources = ["fig"]
[[commands.field]]
id = "dnssec"
label = "DNSSEC OK"
type = "boolean"
option = ["--do"]
sources = ["fig"]
[[commands.task]]
id = "lookup"
label = "Look up records"
fields = ["names", "type", "nameserver"]
required = ["names"]
[[commands.task]]
id = "short"
label = "Short answer"
set = { short = [true] }
fields = ["names", "type", "nameserver", "short"]
required = ["names"]
[[commands.task]]
id = "json"
label = "JSON answer"
set = { json = [true] }
fields = ["names", "type", "nameserver", "json"]
required = ["names"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["names", "type", "nameserver", "short", "json", "time"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["class", "strategy", "timeout", "debug", "dnssec", "ipv4", "ipv6", "any"]