Fast, powerful CLI tool for checking domain availability using RDAP and WHOIS protocols.
Tired of switching between browser tabs and WHOIS websites to check if domains are available? domain-check brings fast, accurate domain availability checking directly to your terminal. Built in Rust for speed, with configuration files, environment variables, custom presets, and bulk processing for when you need to check hundreds of domains at once.
Perfect for developers, domain investors, startups, and anyone who works with domains regularly.
brew tap saidutt46/domain-check
brew install domain-check
cargo install domain-check
Pre-built binaries available for macOS, Linux, and Windows: GitHub Releases
domain-check example.com
# π΄ example.com is TAKEN
domain-check mystartup -t com,io,ai,dev
# π Checking 4 domains...
# π΄ mystartup.com is TAKEN
# π’ mystartup.io is AVAILABLE
# π’ mystartup.ai is AVAILABLE
# π’ mystartup.dev is AVAILABLE
# Check against ALL 35+ known TLDs in seconds
domain-check myapp --all
# π Checking 35+ domains across all TLDs...
# π’ myapp.com is AVAILABLE
# π΄ myapp.io is TAKEN
# π’ myapp.ai is AVAILABLE
# π’ myapp.dev is AVAILABLE
# ... (38 more results in ~2 seconds)
# Check against startup-focused TLDs (8 TLDs)
domain-check myapp --preset startup
# Enterprise-focused TLDs (6 TLDs)
domain-check mybrand --preset enterprise
echo -e "myapp\nmystartup\ncoolproject" > domains.txt
domain-check --file domains.txt -t com,org --json > results.json
Create persistent settings with configuration files:
# .domain-check.toml
[defaults]
concurrency = 25
preset = "startup"
pretty = true
timeout = "8s"
bootstrap = true
[custom_presets]
my_startup = ["com", "io", "ai", "dev", "app"]
my_enterprise = ["com", "org", "net", "biz", "info"]
my_crypto = ["com", "org", "crypto", "blockchain"]
[output]
default_format = "pretty"
csv_headers = true
Configuration file locations (checked in order):
./domain-check.toml
(project-specific)~/.domain-check.toml
(user global)~/.config/domain-check/config.toml
(XDG standard)
Perfect for CI/CD and automation:
# Basic settings
export DC_CONCURRENCY=50
export DC_PRESET=startup
export DC_PRETTY=true
export DC_BOOTSTRAP=true
# File locations
export DC_CONFIG=/path/to/config.toml
export DC_FILE=/path/to/domains.txt
# Use in commands
DC_TIMEOUT=30s domain-check mystartup
Define your own TLD combinations:
# Use custom preset from config file
domain-check mystartup --preset my_crypto
# Via environment variable
DC_PRESET=my_startup domain-check mystartup
domain-check [OPTIONS] [DOMAINS]...
<DOMAINS>...
- Domain names to check (supports both base names and FQDNs)
Option | Description | Example |
---|---|---|
-t, --tld <TLD> |
Specify TLDs for base names | -t com,org,io |
--all |
Check against all 42+ known TLDs | --all |
--preset <NAME> |
Use TLD preset (startup/enterprise/country) | --preset startup |
-f, --file <FILE> |
Read domains from file | -f domains.txt |
--config <FILE> |
Use specific config file | --config my-config.toml |
Option | Description | Default |
---|---|---|
-c, --concurrency <N> |
Max concurrent checks (1-100) | 20 |
--force |
Override safety limits | |
--streaming |
Show results as they complete | |
--batch |
Collect all results before showing |
Option | Description | Example |
---|---|---|
-p, --pretty |
Colorful output with emojis | --pretty |
-j, --json |
Output in JSON format | --json |
--csv |
Output in CSV format | --csv |
-i, --info |
Show detailed domain information | --info |
Option | Description | Default |
---|---|---|
-b, --bootstrap |
Use IANA bootstrap for unknown TLDs | false |
--no-whois |
Disable WHOIS fallback | false |
Option | Description |
---|---|
-d, --debug |
Show detailed debug information |
-v, --verbose |
Enable verbose logging |
-h, --help |
Show help information |
-V, --version |
Show version |
Variable | Description | Example |
---|---|---|
DC_CONCURRENCY |
Default concurrency | DC_CONCURRENCY=50 |
DC_PRESET |
Default preset | DC_PRESET=startup |
DC_TLD |
Default TLD list | DC_TLD=com,io,dev |
DC_PRETTY |
Enable pretty output | DC_PRETTY=true |
DC_TIMEOUT |
Request timeout | DC_TIMEOUT=10s |
DC_BOOTSTRAP |
Enable bootstrap | DC_BOOTSTRAP=true |
DC_CONFIG |
Config file path | DC_CONFIG=my-config.toml |
DC_FILE |
Domains file path | DC_FILE=domains.txt |
Just need CLI? You're all set! Check out our CLI Examples for advanced usage patterns.
Building a Rust app? Use our library:
[dependencies]
domain-check-lib = "0.6.0"
See the Library Documentation for integration examples.
Need bulk domain processing? See Advanced Examples for enterprise workflows.
π Universal Coverage - Check against ALL 35+ TLDs with --all
or use smart presets
β‘ Lightning Fast - Concurrent processing up to 100 domains simultaneously
π Rich Output Options - Beautiful terminal display, JSON/CSV for automation, detailed info mode
π Bulk Processing - Process thousands of domains from files with real-time streaming results
βοΈ Configuration Files - Persistent settings with TOML configuration files
π§ Environment Variables - Full DC_* environment variable support for automation
π― Custom Presets - Define your own TLD combinations for repeated use
# Single domain
domain-check example.com
# Multiple domains with pretty output
domain-check example.com google.com --pretty
# Check startup-focused TLDs
domain-check mystartup --preset startup
# Check all available TLDs
domain-check myapp --all --streaming
# One-time setup
cat > .domain-check.toml << 'EOF'
[defaults]
concurrency = 25
preset = "startup"
pretty = true
[custom_presets]
my_stack = ["com", "io", "dev", "app"]
EOF
# Now simple commands use your preferences
domain-check mystartup # Uses startup preset, pretty output, 25 concurrency
domain-check --preset my_stack myproject # Uses custom preset
# Environment-driven configuration
DC_CONCURRENCY=50 DC_PRESET=enterprise domain-check --file domains.txt --json
# Docker usage
docker run -e DC_PRESET=startup domain-check:latest myapp
# GitHub Actions
- name: Check domains
run: |
export DC_CONCURRENCY=30
domain-check --file required-domains.txt --json
# Domain research pipeline
domain-check --file ideas.txt --preset startup --csv > research.csv
# Brand protection monitoring
domain-check --file brand-variations.txt --all --json > monitoring.json
# Performance testing with high concurrency
domain-check --file large-list.txt --concurrency 75 --streaming
- CLI Documentation: Command Reference & Examples
- Library Documentation: docs.rs/domain-check-lib
- Advanced Examples: Enterprise Workflows
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- CLI Tool: crates.io/crates/domain-check
- Library: crates.io/crates/domain-check-lib
Licensed under the Apache License, Version 2.0 - see the LICENSE file for details.
Built with β€οΈ in Rust