How to Fix npm install ENOVERSIONS Error for @google/design.md
The ENOVERSIONS error occurs because @google/design.md is published to a private Google registry rather than the public npm registry, requiring explicit registry configuration to resolve.
When you run npm install @google/design.md, npm throws ENOVERSIONS: No matching version found for @google/design.md. This happens because the package is configured to publish to a private registry at wombat-dressing-room.appspot.com instead of the public npm registry, making it invisible to standard npm commands that query registry.npmjs.org.
Why npm Cannot Find the Package
The ENOVERSIONS error indicates that npm successfully contacted a registry but found zero published versions of the requested package. In the case of @google/design.md, the private registry configuration prevents the public npm registry from indexing any versions.
According to the source code analysis, the package configuration in packages/cli/package.json declares version 0.3.0 and specifies a custom publishConfig field pointing to https://wombat-dressing-room.appspot.com. Because the default npm install command queries the public npm registry, it never encounters the 0.3.0 release, resulting in the version mismatch error.
The repository's root package.json does not list @google/design.md as a dependency, so the failure typically occurs only when users explicitly attempt to install the package from npm or when external projects reference it without registry configuration.
Inspecting the Package Configuration
The authoritative source for the registry configuration resides in the CLI package manifest:
packages/cli/package.json: Contains thepublishConfigfield specifying the private registry URL and the current version0.3.0package.json(root): Defines the workspace structure and provides acliscript that executes the tool using Bun rather than npm
This configuration confirms that @google/design.md is intentionally scoped to Google's internal publishing infrastructure, not the public npm ecosystem.
Three Ways to Resolve the ENOVERSIONS Error
Install from the Private Registry Using Command-Line Flags
Specify the correct registry URL directly in your install command to bypass the public npm registry lookup:
npm install @google/design.md --registry=https://wombat-dressing-room.appspot.com
This approach works for one-off installations but requires the flag for every update or install operation.
Configure .npmrc for Persistent Registry Access
Create or edit a project-level .npmrc file to permanently map the @google scope to the private registry:
@google:registry=https://wombat-dressing-room.appspot.com
After adding this configuration, standard npm install @google/design.md commands resolve correctly without additional flags. You can also add this to your user-wide ~/.npmrc for system-wide access to Google-scoped packages.
Use the Repository's Bun-Based CLI
The repository uses Bun as its package manager, declared in the root package.json. Instead of installing via npm, run the CLI directly from the source:
bun run packages/cli/src/index.ts
Alternatively, use the shortcut script defined in the root package.json:
npm run cli -- --help
This method bypasses npm's registry resolution entirely by executing the TypeScript source with Bun's runtime.
Verifying the Installation
After applying one of the solutions above, verify the package resolves correctly:
npm list @google/design.md
Or, when using the Bun-based approach:
bun run packages/cli/src/index.ts --version
Summary
- The ENOVERSIONS error indicates npm cannot find any versions of
@google/design.mdin the queried registry. - Root cause: The package publishes to
wombat-dressing-room.appspot.com, not the public npm registry. - Configuration source: The
publishConfigfield inpackages/cli/package.jsonpoints to the private registry. - Immediate fix: Install with
--registry=https://wombat-dressing-room.appspot.com. - Permanent fix: Add
@google:registry=https://wombat-dressing-room.appspot.comto your.npmrcfile. - Alternative: Use the repository's built-in Bun CLI via
npm run cliorbun run packages/cli/src/index.ts.
Frequently Asked Questions
What does the ENOVERSIONS error mean in npm?
The ENOVERSIONS error occurs when npm successfully contacts a registry but finds zero versions available for the requested package. For @google/design.md, this happens because the package is published to a private Google registry that your npm client is not configured to query.
Is @google/design.md available on the public npm registry?
No. According to the repository configuration in packages/cli/package.json, @google/design.md is explicitly configured to publish to https://wombat-dressing-room.appspot.com, a private registry. No versions are published to registry.npmjs.org, which is why public npm installs fail.
Can I use yarn or pnpm instead of npm to install this package?
Yes, but you must still configure the registry. Both yarn and pnpm respect .npmrc configurations, so adding @google:registry=https://wombat-dressing-room.appspot.com to your .npmrc enables installation with any package manager. Alternatively, use yarn's --registry flag or pnpm's --registry option pointing to the same URL.
Why does the repository use Bun instead of npm?
The root package.json specifies Bun as the package manager and provides a cli script that invokes bun run packages/cli/src/index.ts. This allows the project to execute the CLI tool directly from TypeScript source without requiring a published npm package, bypassing the registry resolution issues entirely.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →