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.
Supported wrappers
Section titled “Supported wrappers”| 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:
rvs pip install internal-sdk==1.2.3rvs uv sync --frozenrvs twine upload dist/*rvs npm cirvs mvn verifyThe 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.
Native tool versions
Section titled “Native tool versions”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 a repository or mirror
Section titled “Select a repository or mirror”Select the destination once, then keep everyday package commands concise:
rvs art select platform/packagesrvs pip install internal-sdkrvs npm install @acme/design-systemrvs mvn testPrivate mirrors use the same pattern:
rvs art mirror select pypiorgrvs pip install requests
rvs art mirror select npmjsrvs npm install lodash
rvs art mirror select --custom company-mavenrvs mvn testWhen several profiles or accounts are available, choose the intended ones before selecting the repository:
rvs profile use companyrvs account switch AcmeHQrvs art select platform/packagesrvs npm ciChoose how existing configuration is used
Section titled “Choose how existing configuration is used”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:
rvs art select platform/packagesrvs uv --rvs-native-config isolate sync --frozenUse respect for normal development. Reserve isolate for deliberate
reproducibility checks.
Docker, Helm, and ORAS
Section titled “Docker, Helm, and ORAS”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:
rvs art select platform/runtime-imagesrvs docker pull api:latest
rvs art select platform/deployment-chartsrvs helm show chart charts/api --version 1.2.3
rvs art select platform/runtime-imagesrvs oras \ discover oci.rvsta.sh/platform/runtime-images/api:latestContainer 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.
How credentials are handled
Section titled “How credentials are handled”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.

