If dotld is not already available on the machine, install it:
curl -fsSL https://raw.githubusercontent.com/tedstonne/dotld/main/scripts/install.sh | bash
dotld requires a Dynadot production API key. The key is resolved in this order:
--dynadot-key flag (also auto-saves to config for future runs)DYNADOT_API_PRODUCTION_KEY environment variable~/.config/dotld/config.jsonGet a key at: https://www.dynadot.com/account/domain/setting/api.html
If the key is missing, dotld exits with an error and a link to the key page.
When the input contains a dot, dotld checks that specific domain:
dotld example.com
Output:
example.com · Taken
Or if available:
example.com · $9.99 · https://www.dynadot.com/domain/search?domain=example.com&rscreg=github
When the input has no dot, dotld auto-expands across 9 popular TLDs — com, net, org, io, ai, co, app, dev, sh:
dotld acme
Output:
acme
├─ acme.com · Taken
├─ acme.net · Taken
├─ acme.org · Taken
├─ acme.io · $39.99 · https://www.dynadot.com/domain/search?domain=acme.io&rscreg=github
├─ acme.ai · Taken
├─ acme.co · Taken
├─ acme.app · Taken
├─ acme.dev · Taken
└─ acme.sh · Taken
Pass multiple arguments or use --file:
dotld acme.com startup.io mybrand
dotld --file domains.txt
domain · Taken — registered, not availabledomain · $39.99 · https://... — available with registration price and buy link| Flag | Description |
|---|---|
| ------ | ------------- |
--json | Output structured JSON instead of the tree table |
--file | Read domains from a file (one per line) |
--dynadot-key | Provide API key (auto-saved to config) |
--timeout | Request timeout, e.g. 5s, 500ms (default: 10s) |
--currency USD | Currency for prices (only USD supported in v1) |
User has a specific domain → run exact lookup:
dotld coolstartup.com
User has a brand name or keyword → run keyword expansion:
dotld coolstartup
User wants to brainstorm → suggest name variations, then batch-check them:
dotld coolstartup launchpad rocketship
Present results as a ranked list: show available domains sorted by price, include buy links. Suggest next steps — open a buy link, check more TLDs, try name variations.
Batch from file → when the user has a list:
dotld --file domains.txt
Structured output → when parsing results programmatically:
dotld acme --json
$ dotld example.com
example.com · Taken
$ dotld acme
acme
├─ acme.com · Taken
├─ acme.net · Taken
├─ acme.org · Taken
├─ acme.io · $39.99 · https://www.dynadot.com/domain/search?domain=acme.io&rscreg=github
├─ acme.ai · Taken
├─ acme.co · Taken
├─ acme.app · Taken
├─ acme.dev · Taken
└─ acme.sh · Taken
$ dotld example.com --json
{
"results": [
{
"domain": "example.com",
"available": false,
"price": null,
"currency": "USD",
"buyUrl": null,
"cached": false,
"quotedAt": "2026-02-21T00:00:00.000Z"
}
]
}
共 1 个版本