A fast, ergonomic Rust-based command-line interface (CLI) for Namecheap to manage domains, DNS records, and account settings.
- Domain Availability: Check availability and premium pricing for multiple domains simultaneously.
- Domain Management: List all registered domains in your account, filter by search term, sort, and inspect domain details (status, expiration, nameservers, WhoisGuard).
- DNS Records Management:
- List host records (A, AAAA, CNAME, TXT, MX, etc.).
- Add and delete DNS host records.
- Switch between Namecheap BasicDNS and custom nameservers.
- Credential & Config Management: Store credentials securely in local configuration or supply them via environment variables or CLI flags.
- IP Detection Utility: Quick helper command (
namecheap-cli ip) to detect your public IP address for Namecheap API IP whitelisting. - Scripting & Automation Ready: Output any command formatted as structured JSON with
--json.
- Rust (1.80+ recommended)
git clone https://github.com/SpaceCorps/namecheap-cli.git
cd namecheap-cli
cargo build --releaseThe binary will be located at target/release/namecheap-cli.
Namecheap API requires three credentials:
- API Username
- API Key (generated under Namecheap Profile -> Tools -> Business & Dev Tools -> Namecheap API Access)
- Whitelisted Client IP (Namecheap enforces IP whitelisting)
namecheap-cli ipAdd this IP to your Namecheap Whitelisted IPs in the dashboard.
Save credentials once:
namecheap-cli config set --api-user <YOUR_USER> --api-key <YOUR_KEY> --client-ip <YOUR_IP>Or use environment variables:
export NAMECHEAP_API_USER="your-username"
export NAMECHEAP_API_KEY="your-api-key"
export NAMECHEAP_CLIENT_IP="your-public-ip"
export NAMECHEAP_SANDBOX="false"To view current settings:
namecheap-cli config show# Check availability of one or more domains
namecheap-cli domains check example.com mycoolapp.io rustacean.dev
# JSON output
namecheap-cli domains check example.com --json# List domains
namecheap-cli domains list
# Filter and paginate
namecheap-cli domains list --search "myproject" --page 1 --page-size 50namecheap-cli domains info example.com# List DNS host records
namecheap-cli dns list example.com
# Add an A record
namecheap-cli dns add example.com --name "@" --type "A" --address "192.0.2.1" --ttl 1800
# Add a CNAME record
namecheap-cli dns add example.com --name "www" --type "CNAME" --address "example.com."
# Delete a record
namecheap-cli dns delete example.com --name "www" --type "CNAME"
# Point to custom nameservers (Cloudflare, Route53, etc.)
namecheap-cli dns set-custom example.com --nameservers "ns1.example.com,ns2.example.com"
# Reset to Namecheap default DNS
namecheap-cli dns set-default example.comTo test commands against the Namecheap Sandbox API, pass the --sandbox flag or set --sandbox true in config set:
namecheap-cli --sandbox domains check sandbox-test-123.comMIT License. See LICENSE for details.