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):
curl -fsSL https://ravenstash.com/install.sh | bashChoose where rvs works
Section titled “Choose where rvs works”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.
First session
Section titled “First session”rvs auth login --profile workrvs account listrvs account use org:acmervs art select platform/backendrvs context currentAfter selecting a target, commands can omit it:
rvs art pypi install internal-librvs pip install internal-libChange 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.
Keep the context visible
Section titled “Keep the context visible”Install the Bash, Zsh, or Fish prompt hook once:
rvs shell setupNew 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.
Private repositories and mirrors
Section titled “Private repositories and mirrors”Targets have an explicit type:
platform/backendmirror:pypiorgcustom-mirror:piwheelsnamespace/repositoryselects a private repository and supports installs and publishing for its enabled registry kinds.mirror:sourceselects a Ravenstash-curated official mirror for installs.custom-mirror:nameselects 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.
Updates
Section titled “Updates”Check for and install signed rvs updates:
rvs updatervs update --applyChoose the right interface
Section titled “Choose the right interface”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.

