io.github.saidutt46/domain-check
编码与调试by saidutt46
基于 RDAP/WHOIS 的快速域名可用性检查工具,支持批量查询、TLD 预设以及候选名称生成,适合高效筛选和注册前评估。
想高效筛域名时很省心,基于 RDAP/WHOIS 快速查可用性,还支持批量查询、TLD 预设和候选名称生成,注册前评估效率更高。
什么是 io.github.saidutt46/domain-check?
基于 RDAP/WHOIS 的快速域名可用性检查工具,支持批量查询、TLD 预设以及候选名称生成,适合高效筛选和注册前评估。
README
domain-check
Universal domain exploration engine: fast domain availability checks across the internet — as a CLI, Rust library, and MCP server for AI agents.
<p align="center"> <img src="https://raw.githubusercontent.com/saidutt46/domain-check/main/assets/demo.svg" alt="domain-check demo" width="700"/> </p>Quick Links: Installation | Quick Start | Use Cases | Output Formats | Presets | Configuration | Automation | Library | MCP Server | FAQ | Contributing
Why domain-check
- 1,200+ TLDs out of the box — IANA bootstrap loads the full registry automatically. No config needed. 32 hardcoded TLDs work offline as fallback.
- Dual-protocol engine — RDAP-first with automatic WHOIS fallback. IANA server discovery covers ~189 ccTLDs that lack RDAP (
.es,.co,.eu,.jp). - Fast — up to 100 concurrent checks, streaming results as they complete. 2.7 MB release binary.
- Domain generation — pattern expansion (
\w=letter,\d=digit,?=either), prefix/suffix permutations, and--dry-runto preview before checking. - 11 curated presets —
startup,tech,creative,finance,ecommerce, and more. Or define your own in config. - Rich output — grouped pretty display, JSON, CSV. Registrar info, creation/expiration dates, and status codes with
--info. - CI and automation friendly —
--json/--csvto stdout,--yesto skip prompts,--forcefor large runs, automatic non-TTY detection. - Configurable — TOML config files,
DC_*environment variables, custom presets, and clear precedence rules. - Agent-native — MCP server exposes all tools to AI coding agents (Claude, Codex, Gemini, Cursor, VS Code Copilot, and any MCP client).
- CLI + library + MCP — same engine powers the CLI,
domain-check-lib(Rust library), anddomain-check-mcp(MCP server).
Installation
| Method | Command | Notes |
|---|---|---|
| Homebrew (macOS) | brew install domain-check | Easiest install for macOS users |
| Cargo (CLI) | cargo install domain-check | Works on all Rust-supported platforms |
| Cargo (MCP) | cargo install domain-check-mcp | MCP server for AI agents |
| GitHub Releases | Download binaries | CLI + MCP binaries for macOS, Linux, Windows |
Quick Start
# Check a single domain
domain-check example.com
# Expand a base name across TLDs
domain-check mystartup -t com,org,io,dev
# Use a curated preset
domain-check myapp --preset startup --pretty
# Generate names with a pattern (preview only)
domain-check --pattern "app\d" -t com --dry-run
# Add prefixes and suffixes
domain-check myapp --prefix get,try --suffix hub,ly -t com,io
# Get registrar and date info
domain-check target.com --info
# Check every known TLD
domain-check brand --all --batch
Pretty output:
domain-check v0.9.1 — Checking 8 domains
Preset: startup | Concurrency: 20
── Available (3) ──────────────────────────────
rustcloud.org
rustcloud.ai
rustcloud.app
── Taken (5) ──────────────────────────────────
rustcloud.com
rustcloud.io
rustcloud.tech
rustcloud.dev
rustcloud.xyz
8 domains in 0.8s | 3 available | 5 taken | 0 unknown
Use Cases
# Startup naming — scan tech TLDs for your brand
domain-check coolname --preset startup --pretty
# Brand protection — audit every TLD for your trademark
domain-check mybrand --all --json > audit.json
# Pre-purchase validation — check registrar and expiry before buying
domain-check target.com --info
# Bulk pipeline — feed a list, export results
domain-check --file ideas.txt --preset tech --csv > results.csv
# Name generation — explore prefix/suffix combos
domain-check app --prefix get,my,try --suffix hub,ly -t com,io --dry-run
Output Formats
Default — one line per domain, colored status:
myapp.com TAKEN
myapp.io AVAILABLE
myapp.dev TAKEN
Pretty (--pretty) — grouped by status with summary:
── Available (1) ──────────────────────────────
myapp.io
── Taken (2) ──────────────────────────────────
myapp.com
myapp.dev
3 domains in 0.4s | 1 available | 2 taken | 0 unknown
JSON (--json) — structured, pipe to jq:
[
{
"domain": "myapp.com",
"available": false,
"method": "RDAP"
},
{
"domain": "myapp.io",
"available": true,
"method": "RDAP"
}
]
CSV (--csv) — import into spreadsheets or databases:
domain,status,method
myapp.com,TAKEN,RDAP
myapp.io,AVAILABLE,RDAP
Info (--info) — registrar, dates, and status codes:
myapp.com TAKEN
Registrar: Example Registrar, Inc.
Created: 2015-03-12 Expires: 2026-03-12
Status: clientTransferProhibited
Full reference: docs/CLI.md
Smart Presets
11 built-in presets covering common domains strategies:
| Preset | TLDs | Use case |
|---|---|---|
startup | com, org, io, ai, tech, app, dev, xyz | Tech startups |
popular | com, net, org, io, ai, app, dev, tech, me, co, xyz | General coverage |
classic | com, net, org, info, biz | Traditional gTLDs |
enterprise | com, org, net, info, biz, us | Business and government |
tech | io, ai, app, dev, tech, cloud, software, + 5 more | Developer tools |
creative | design, art, studio, media, photography, + 5 more | Artists and media |
ecommerce | shop, store, market, sale, deals, + 3 more | Online retail |
finance | finance, capital, fund, money, investments, + 4 more | Fintech |
web | web, site, website, online, blog, page, + 3 more | Web services |
trendy | xyz, online, site, top, icu, fun, space, + 6 more | New gTLDs |
country | us, uk, de, fr, ca, au, br, in, nl | International |
domain-check --list-presets # See all presets with full TLD lists
domain-check mybrand --preset creative --pretty # Use a preset
Define custom presets in your config file:
[custom_presets]
my_stack = ["com", "io", "dev", "app"]
Configuration
Create domain-check.toml in your project directory:
[defaults]
concurrency = 25
preset = "startup"
pretty = true
timeout = "8s"
bootstrap = true
[custom_presets]
my_startup = ["com", "io", "ai", "dev", "app"]
[generation]
prefixes = ["get", "my"]
suffixes = ["hub", "ly"]
Config lookup order:
./domain-check.toml > ~/.domain-check.toml > ~/.config/domain-check/config.toml
Common environment variables:
DC_CONCURRENCY=50 DC_PRESET=startup DC_TLD=com,io,dev
DC_PRETTY=true DC_TIMEOUT=10s DC_BOOTSTRAP=true
DC_PREFIX=get,my DC_SUFFIX=hub,ly DC_FILE=domains.txt
Automation & CI
# Non-interactive structured output
domain-check --file required-domains.txt --json
# Pipe to jq
domain-check --pattern "app\d" -t com --yes --json | jq '.[] | select(.available==true)'
# Stream live results for long runs
domain-check --file large-list.txt --concurrency 75 --streaming
# Large batch with no prompts
domain-check --file huge-list.txt --all --force --yes --csv > results.csv
CI-friendly behavior:
--yes/--forceskip all confirmation prompts- Non-TTY environments (piped, CI) never prompt — scripts are never blocked
- Spinner writes to stderr; stdout stays clean for piping
--no-bootstrapfor deterministic, offline-safe checks against 32 hardcoded TLDs
Automation guide: docs/AUTOMATION.md
Library
Use domain-check-lib directly in Rust projects:
[dependencies]
domain-check-lib = "1.0.2"
use domain_check_lib::DomainChecker;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let checker = DomainChecker::new();
let result = checker.check_domain("example.com").await?;
println!("{} -> {:?}", result.domain, result.available);
Ok(())
}
Library docs: domain-check-lib/README.md | docs.rs
MCP Server
domain-check-mcp exposes domain checking as tools for AI coding agents via the Model Context Protocol. Works with any MCP-compatible client.
# Install
cargo install domain-check-mcp
# Add to your agent (Claude Code example — works similarly for Codex, Gemini CLI, etc.)
claude mcp add domain-check -- domain-check-mcp
6 tools available: check_domain, check_domains, check_with_preset, generate_names, list_presets, domain_info.
Then ask your agent naturally: "Is coolstartup.com available?" or "Check mybrand across the startup preset".
Supports: Claude Code, Claude Desktop, VS Code Copilot, Cursor, Windsurf, JetBrains, OpenAI Codex CLI, Gemini CLI, and any MCP stdio client.
Full setup: domain-check-mcp/README.md
Reliability Notes
- Domain status is network- and registry-dependent. Temporary errors can produce
UNKNOWNstates. - WHOIS output is less standardized than RDAP; parsing quality varies by registry.
- For repeatable CI workflows, pin behavior with explicit flags (
--batch,--json,--no-bootstrap,--concurrency).
Troubleshooting and expected edge cases: docs/FAQ.md
Project Docs
- CLI reference: docs/CLI.md
- Library: domain-check-lib/README.md | docs.rs
- MCP server: domain-check-mcp/README.md
- Examples and workflows: docs/EXAMPLES.md
- Automation usage: docs/AUTOMATION.md
- FAQ: docs/FAQ.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Security policy: SECURITY.md
License
Licensed under either of
at your option.
常见问题
io.github.saidutt46/domain-check 是什么?
基于 RDAP/WHOIS 的快速域名可用性检查工具,支持批量查询、TLD 预设以及候选名称生成,适合高效筛选和注册前评估。
相关 Skills
前端设计
by anthropics
面向组件、页面、海报和 Web 应用开发,按鲜明视觉方向生成可直接落地的前端代码与高质感 UI,适合做 landing page、Dashboard 或美化现有界面,避开千篇一律的 AI 审美。
✎ 想把页面做得既能上线又有设计感,就用前端设计:组件到整站都能产出,难得的是能避开千篇一律的 AI 味。
网页应用测试
by anthropics
用 Playwright 为本地 Web 应用编写自动化测试,支持启动开发服务器、校验前端交互、排查 UI 异常、抓取截图与浏览器日志,适合调试动态页面和回归验证。
✎ 借助 Playwright 一站式验证本地 Web 应用前端功能,调 UI 时还能同步查看日志和截图,定位问题更快。
网页构建器
by anthropics
面向复杂 claude.ai HTML artifact 开发,快速初始化 React + Tailwind CSS + shadcn/ui 项目并打包为单文件 HTML,适合需要状态管理、路由或多组件交互的页面。
✎ 在 claude.ai 里做复杂网页 Artifact 很省心,多组件、状态和路由都能顺手搭起来,React、Tailwind 与 shadcn/ui 组合效率高、成品也更精致。
相关 MCP Server
GitHub
编辑精选by GitHub
GitHub 是 MCP 官方参考服务器,让 Claude 直接读写你的代码仓库和 Issues。
✎ 这个参考服务器解决了开发者想让 AI 安全访问 GitHub 数据的问题,适合需要自动化代码审查或 Issue 管理的团队。但注意它只是参考实现,生产环境得自己加固安全。
Context7 文档查询
编辑精选by Context7
Context7 是实时拉取最新文档和代码示例的智能助手,让你告别过时资料。
✎ 它能解决开发者查找文档时信息滞后的问题,特别适合快速上手新库或跟进更新。不过,依赖外部源可能导致偶尔的数据延迟,建议结合官方文档使用。
by tldraw
tldraw 是让 AI 助手直接在无限画布上绘图和协作的 MCP 服务器。
✎ 这解决了 AI 只能输出文本、无法视觉化协作的痛点——想象让 Claude 帮你画流程图或白板讨论。最适合需要快速原型设计或头脑风暴的开发者。不过,目前它只是个基础连接器,你得自己搭建画布应用才能发挥全部潜力。