Product
The product
One web app with one search box. Behind it, a Registry orchestrator, a Provider router and a shared set of Name validation rules.
The Check
A Check looks up one Name on every Registry at once: npm, Homebrew Formulae, Homebrew Cask, PyPI and GitHub. It yields exactly one Registry result per Registry, and each result carries one Registry status: Available, Taken, Error or Rate limited.
On GitHub, Taken means some public repository has exactly that name, under any owner. GitHub is a repository host, not a package registry, so read that result with the difference in mind.
Suggestions
When the Name is Taken on at least one Registry, you can pick a Provider and ask for Suggestions: Claude API, OpenAI API, or Claude, Codex or Copilot through a local MCP bridge.
The Provider is told the Name and the Registries on which it is Taken, and returns 8 Suggestions. Any that break the Name validation rules are dropped; the rest each get a Re-check, so every Suggestion shows its own Registry status per Registry.
Name validation rules
A Name starts with a lowercase letter or digit, uses only lowercase letters, digits, -, _ and ., has at most 214 characters, and is not scoped (no leading @). The same rules run in the browser and on the server.
A Name with -, _ or . gets a PyPI normalization warning: PyPI treats those characters as equivalent, so my-tool and my_tool are the same PyPI project.
Built to degrade gracefully
Registries are queried with Promise.allSettled, so one failing Registry becomes an Error result and never hides the others. GitHub answers of 403 or 429 become Rate limited instead of a failure.
Numbers at a glance
- Registries per Check
- 5
- Timeout per Registry
- 4 seconds
- Suggestions per request
- 8
- Result cache
- In memory, 5 minutes, up to 1,000 entries
- Longest Name
- 214 characters
- Providers
- 5 (2 API, 3 MCP bridge)
Name it once, check it everywhere
Run Application Namer yourself: Registry checks work with no configuration, and one Provider key turns on Suggestions.