Help us improve
Share bugs, ideas, or general feedback.
From ruby-skills
Detects Ruby version managers (rbenv, rvm, asdf, etc.) for projects with Gemfile, .ruby-version, or .tool-versions. Provides activation commands before ruby, bundle, rails, or other Ruby tools.
npx claudepluginhub st0012/ruby-skills --plugin ruby-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/ruby-skills:ruby-version-managerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Detects and configures Ruby version managers for proper environment setup.
Manages Ruby gems and Bundler: writes Gemfiles with version constraints and groups, runs bundle commands, creates gem structures and gemspecs, handles Gemfile.lock.
Use when starting a session, running shell commands, installing packages, or diagnosing platform-specific failures - detects OS, shell, runtime, package manager, and toolchain before any command execution
Provides authoritative Ruby resources: official docs by version, stdlib gems, testing (minitest), typing (Sorbet/RBI, RBS/Steep/Tapioca). Use in Ruby projects.
Share bugs, ideas, or general feedback.
Detects and configures Ruby version managers for proper environment setup.
Run detect.sh IMMEDIATELY when:
Gemfile, .ruby-version, or .tool-versionsruby, bundle, gem, rake, rails, rspec, etc.)Do NOT wait for commands to fail or user requests. Proactive detection prevents version mismatch errors.
Always chain activation with commands: ACTIVATION_COMMAND && ruby_command
Run detect.sh from this skill's directory (path provided by session-start hook).
The script outputs key=value pairs:
VERSION_MANAGER=rbenv
PROJECT_RUBY_VERSION=3.2.0
VERSION_AVAILABLE=true
ACTIVATION_COMMAND=eval "$(rbenv init -)"
Chain ACTIVATION_COMMAND with your Ruby command:
eval "$(rbenv init -)" && bundle install
eval "$(rbenv init -)" && bundle exec rspec
Run detect.sh once per project session; reuse ACTIVATION_COMMAND for subsequent commands.
| Variable | Description |
|---|---|
VERSION_MANAGER | Detected: shadowenv, chruby, rbenv, rvm, asdf, rv, mise, or none |
VERSION_MANAGER_PATH | Installation path |
PROJECT_RUBY_VERSION | Version required by project |
PROJECT_VERSION_SOURCE | Source file (.ruby-version, .tool-versions, .mise.toml, Gemfile) |
RUBY_ENGINE | Implementation (ruby, truffleruby, jruby) |
INSTALLED_RUBIES | Comma-separated available versions |
VERSION_AVAILABLE | true/false - whether requested version is installed |
ACTIVATION_COMMAND | Shell command to activate the manager |
SYSTEM_RUBY_VERSION | System Ruby (when VERSION_MANAGER=none) |
WARNING | Environment warnings |
NEEDS_USER_CHOICE | true when multiple managers detected without preference |
AVAILABLE_MANAGERS | List of detected managers (when NEEDS_USER_CHOICE=true) |
NEEDS_VERSION_CONFIRM | true when no version specifier found |
SUGGESTED_VERSION | Latest installed Ruby (when NEEDS_VERSION_CONFIRM=true) |
| Manager | Activation Command | Notes |
|---|---|---|
| rbenv | eval "$(rbenv init -)" | Or use rbenv exec ruby ... |
| chruby | source .../chruby.sh && chruby <version> | detect.sh provides full command |
| rvm | source "$HOME/.rvm/scripts/rvm" | Or use ~/.rvm/bin/rvm-auto-ruby |
| asdf (v0.16+) | None | asdf exec ruby ... |
| asdf (<v0.16) | source "$HOME/.asdf/asdf.sh" | Then asdf exec ruby ... |
| mise | None | mise x -- ruby ... |
| rv | None | rv ruby run -- ... |
| shadowenv | None | shadowenv exec -- ruby ... |
| none | None | ruby ... (uses PATH) |
| Category | Commands |
|---|---|
| Core | ruby, irb, gem, bundle, bundler |
| Build/Task | rake, rails, thor |
| Testing | rspec, minitest, cucumber |
| Linting | rubocop, standardrb, reek |
| LSP/IDE | ruby-lsp, solargraph, steep |
| Debug | pry, byebug, debug |
| Gem binaries | Any executable from gem install or Gemfile |
Ask the user which manager to use, then store preference:
/path/to/set-preference.sh chruby # Saves to ~/.config/ruby-skills/preference.json
Detection priority: shadowenv > chruby > rbenv > rvm > asdf > rv > mise > none
Ask: "No .ruby-version found. Use Ruby [SUGGESTED_VERSION] for this session?" If declined, show options from INSTALLED_RUBIES.
Inform user and offer installation:
Ruby {PROJECT_RUBY_VERSION} is not installed. Install with:
- rbenv:
rbenv install {VERSION}- rvm:
rvm install {VERSION}- asdf:
asdf install ruby {VERSION}- mise:
mise install ruby@{VERSION}- chruby:
ruby-install ruby {VERSION}
Always ask before installing. For chruby, check INSTALLED_RUBIES for compatible versions (same major.minor).
If "untrusted shadowenv program" error appears, user must run shadowenv trust in the project directory.
Supported formats: 3.3.0, ruby-3.3.0, truffleruby-21.3.0, 3.3.0-rc1, 3.3 (matches any patch)
When VERSION_MANAGER=none, use system Ruby directly.
If Ruby commands fail after activation:
VERSION_AVAILABLE - install if falseVERSION_MANAGER_PATH~/.rubies or /opt/rubies for installations~/.rvm and /usr/local/rvm