id = "rv"
name = "rv"
homepage = "https://github.com/spinel-coop/rv"
description = "Extremely fast Ruby and gem manager."
executables = ["rv", "rvw", "rvx"]
[dotfiles]
paths = [
"~/.rv.kdl",
"[configHome]/rv.kdl",
"[configHome]/rv/rv.kdl",
]
secret = []
[commands]
format = 1
label = "rv"
description = "Run commands with a managed Ruby and install Ruby versions. clean-install, tool, shell, cache, fmt and self subcommands are not covered."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.subcommand]]
path = ["run"]
label = "Run with Ruby"
description = "Run a command or script with Ruby available, installing the requested Ruby if needed."
[[commands.subcommand.source]]
id = "src"
kind = "help"
url = "https://github.com/spinel-coop/rv/blob/main/docs/PLANS.md"
revision = "2026-10-27"
evidence = """
/// Ruby version to use.
pub ruby: Option<RubyRequest>,
rv run --ruby 3.4.2 -- ruby
/// What to run with Ruby available, e.g. `ruby myscript.rb`
"""
[[commands.subcommand.field]]
id = "ruby"
label = "Ruby version"
description = "For example 3.4 or 4.0.1."
type = "string"
option = ["--ruby"]
sources = ["src"]
[[commands.subcommand.field]]
id = "command"
label = "Command"
description = "For example ruby, irb or a script name."
type = "string"
position = 0
min = 1
effect = "exec"
sources = ["src"]
[[commands.subcommand.field]]
id = "args"
label = "Arguments"
type = "string"
position = 1
multiple = true
sources = ["src"]
[[commands.subcommand.task]]
id = "run"
label = "Run a command"
fields = ["ruby", "command", "args"]
required = ["command"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["command", "args", "ruby"]
[[commands.subcommand]]
path = ["ruby", "install"]
label = "Install Ruby"
description = "Install a Ruby version. With no version, it is discovered from .ruby-version, .tool-versions or Gemfile.lock."
[[commands.subcommand.source]]
id = "src"
kind = "help"
url = "https://github.com/spinel-coop/rv/blob/main/crates/rv/src/commands/ruby.rs"
revision = "2026-10-27"
evidence = """
rv ruby install
rv ruby install latest
rv ruby install 3.4
rv ruby install 4.0.1
/// Directory to install into
install_dir: Option<String>,
/// Ruby version to install
version: Option<RubyRequest>,
/// Overwrite an existing installed version.
Version already installed. If you want to overwrite it, use '--force'.
"""
[[commands.subcommand.field]]
id = "version"
label = "Ruby version"
description = "For example latest, 3.4, 4.0.1 or dev."
type = "string"
position = 0
suggestions = [{ value = "latest", label = "Latest" }, { value = "3.4", label = "3.4" }, { value = "4.0.1", label = "4.0.1" }]
sources = ["src"]
[[commands.subcommand.field]]
id = "force"
label = "Overwrite existing"
type = "boolean"
option = ["--force"]
effect = "overwrite"
sources = ["src"]
[[commands.subcommand.task]]
id = "install"
label = "Install a version"
fields = ["version"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["version", "force"]