Ravenstash
Docs

Getting started

Install and publish private packages using the rvn CLI — the unified workflow for Python, npm, and Maven private repositories on Ravenstash.

Updated 2026-06-24

rvn is the Ravenstash CLI. It handles authentication, installs, and publishes across all supported ecosystems without touching your existing package manager configuration files.

Authenticate

rvn auth login

This starts a browser-backed device session. Approve it in the browser, then the CLI stores a rotating session token in your OS keyring. See rvn auth login for details.

Install a package

rvn pkg install internal-sdk

rvn pkg detects the package ecosystem from context (the current project manifest) and routes the request to the correct private repository. Target a specific repository explicitly with --repo:

rvn pkg install internal-sdk --repo acme/python
rvn pkg install @acme/design-system --repo acme/frontend

Publish a package

rvn pkg uploads directly to Ravenstash — it does not delegate to pip, npm, or mvn under the hood.

# Python: build your dist first, then publish
python -m build
rvn pkg publish dist/ --repo acme/python

# npm: publish from the project root
rvn pkg publish --repo acme/frontend

# Maven: publish from the project root
rvn pkg publish --repo acme/jvm

Omit --repo when the repository is set in the project configuration or environment.

Use native package managers

When you need the native package manager directly — for example in scripts that expect pip or npm CLI flags — use the rvn ecosystem wrappers. They inject the private repository URL and session credentials without modifying your global pip, npm, or mvn configuration files.

rvn pip install internal-sdk
rvn npm install @acme/design-system
rvn mvn install

All arguments after rvn pip (or rvn npm, rvn mvn) are forwarded as-is to the underlying tool. This makes it safe to use alongside existing config: your .npmrc, pip.conf, and Maven settings.xml are left untouched.

See the per-ecosystem guides for native tooling details:

CI and automation

For automated pipelines, use rvn pkg publish with a customer-scoped API token instead of a personal login session. See CI tokens.