domain-search
Check domain name availability accurately across TLDs using registry RDAP APIs and registry whois. Use when the user asks to check, find, brainstorm, or verify domain names, or asks whether a domain is available, for sale, or expiring.
- License 许可
- MIT
- 最近更新
- 2026-11-15
- Stars
- ★ 49
- Forks
- 6
01 前言 Front Matter
- name
- domain-search
- description
- Check domain name availability accurately across TLDs using registry RDAP APIs and registry whois. Use when the user asks to check, find, brainstorm, or verify domain names, or asks whether a domain is available, for sale, or expiring.
02 资源文件 1
- 脚本scripts/check-domains.sh3.5 KB
03 SKILL.md 正文
Domain search
Check availability against registry data, never against parsed whois text alone. Report only verified results, and say which method verified each one.
The one rule that prevents false positives
Every check method must pass a control: a domain you know is registered on the same TLD, through the same route. If the control does not read as "taken", the route is broken and its results are worthless. A broken route returns the same answer as "available" (example failures: rdap.org returns 404 for vine.co, greenhouse.io, and notion.so — all registered). Never report a domain as available from a route with no passing control.
Grepping whois output for "no match" is the classic trap: registrar boilerplate and rate limit text match those patterns. It once reported showtell.com as available when it had been registered since 1995.
Method
- RDAP first. RDAP is the registries' official JSON API. HTTP 200 = registered, 404 = available (on a validated route). Prefer direct registry endpoints over the rdap.org proxy, which is slow and misroutes some TLDs.
- Find the endpoint in the IANA bootstrap:
curl -s https://data.iana.org/rdap/dns.jsonmaps each TLD to its server. A TLD absent from the file has no RDAP; use registry whois. - Registry whois fallback for TLDs without RDAP. Find the server with
whois -h whois.iana.org <tld>(therefer:line), thenwhois -h <server> <domain>. "Domain Name:" present = taken. Still needs a control. - DNS as a fast signal:
dig +short NS <domain>— nameservers present proves registered (absence proves nothing). Parking nameservers (afternic, sedo, bodis, parkingcrew) mean the domain is listed for sale on the aftermarket.
Known endpoints and quirks
| Registry | TLDs | Endpoint | Quirks |
|---|---|---|---|
| Verisign | .com .net | https://rdap.verisign.com/com/v1/domain/X (swap com→net) |
Reliable, fast |
| .app .dev .page .new | https://pubapi.registry.google/rdap/domain/X |
Aggressive rate limits — sleep 5s or more between queries; 429 means retry slower, not "taken" | |
| Identity Digital | .ai .studio .video .show .live .media .tools .pub .wtf and many ngTLDs | https://rdap.identitydigital.services/rdap/domain/X |
Reliable |
| No RDAP | .io .sh .so | whois -h whois.nic.io / whois.nic.sh / whois.nic.so |
rdap.org silently 404s these — never use it for them |
| .co | .co | whois -h whois.registry.co |
Not whois.nic.co; rdap.org misroutes .co |
Distinguish HTTP codes: 404 = available, 200 = taken, 429 = rate limited (retry slowly), 000 = connection failed. Only 404 on a validated route means available.
Helper: scripts/check-domains.sh domain1.com domain2.app ... implements routing, controls, and pacing.
Beyond yes/no
For an interesting taken domain, pull the full RDAP record (registration events, status):
- Old registration + no real site — possibly a dormant owner worth approaching.
- Expiry date near — the owner may lapse. After expiry: ~30 days grace, then ~30 days redemption, then the drop. Suggest a backorder (DropCatch, SnapNames) as the cheap play versus buying at the ask.
- Parked at a marketplace (see DNS signal above) — it has an asking price; check the marketplace.
Honest reporting
- Available does not mean cheap: registries tier dictionary words as premium and the price shows only at registrar checkout. Say so when recommending a dictionary word domain.
- If a batch was cut short by rate limits or timeouts, list the unchecked names — do not let a partial sweep read as a full one.
- Results are a snapshot; domains get registered every minute. Date the findings.
04 同仓库更多 Skills
something-else-entirely
A skill whose frontmatter name disagrees with its directory name.
unknown-field
Carries a field that is in neither the spec's six nor Claude Code's list.
remotion-best-practices
Best practices for Remotion - Video creation in React
overlength
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
no-frontmatter
暂无简介
improve
Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to execute. Strictly read-only on source code — never implements, fixes, or refactors anything itself. Use when asked to audit a codebase, find improvement opportunities (bugs, security, performance, test coverage, tech debt, migrations, DX), suggest features or where to take the project next (roadmap, product direction), or generate handoff plans for another agent to implement.