id = "tldx"
name = "tldx"
homepage = "https://github.com/brandonyoungdev/tldx"
description = "tldx helps you brainstorm available domain names fast."
executables = ["tldx"]
[dotfiles]
paths = [
"~/.config/tldx/config.toml",
"%APPDATA%/tldx/config.toml",
"~/.config/tldx/presets.toml",
"%APPDATA%/tldx/presets.toml",
]
secret = []
[commands]
format = 1
label = "Check domain availability"
description = "Brainstorm domain names from keywords with prefixes, suffixes and TLDs, and check availability over RDAP. Regex, presets file management and MCP are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true }
[[commands.source]]
id = "help"
kind = "help"
url = "https://github.com/brandonyoungdev/tldx/blob/main/README.md"
revision = "README"
evidence = """
tldx [keywords] [flags]
--dry-run Print domains that would be checked without making network calls
-f, --format string Format of output (text, json, json-stream, json-array, csv, grouped, grouped-tld) (default "text")
-l, --limit int Stop after finding this many available domains (0 = no limit)
-m, --max-domain-length int Maximum length of domain name (default 64)
-a, --only-available Show only available domains
-p, --prefixes strings Prefixes to add (e.g. get,my,use)
-s, --suffixes strings Suffixes to add (e.g. ify,ly)
--tld-preset string Use a tld preset (e.g. popular, tech)
-t, --tlds strings TLDs to check (e.g. com,io,ai)
"""
[[commands.field]]
id = "keywords"
label = "Keywords"
type = "string"
position = 0
multiple = true
sources = ["help"]
[[commands.field]]
id = "tlds"
label = "TLDs"
description = "Comma-separated, e.g. com,io,ai."
type = "string"
option = ["--tlds", "-t"]
sources = ["help"]
[[commands.field]]
id = "prefixes"
label = "Prefixes"
description = "Comma-separated, e.g. get,my,use."
type = "string"
option = ["--prefixes", "-p"]
sources = ["help"]
[[commands.field]]
id = "suffixes"
label = "Suffixes"
description = "Comma-separated, e.g. ify,ly."
type = "string"
option = ["--suffixes", "-s"]
sources = ["help"]
[[commands.field]]
id = "tld_preset"
label = "TLD preset"
type = "string"
option = ["--tld-preset"]
suggestions = [{ value = "popular", label = "Popular" }, { value = "tech", label = "Tech" }]
sources = ["help"]
[[commands.field]]
id = "only_available"
label = "Only available domains"
type = "boolean"
option = ["--only-available", "-a"]
sources = ["help"]
[[commands.field]]
id = "limit"
label = "Stop after N available"
type = "integer"
option = ["--limit", "-l"]
sources = ["help"]
[[commands.field]]
id = "format"
label = "Output format"
type = "enum"
option = ["--format", "-f"]
choices = [{ value = "text", label = "Text" }, { value = "json", label = "JSON" }, { value = "json-stream", label = "JSON stream" }, { value = "json-array", label = "JSON array" }, { value = "csv", label = "CSV" }, { value = "grouped", label = "Grouped" }, { value = "grouped-tld", label = "Grouped by TLD" }]
sources = ["help"]
[[commands.field]]
id = "max_len"
label = "Maximum domain length"
type = "integer"
option = ["--max-domain-length", "-m"]
sources = ["help"]
[[commands.field]]
id = "dry_run"
label = "Dry run (no network calls)"
type = "boolean"
option = ["--dry-run"]
sources = ["help"]
[[commands.task]]
id = "check"
label = "Check available domains"
fields = ["keywords", "tlds", "prefixes", "suffixes", "only_available"]
required = ["keywords"]
set = { only_available = [true] }
[[commands.task]]
id = "preview"
label = "Preview the domain list"
fields = ["keywords", "tlds", "prefixes", "suffixes", "dry_run"]
required = ["keywords"]
set = { dry_run = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["keywords", "tlds", "prefixes", "suffixes", "tld_preset", "only_available"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["limit", "format", "max_len", "dry_run"]