brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Check domain availability (Available/Taken) for any TLD with confidence scoring, SSL certificate inspection, and IP resolution. Uses 5+ sources in parallel — RDAP, WHOIS (TLD-specific patterns for 30+ ccTLDs/gTLDs, IANA fallback for unknown TLDs), authoritative DNS NS lookup as
Claude Code
$ npx -y skills add PleasePrompto/domain-check-skill --skill domain-check --agent claude-code
Codex
$ npx skills add PleasePrompto/domain-check-skill --skill domain-check -a codex -y
Cursor
$ npx skills add PleasePrompto/domain-check-skill --skill domain-check -a cursor -y
Gemini CLI
$ npx skills add PleasePrompto/domain-check-skill --skill domain-check -a gemini-cli -y
GitHub Copilot
$ npx skills add PleasePrompto/domain-check-skill --skill domain-check -a github-copilot -y
OpenCode
$ npx skills add PleasePrompto/domain-check-skill --skill domain-check -a opencode -y
Windsurf
$ npx skills add PleasePrompto/domain-check-skill --skill domain-check -a windsurf -y
name: domain-check description: 'Check domain availability (Available/Taken) for any TLD with confidence scoring, SSL certificate inspection, and IP resolution. Uses 5+ sources in parallel — RDAP, WHOIS (TLD-specific patterns for 30+ ccTLDs/gTLDs, IANA fallback for unknown TLDs), authoritative DNS NS lookup as GDPR tiebreaker for .de/.eu/.at/.ch/.es, DNS A/AAAA, HTTP reachability, and TLS certificate validation. Returns a clear binary verdict; when Taken, inline includes registrar, expiration date (or note if registry redacts under GDPR), nameservers, server IPs, and full SSL cert details. Single-domain or bulk-async (30 domains in ~10s). Stateless, stdlib-only, runs identically on Linux, macOS, and Windows. Use when the user asks if a domain is free/taken/available/registered, wants WHOIS or RDAP info, SSL certificate details, or to resolve a URL/domain to its server IPs. Triggers — "is X.com free", "check this domain", "bulk domain check", "SSL cert of X", "what IP does X resolve to", "domain availability", "ist X.de frei", "domain prüfen", "Belegt oder frei".'
Platform-independent domain checker. Answers the binary question **Available / Taken** with high confidence (100% when all sources agree) and, for taken domains, returns the most relevant details inline: SSL certificate, server IP, expiration date.
**As the very first action — before generating, recommending, suggesting, scoring, or curating ANY domain names — you MUST `Read references/naming_guide.md` in full.** Non-skippable. One Read tool call, ~3,300 words.
This rule fires on **all** of these triggers, not just on `suggest`:
**The guide is the single source of truth. The Python `score_name()` heuristics are a sanity helper, NOT a substitute for the guide.** Skipping the guide produces generic `voicebotify` / `cloudhub` slop that doesn't match the user's actual project.
**Workflow for any naming request:** 1. `Read references/naming_guide.md` — non-skippable, before any candidate is written 2. Pick 2–3 patterns from the guide that fit the user's project (e.g. "AI phone bot" → Hybrid Neoclassic + Action-Verb + Made-up-Phonetic, NOT just `voicebot+ify`) 3. Hand-curate a candidate list using the guide's brainstorming techniques (semantic web, mood board, free association, grandma test, 1AM bar test) 4. Run `bulk` to check availability — `suggest` output is only a starting point, never the final list 5. Apply the don't-list (no hyphens, no digit substitutions, no false friends, no typo-squat distance ≤1) 6. Present 8–15 curated finalists with rationale + buy_links, not 200 raw heuristic outputs
**No dependencies. No venv. No pip/uv/pipx required.**
The entire skill runs on the **Python ≥ 3.11 standard library** (needed for `dict | None` syntax and `asyncio.to_thread`). Module imports used by the skill: `argparse, asyncio, dataclasses, datetime, hashlib, io, json, os, pathlib, re, secrets, socket, ssl, struct, sys, tempfile, time, typing, urllib`. All stdlib.
If you run an exotic Python build without the SSL module, only the `ssl` subcommand will fail; the rest still works.
All commands are run from this skill's directory (the agent will cd there automatically). Same invocations on Linux, macOS, and Windows:
python3 scripts/domain_check.py check example.com python3 scripts/domain_check.py bulk example.com example.org example.net python3 scripts/domain_check.py ssl example.com python3 scripts/domain_check.py resolve https://example.com/path
On Windows, use `python` instead of `python3` if needed.
Single-domain check, JSON output.
**For "Taken"** the response contains:
**For "Available"** a compact response: `verdict: "Available"`, `confidence`, `summary`, `evidence`. No SSL/IP blocks (irrelevant).
**For "Reserved"** / **"Unclear"**: `verdict` plus rationale in `summary` plus `evidence` for diagnosis.
Up to 8 domains in parallel. NDJSON output (one line per domain) — pipe-friendly. Alternatives:
python3 scripts/domain_check.py bulk --file domains.txt --format=table echo -e "example.com\nexample.org" | python3 scripts/domain_check.py bulk --stdin
SSL certificate only. Returns issuer, subject, SAN, valid_from/to, days_until_expiry, SHA-256 fingerprint, protocol, cipher, and the effective IP of the TLS connection.
Extracts the hostname from a URL and resolves IPv4 + IPv6, plus reverse DNS for the first 3 IPs. Accepts `https://example.com/path`, `example.com:443`, `example.com`.
Whether a domain is "Available" or "Taken" depends on **which** sources are authoritative for the given TLD:
Cross-platform, dependency-free domain availability checker — runs as a plugin in Claude Code, an extension in Gemini CLI, and a skill in Codex CLI / OpenCode, or as a plain Python CLI. Ask your coding agent "is example.com free?"
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.