| name | name-check |
| description | Suggests project/crate/plugin names and checks availability across registries (crates.io, npm, PyPI, AUR, GitHub, domains; needs `bun`). Use before naming, renaming, or publishing anything. |
| metadata | {"author":"uwuclxdy","version":"1.3"} |
Name Check
Procedure
- Scope first (before a rename or release). Establish from context (ask if unsure):
- what the thing does, in one line
- which registries matter: crates.io, AUR, PyPI, npm, GitHub, KDE store, domain...
Check only relevant registries depending on the project.
- rename cost: unpublished (cheap, anything goes) vs already public (flag every rename consequence)
- Generate 10-30 candidates. Brainstorm and balance three axes:
- explicit: name states the function (
kate-markdown-preview over katdown)
- brandable: short, lowercase, occasionally punny (
flit, nook, perch)
- user-fit: closest to the user's stated direction
Mark each candidate with which axis it leans toward. Reserve companion names too when relevant (
flit + flitd + flit-mcp).
- Check availability in parallel. Fan out searches (web + registry pages) per candidate:
- exact match on each relevant registry
- general web collision: existing project, product, or company with the same name in the same space
- near-collisions worth flagging (one-letter-off popular project, trademark-adjacent)
- Report as a table with these columns:
| candidate | | web collision | note |
|---|
free / taken (link) / near: <what> per cell. End with one recommendation and why.
Helper
name-check.ts (same dir as the skill, requires bun) runs the deterministic registry axis in one pass to spare you the manual fetching:
bun name-check.ts <name> [<name>...] [--table] [--registry npm,crates,...] [--tld com,io]
- compact JSON by default;
--table for a quick scan, --list for registry ids.
- supports npm, PyPI, crates.io, RubyGems, Hackage, Go, Docker (library), Homebrew, AUR, NuGet, GitHub, plus domain availability (RDAP, DNS-confirmed on a 404).
- domain checks run only when
--registry is unset or explicitly includes domain (e.g. --registry npm,domain). The flag is not additive by default for domains.
- does not do web collision. still run that axis via WebSearch (same-space products, companies, trademarks) and fold both into the report table. Not a legal trademark search either (see Rules).
- registry read-only.
Rules
- Never reserve, publish, or rename anything. This flow is report only; renames require user's call.
- "Free" claims must come from an actual lookup this session, not memory.
- If every candidate is taken, say so and generate a second batch instead of stretching a bad fit. Taken by an abandoned or dead project still counts as taken. Do not attempt reclaim, transfer, or dispute (each registry has its own policy for that). Report it as taken and let the user decide.
- Registry and WebSearch checks are not a legal trademark search. Flag trademark-adjacent hits. Tell the user to run a formal search (USPTO, EUIPO, local registry) before any commercial release.