spinel-coop/rv

Separate `rv tool run` from `rv tool install`

Open

#413 opened on Jan 25, 2026

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Rust (1,706 stars) (46 forks)user submission
good first issue

Description

It is incredibly awesome and cool that we have both rv tool install and rv tool run working.

Their respective final forms have a few extra features that make them less basically-the-same:

  • rvx is a valid way to invoke the rv binary, and when it is invoked via a symlink named rvx, it instead executes rv tool run

  • the install script and homebrew formula should create an rvx symlink pointing to the main rv binary to enable this

  • rv tool run will install a tool into a completely ephemeral GEM_HOME, and not leave an installed tool directory behind after it exits. This is really only feasible after we have some other features around caching and installing finished to make this fast enough.

  • rv tool install will not just install the tool itself, it will also create a binstub in ~/.local/bin/NAME that contains a script to run the tool with the right ruby version and only the specific tool gems available.

  • rv tool install will check to see if ~/.local/bin is included in $PATH, and will print a warning if it is not. The warning should include instructions to the user about how to add it to their PATH. I think uv has an entire utility command just for this, uv install-path or something like that.

Contributor guide