Skip to content

Run package tools through rvs

rvs runs the tools developers already use. It provides temporary Ravenstash access without saving a token in package-manager configuration.

Command Tool Works with
rvs pip pip Private PyPI repository or mirror
rvs uv uv Private PyPI repository or mirror
rvs twine Twine Private PyPI repository only
rvs npm npm Private npm repository or mirror for reads
rvs mvn Maven Private Maven repository or mirror for reads
rvs docker Docker Private OCI repository only
rvs helm Helm Private OCI repository only
rvs oras ORAS Private OCI repository only

Arguments after the rvs options are passed to the named tool:

Terminal window
rvs pip install internal-sdk==1.2.3
rvs uv sync --frozen
rvs twine upload dist/*
rvs npm ci
rvs mvn verify

The corresponding program must be available. rvs runtime can provide Python with pip or Node.js with npm; install uv, Twine, Maven, Docker, Helm, and ORAS separately when needed.

rvs does not enforce a minimum version for these tools. To preserve broad compatibility, it warns when it detects a particularly old client and then runs the command normally.

Tool Warning below
pip 23.0
uv 0.4.30
Twine 4.0.2
npm 10.0
Maven 3.9.0
Docker 25.0.2
Helm 3.8.0
ORAS 1.1.0

The warning highlights clients that are outside maintained upstream lines or predate relevant compatibility and security fixes. If rvs cannot determine a version, it continues without a warning.

Select the destination once, then keep everyday package commands concise:

Terminal window
rvs art select platform/packages
rvs pip install internal-sdk
rvs npm install @acme/design-system
rvs mvn test

Private mirrors use the same pattern:

Terminal window
rvs art mirror select pypiorg
rvs pip install requests
rvs art mirror select npmjs
rvs npm install lodash
rvs art mirror select --custom company-maven
rvs mvn test

When several profiles or accounts are available, choose the intended ones before selecting the repository:

Terminal window
rvs profile use company
rvs account switch AcmeHQ
rvs art select platform/packages
rvs npm ci

Package-manager wrappers accept --rvs-native-config:

Choice Behavior
respect Default. Keeps existing package-tool settings and adds Ravenstash access.
override Uses the selected Ravenstash repository while keeping other usable settings.
isolate Ignores saved package-tool settings where the tool supports it.

For example:

Terminal window
rvs art select platform/packages
rvs uv --rvs-native-config isolate sync --frozen

Use respect for normal development. Reserve isolate for deliberate reproducibility checks.

Select a private repository, then use a short image name for Docker push, pull, and tag. Helm accepts short chart paths; ORAS uses full references:

Terminal window
rvs art select platform/runtime-images
rvs docker pull api:latest
rvs art select platform/deployment-charts
rvs helm show chart charts/api --version 1.2.3
rvs art select platform/runtime-images
rvs oras \
discover oci.rvsta.sh/platform/runtime-images/api:latest

Container images and Helm charts share one OCI format and oci.rvsta.sh. ORAS uses that OCI registry directly; the manifest identifies its content type. Private-mirror targets are rejected for all OCI wrappers.

Docker pulls retain the full local image name; pushes add the full destination tag automatically and reject conflicting local tags. Buildx output tags and Dockerfile references stay explicit. See Container workflows for mixed public/private builds and tagging rules.

Credentials are limited to the command that rvs runs and any temporary files created for it. Docker, Helm, and ORAS use a temporary copy of their registry configuration and preserve credentials for other registries. rvs does not save a token in .npmrc, pip.conf, .pypirc, settings.xml, pyproject.toml, uv.toml, or the user’s Docker or Helm configuration.

Package tools can still display URLs or environment details in verbose debugging. Inspect logs before sharing them and rotate any credential that appears in output.

If a tool must connect without an rvs wrapper, follow the manual setup section in its PyPI, npm, Maven, Container, or Helm OCI guide. Those examples use the same repository addresses with a short-lived token.