@cmgriffing/isittaken
v0.1.0
Published
Honest multi-registry package-name availability checks for humans and agents.
Maintainers
Readme
isittaken
Honest, multi-registry package-name availability checks — for humans and agents.
isittaken checks bare or venue-qualified names across nine package
registries and reports one verdict per venue: available, taken,
invalid, or unknown. unknown is never presented as available, so an
available verdict always means a definitive "no package found here."
Install
# run it without installing
npx @cmgriffing/isittaken check my-package
# or: pnpm dlx @cmgriffing/isittaken check my-package
# or install globally
npm install -g @cmgriffing/isittakenRequires Node 22.12 or newer.
Usage
isittaken check <names...> [options]
isittaken check my-package
isittaken check "fuzzy picker" other-name --json # phrases normalized per venue
isittaken check mylib -r npm,pypi,crates # scope to exact-only venues
isittaken check symfony/console -r packagist # qualified input -> exact check| Option | Meaning | Default |
| ---------------------- | ------------------------------------------- | --------------- |
| -r, --registry <ids> | comma-separated venue ids to scope the run | all nine venues |
| --json | machine-readable JSON (preferred by agents) | human table |
| --concurrency <n> | max concurrent lookups per venue | 10 |
| --timeout <ms> | per-venue lookup timeout | 10000 |
Venues
- Exact, definitive checks —
npm,pypi,crates,rubygems,nuget,hex - Fuzzy for bare words —
maven,go,packagist: results carryfuzzy: true; qualified input (e.g.symfony/console) upgrades them to exact checks
Go bare-word search is best-effort and honestly reports unknown when
pkg.go.dev rate-limits the client.
JSON output
--json is agent-first: a top-level summary rollup answers "what can I
claim?" directly — anyAvailable, per-status counts, and an available
list mapping each input to its exact venues (definitive) and its
fuzzyVenues (search-index leads to verify).
Non-JSON runs stream per-venue progress checkpoints to stderr while stdout
stays clean; --json output is never mixed with progress. Color is
automatic and disabled for piped output (NO_COLOR honored).
Exit codes
| Code | Meaning |
| ---- | ------------------------------------------------ |
| 0 | at least one (name, venue) result is available |
| 1 | no name was available at any venue |
| 2 | usage error |
Scope notes
- npm scope claimability is intentionally unsupported: npm provides no
dependable signal, so scoped targets are reported
invalidper venue. - Availability is observed, not guaranteed — each venue remains the authority. Verify on the venue before publishing.
- Every outbound request carries an identifying
User-Agent: isittaken/<version> (+https://github.com/cmgriffing/isittaken).
License
MIT © Chris Griffing. See LICENSE.
