Skip to content

rvs CLI overview

rvs is the Ravenstash developer CLI. It signs a terminal into Ravenstash, keeps personal and organization work separate, manages repositories and mirrors, and gives native package tools temporary authenticated access.

It complements pip, uv, Twine, npm, Maven, Docker, Helm, and ORAS. Those tools still own package formats, lock files, and dependency resolution.

Use rvs art to manage artifact repositories and mirrors. The full spelling, rvs artifacts, supports exactly the same commands.

Install the self-contained build on Ubuntu 20.04+ or Debian 11+ (amd64):

Terminal window
curl -fsSL https://ravenstash.com/install.sh | bash

Before a package command runs, rvs resolves who is signed in, which local configuration applies, and which repository or mirror to use:

Context Meaning Example
User The person authenticated to Ravenstash and recorded as the actor. [email protected]
Local profile Named CLI configuration and its credential slot. work
Acting account The personal account or organization authorizing and receiving usage for the operation. org:acme
Package target A private repository or private mirror. platform/backend
Registry kind PyPI, npm, Maven, Container, or Helm; required only when it cannot be inferred. pypi

A user, local profile, and acting account are deliberately separate. One user can belong to several organizations; a profile can point to a different Ravenstash environment; and two locally authenticated users can both work in the same organization while remaining distinct people in its activity history.

Terminal window
rvs auth login --profile work
rvs account list
rvs account use org:acme
rvs art select platform/backend
rvs context current

After selecting a target, commands can omit it:

Terminal window
rvs art pypi install internal-lib
rvs pip install internal-lib

Change the saved selection whenever you move to another repository or mirror. This keeps everyday commands short and makes the active destination visible in your shell prompt.

Install the Bash, Zsh, or Fish prompt hook once:

Terminal window
rvs shell setup

New shells can then show context such as:

(work · org:acme · platform/backend)

The prompt contains no credential. Profile, account, and target selections remain local to that shell when the hook is active, so two terminals can safely work in different contexts.

Targets have an explicit type:

platform/backend
mirror:pypiorg
custom-mirror:piwheels
  • namespace/repository selects a private repository and supports installs and publishing for its enabled registry kinds.
  • mirror:source selects a Ravenstash-curated official mirror for installs.
  • custom-mirror:name selects an account-defined mirror for installs.

Private mirrors are read-only. rvs refuses to publish to one and asks you to select a private repository. Container and Helm targets are private repositories; private mirrors cover PyPI, npm, and Maven.

Check for and install signed rvs updates:

Terminal window
rvs update
rvs update --apply

Use rvs for browser login, context selection, repository discovery, mirror selection, and temporary authentication. Run package-manager and OCI commands through the matching rvs wrapper.

For CI, inject an automation token from a secret manager, select the repository near the start of the job, and keep the remaining commands identical to local rvs workflows.