domain-check
Fast, powerful CLI tool for checking domain availability using RDAP and WHOIS protocols.
Key Features
- Universal TLD Coverage — check against 1,300+ TLDs with
--all, powered by IANA bootstrap - Domain Generation — pattern expansion (
\w,\d,?), prefix/suffix permutations, dry-run preview - Lightning Fast — concurrent processing up to 100 domains simultaneously
- Beautiful Output — colored results, progress counters, loading spinner, grouped pretty mode
- Multiple Formats — pretty terminal display, JSON, CSV for automation, detailed info mode
- Bulk Processing — process thousands of domains from files with real-time streaming
- Agent-Friendly —
--yesskips prompts, non-TTY never blocks,--dry-runfor previews - Configuration Files — persistent settings with TOML configs, env vars, and custom presets
- Dual Protocol — RDAP-first with intelligent WHOIS fallback via IANA server discovery
Installation
Homebrew (macOS)
Cargo (All Platforms)
Pre-built Binaries
Download from GitHub Releases — available for macOS, Linux, and Windows.
Quick Start
# Check a single domain
# Check multiple TLD variations
# Generate domains with patterns (dry-run to preview)
# app0.com, app1.com, ..., app9.com (10 domains)
# Prefix/suffix permutations
# getmyapphub.com, getmyapp.com, trymyapphub.com, trymyapp.com, myapphub.com, myapp.com
# Use smart presets (11 built-in: startup, popular, tech, creative, and more)
# Pretty mode — grouped results with section headers
Pretty mode output:
domain-check v0.7.0 — 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
Command Reference
domain-check [OPTIONS] [DOMAINS]...
Core Options
| Option | Description | Example |
|---|---|---|
-t, --tld <TLD> |
Specify TLDs for base names | -t com,org,io |
--all |
Check against all known TLDs (1,300+ with bootstrap) | --all |
--preset <NAME> |
Use TLD preset (see presets) | --preset startup |
--list-presets |
List all available TLD presets and exit | --list-presets |
-f, --file <FILE> |
Read domains from file | -f domains.txt |
--config <FILE> |
Use specific config file | --config my-config.toml |
Domain Generation
| Option | Description | Example |
|---|---|---|
--pattern <PAT> |
Generate from pattern (\w=letter, \d=digit, ?=either) |
--pattern "app\d" |
--prefix <LIST> |
Prepend prefixes to names | --prefix get,my,try |
--suffix <LIST> |
Append suffixes to names | --suffix hub,ly,app |
--dry-run |
Preview generated domains, no network | --dry-run |
-y, --yes |
Skip confirmation prompts | --yes |
Output Options
| Option | Description |
|---|---|
-p, --pretty |
Grouped, structured output with section headers |
-j, --json |
JSON format |
--csv |
CSV format |
-i, --info |
Show detailed domain info (registrar, dates) |
--streaming |
Show results as they complete |
--batch |
Collect all results before displaying |
Performance & Protocol
| Option | Description | Default |
|---|---|---|
-c, --concurrency <N> |
Max concurrent checks (1-100) | 20 |
--no-bootstrap |
Disable IANA bootstrap discovery | false |
--no-whois |
Disable WHOIS fallback | false |
-d, --debug |
Show detailed debug information |
Bootstrap is enabled by default, giving access to 1,300+ TLDs via the IANA RDAP registry. Use --no-bootstrap to restrict to the 32 hardcoded TLDs for offline or faster operation.
See the full CLI Reference for all options and advanced usage patterns.
Configuration
Config Files
Create a .domain-check.toml to set persistent defaults:
[]
= 25
= "startup"
= true
= "8s"
= true
[]
= ["com", "io", "ai", "dev", "app"]
= ["com", "org", "net", "biz", "info"]
[]
= ["get", "my"]
= ["hub", "ly"]
Config file locations (checked in order):
./domain-check.toml > ~/.domain-check.toml > ~/.config/domain-check/config.toml
Environment Variables
DC_CONCURRENCY=50 # Default concurrency
DC_PRESET=startup # Default preset
DC_TLD=com,io,dev # Default TLD list
DC_PRETTY=true # Enable pretty output
DC_TIMEOUT=10s # Request timeout
DC_BOOTSTRAP=true # IANA bootstrap (enabled by default)
DC_CONFIG=config.toml # Config file path
DC_FILE=domains.txt # Domains file path
DC_PREFIX=get,my # Default prefixes for generation
DC_SUFFIX=hub,ly # Default suffixes for generation
Examples
Domain Generation
# Pattern-based: check all "go0" through "go9" domains
# Prefix/suffix: explore brand variations
# Dry-run to preview what will be checked
# Agent-friendly: no prompts, structured output
|
Automation & CI/CD
# Environment-driven configuration
DC_CONCURRENCY=50 DC_PRESET=enterprise
# Pipe JSON results for downstream processing
|
Bulk Workflows
# Domain research pipeline
# Brand protection — scan across 1,300+ TLDs
# High-concurrency processing
Custom Presets
# Define presets in .domain-check.toml, then use them
# Or via environment variable
DC_PRESET=my_startup
See Advanced Examples for more enterprise workflows.
Smart Presets
11 built-in presets covering the most common domain search scenarios:
| Preset | TLDs | Use Case |
|---|---|---|
startup |
com, org, io, ai, tech, app, dev, xyz | Tech startups and SaaS products |
popular |
com, net, org, io, ai, app, dev, tech, me, co, xyz | All-rounder — most registered extensions |
classic |
com, net, org, info, biz | Legacy gTLDs — the original five |
enterprise |
com, org, net, info, biz, us | Corporate and business use |
tech |
io, ai, app, dev, tech, cloud, software, digital, codes, systems, network, solutions | Developer tools and infrastructure |
creative |
design, art, studio, media, photography, film, music, gallery, graphics, ink | Artists, designers, and media |
ecommerce |
shop, store, market, sale, deals, shopping, buy, bargains | Online stores and retail |
finance |
finance, capital, fund, money, investments, insurance, tax, exchange, trading | Financial services and fintech |
web |
web, site, website, online, blog, page, wiki, host, email | Web services and platforms |
trendy |
xyz, online, site, top, icu, fun, space, click, website, life, world, live, today | Fast-growing new gTLDs |
country |
us, uk, de, fr, ca, au, br, in, nl | Major country codes |
# List all available presets
You can also define custom presets in your config file.
Library
Building a Rust app? Use domain-check-lib directly:
[]
= "0.9.0"
use DomainChecker;
async
See the Library Documentation for streaming, bulk processing, and configuration APIs.
Resources
- CLI Reference & Examples
- Library API Docs
- Advanced Examples
- Changelog Crates: domain-check (CLI) | domain-check-lib (Library)
License
Licensed under the Apache License, Version 2.0 — see the LICENSE file for details.