Skip to main content
Developer Documentation / Project Tools

Package Name Generator

Suggest and validate package names for npm, PyPI, Composer, Go modules and RubyGems against each registry's naming rules.

Pick an ecosystem and describe your package to get names that follow its naming conventions - or check a name you already have.

Checks follow each registry's published naming rules. Registries are not queried, so a valid name may already be taken - search the registry before publishing. For deeper single-name checks see the Package Name Validator and Python Package Name Checker.

Registries are not queried, so check that the name is free before you publish.

What Is the Package Name Generator?

It suggests package names for npm, PyPI, Composer (Packagist), Go modules and RubyGems, and checks each one - or a name you already have - against that ecosystem's naming rules. It also shows the install command, and for Python, Go and Ruby the import or require name that goes with it.

Why Naming Rules Differ

npm wants lowercase URL-safe names up to 214 characters with an optional @scope/; PyPI accepts mixed case but normalises My_Package and my-package to the same name; Composer requires vendor/package; Go uses a module path that starts with a domain; RubyGems uses underscores between words and dashes for extensions of another gem. A name that is perfect in one ecosystem can be awkward or invalid in another.

How to Use It

  1. Pick the ecosystem.
  2. Enter a few keywords and, where relevant, a scope, vendor or module path prefix.
  3. Optionally type an existing name to check it.
  4. Click Generate & validate.

Example

For PyPI with date format helpers, the suggestion date-format-helpers is valid and is imported as date_format_helpers. The name my_Package is flagged: allowed, but lowercase with hyphens is recommended.

Limitations

Registries are not queried, so a valid name may already be taken, and some registries also block names too similar to popular packages. For a single-name deep check use the Package Name Validator (npm and Composer) or the Python Package Name Checker. For the project itself, try the Project Name Generator.

Frequently Asked Questions

No. PyPI normalises names by lowercasing them and treating runs of hyphens, underscores and dots as one hyphen, so My_Package and my-package refer to the same project. Lowercase with hyphens is the recommended style.

A scope such as @acme/date-utils groups your packages under one namespace and avoids clashes with existing unscoped names. Scoped packages are private by default when published, so use npm publish --access public for public ones.

Packagist requires the vendor/package format so that different authors can publish packages with the same short name. The vendor is usually your username or organisation, and both parts must be lowercase.

No. The tool checks naming rules only and does not query any registry. Search the registry before publishing - npm also rejects names that are too similar to existing popular packages.
Share this tool: