Skip to main content

Check repo name availability across package registries

Project description

Repo Name Checker

Check the availability of a repo name against the major package registries (NPM, PyPI, crates.io).

Usage

uvx repo-name-checker foobarbaz

Produces a table:

Repository Available Collisions
npm dark-factory
pypi
crates

Pass a list of registries to narrow the check:

uvx repo-name-checker foobarbaz --registry npm --registry pypi

Publish-time collision detection (npm)

npm rejects publishes whose normalized form (lowercased, with -/_/. removed) matches an existing package. The Collisions column lists existing names that would block your publish — for example darkfactory collides with dark-factory. The check is best-effort: npm's exact internal algorithm is private, so a passing check is necessary but not sufficient.

Output format

Use --format to choose the output. table is the default; json emits a machine-readable list:

$ uvx repo-name-checker foobarbaz --format json
[
  {"registry": "npm", "name": "foobarbaz", "available": false, "collisions": ["foo-bar-baz"]},
  {"registry": "pypi", "name": "foobarbaz", "available": true, "collisions": []},
  {"registry": "crates", "name": "foobarbaz", "available": true, "collisions": []}
]

The CLI exits 0 if at least one registry has the name available, otherwise 1.

SDK

The CLI is a thin wrapper over a Python SDK with 1:1 parity:

import asyncio
from repo_name_checker import check, check_sync

# Async
results = asyncio.run(check("foobarbaz", registries=["npm", "pypi"]))

# Sync
results = check_sync("foobarbaz")

for r in results:
    print(r.registry, r.available)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repo_name_checker-0.1.0.tar.gz (5.3 kB view details)

Uploaded Source

File details

Details for the file repo_name_checker-0.1.0.tar.gz.

File metadata

  • Download URL: repo_name_checker-0.1.0.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for repo_name_checker-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5f4a0f6d446cbc7c259aa68a10751e61412f447861e7503fc16cba238eeb200d
MD5 ba9c1e2bef757e30a632d7130cca6e00
BLAKE2b-256 c9bff9e3eb9dc496dc6fd3f73e506e0a8a1152481a55506af74b9cddaed5bddc

See more details on using hashes here.

Provenance

The following attestation bundles were made for repo_name_checker-0.1.0.tar.gz:

Publisher: release.yml on thekevinscott/repo-name-checker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page