Ravenstash
Docs

npm, Yarn, and pnpm

Use rvn npm and native npm tooling to install private JavaScript packages from Ravenstash without modifying your global .npmrc.

Updated 2026-06-24

This guide covers native npm tooling. For the simpler rvn pkg workflow that works without touching npm configuration, see Getting started.

Use placeholder names like acme and frontend below. In the app, replace them with your customer public ID and repository public ID.

rvn npm — native npm with injected auth

rvn npm passes all arguments directly to npm, inserting the private repository URL and auth token from the active session. Your global .npmrc is not modified.

rvn npm install @acme/design-system --repo acme/frontend

The same applies to pnpm, Yarn, and Bun — use rvn npm as the entry point and the arguments are forwarded as-is.

Configure npm directly

For environments where rvn is not available, configure the registry explicitly in the project .npmrc:

@acme:registry=https://rvnsta.sh/npm/x/acme/frontend/
//rvnsta.sh/npm/x/acme/frontend/:_authToken=${RAVENSTASH_TOKEN}

Then install as normal:

npm install @acme/design-system

Publish with rvn pkg

For publishing, use rvn pkg publish rather than npm publish. It uploads directly to Ravenstash:

rvn pkg publish --repo acme/frontend

Current status

Mutable dist-tag management is not implemented yet. Ravenstash derives latest from published version timestamps. The npm implementation supports streaming upload, package documents, version documents, tarball delivery, and /-/ping.