Install
$ agentstack add skill-shaharsha-claude-skills-namecheap-domains ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Namecheap Domains
Screens domain availability via the Namecheap namecheap.domains.check API. Wraps a single Python script — no dependencies beyond the stdlib.
The three jobs
- Check explicit domains the user named (
foo.com bar.ai baz.io). - Sweep one base name across TLDs (
myproductacross.com/.io/.ai/.dev/.co). - Screen brainstormed candidates — when the user asks for help
finding a name, generate the candidates yourself first, then run them through the checker. Prefer one batched call over many small ones.
Quick start
# explicit domains
python3 ~/.claude/skills/namecheap-domains/scripts/check.py foo.com bar.ai
# TLD sweep of a single base name
python3 ~/.claude/skills/namecheap-domains/scripts/check.py \
--base myproduct --tlds com,io,ai,dev,co,app
# screen a brainstormed list, show only what's free
python3 ~/.claude/skills/namecheap-domains/scripts/check.py \
--file /tmp/candidates.txt --available-only
# machine-readable
python3 ~/.claude/skills/namecheap-domains/scripts/check.py foo.com --json
Decision tree
| User asks… | Do | |---|---| | "is foo.com available?" | one-shot: check.py foo.com | | "check these 5 domains" | pass all as positional args — one batched API call | | "find an available .ai name for X" | brainstorm 15–30 candidates, write to /tmp/candidates.txt, run with --file --available-only | | "is myname free anywhere?" | --base myname --tlds com,io,ai,dev,co,app,xyz | | "check 80 domains" | pass them all — script auto-chunks at 50 per API call | | needs structured output for downstream use | add --json |
Always prefer batching
The Namecheap API accepts up to 50 domains per request (hard cap — 51+ returns "Only 50 domains are allowed in a single check command"). The script chunks automatically, so pass domains in bulk rather than looping one-at-a-time. A 30-domain sweep is one HTTP call, not thirty.
Output format
Default (text):
AVAILABLE brugfdjiujhrg.ai
taken google.com
AVAILABLE coolname.io [premium $2999.00]
AVAILABLE newtld.app [EAP +$1000.00]
AVAILABLE/taken— the headline signal[premium $N]— Namecheap flagged it as a premium registration; the
price shown is Namecheap's, not the registry's wholesale
[EAP +$N]— Early Access Program fee on top of normal registration
(applies to newly-launched TLDs in their first ~60 days)
JSON (via --json) adds icann_fee, premium_price, and eap_fee numeric fields for programmatic consumption.
Credentials
The script resolves credentials in this order:
- Env vars
NAMECHEAP_API_USER+NAMECHEAP_API_KEY+NAMECHEAP_CLIENT_IP. - A
## Namecheapsection in~/.claude/projects/-Users-shaharshavit/memory/api-keys.md
(the user's global credentials file).
If neither source resolves all three, the script exits with a clear error. Do not hardcode keys anywhere in the skill.
The API user's whitelisted IP must match the IP the request originates from. If you see Invalid request IP, the user's public IP has changed — tell them to update the whitelist in the Namecheap API dashboard and the value in their api-keys.md.
Caveats & gotchas
- Availability ≠ registerable at list price. A domain marked
AVAILABLE with [premium $N] means Namecheap will sell it, but at the premium price shown — often hundreds to thousands of dollars. Surface the premium flag in any summary you give the user.
- EAP windows (newly-launched TLDs) tack on a fee that drops over
weeks. The script reports EapFee; mention it if non-zero.
- ccTLDs with registration restrictions (
.ai,.io,.coare
fine; .de, .fr, .it often need residency). Namecheap returns availability but not eligibility — flag this to the user for restricted TLDs.
- Don't confuse "available" with "unused". A dropped domain may be
in a registry grace period; re-check after 30–60 days if the user is tracking a specific target.
- Rate-limit hygiene: Namecheap's documented limit is 50 calls per
minute per IP. A 50-domain batch counts as one call — another reason to batch.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: shaharsha
- Source: shaharsha/claude-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.