# How to Fix npm install ENOVERSIONS Error for @google/design.md

> Fix the npm install ENOVERSIONS error for @google/design.md. Learn why this private registry issue occurs and how to configure npm to successfully install this package.

- Repository: [Google Labs Code/design.md](https://github.com/google-labs-code/design.md)
- Tags: how-to-guide
- Published: 2026-06-27

---

**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`](https://github.com/google-labs-code/design.md/blob/main/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`](https://github.com/google-labs-code/design.md/blob/main/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`](https://github.com/google-labs-code/design.md/blob/main/packages/cli/package.json)**: Contains the `publishConfig` field specifying the private registry URL and the current version `0.3.0`
- **[`package.json`](https://github.com/google-labs-code/design.md/blob/main/package.json) (root)**: Defines the workspace structure and provides a `cli` script 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:

```bash
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:

```text
@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`](https://github.com/google-labs-code/design.md/blob/main/package.json). Instead of installing via npm, run the CLI directly from the source:

```bash
bun run packages/cli/src/index.ts

```

Alternatively, use the shortcut script defined in the root [`package.json`](https://github.com/google-labs-code/design.md/blob/main/package.json):

```bash
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:

```bash
npm list @google/design.md

```

Or, when using the Bun-based approach:

```bash
bun run packages/cli/src/index.ts --version

```

## Summary

- **The ENOVERSIONS error** indicates npm cannot find any versions of `@google/design.md` in the queried registry.
- **Root cause**: The package publishes to `wombat-dressing-room.appspot.com`, not the public npm registry.
- **Configuration source**: The `publishConfig` field in [`packages/cli/package.json`](https://github.com/google-labs-code/design.md/blob/main/packages/cli/package.json) points 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.com` to your `.npmrc` file.
- **Alternative**: Use the repository's built-in Bun CLI via `npm run cli` or `bun 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`](https://github.com/google-labs-code/design.md/blob/main/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`](https://github.com/google-labs-code/design.md/blob/main/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.