smithery.ai

ruby-version-manager

Use at session start for Ruby projects (Gemfile, .ruby-version, or .tool-versions present). Detect version manager BEFORE running ruby, bundle, gem, rake, rails, rspec, or any Ruby command.

First seen Mar 23, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,171 B
  • docs SUMMARY.md 217 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Ruby Version Manager Skill

Detects and configures Ruby version managers for proper environment setup.

When to Use

Run detect.sh IMMEDIATELY when:

  • Starting work in a directory with Gemfile, .ruby-version, or .tool-versions
  • Before your first Ruby command (ruby, bundle, gem, rake, rails, rspec, etc.)
  • When switching between Ruby projects

Do NOT wait for commands to fail or user requests. Proactive detection prevents version mismatch errors.

Always chain activation with commands: ACTIVATIONCOMMAND && rubycommand

Usage

Step 1: Run detect.sh

Run detect.sh from this skill's directory (path provided by session-start hook).

Step 2: Parse Output

The script outputs key=value pairs:

VERSION_MANAGER=rbenv
PROJECT_RUBY_VERSION=3.2.0
VERSION_AVAILABLE=true
ACTIVATION_COMMAND=eval "$(rbenv init -)"

Step 3: Execute Ruby Commands

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.

Output Variables

Variable Description
VERSION_MANAGER Detected: shadowenv, chruby, rbenv, rvm, asdf, rv, mise, or none
VERSIONMANAGERPATH Installation path
PROJECTRUBYVERSION Version required by project
PROJECTVERSIONSOURCE 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
SYSTEMRUBYVERSION System Ruby (when VERSION_MANAGER=none)
WARNING Environment warnings
NEEDSUSERCHOICE true when multiple managers detected without preference
AVAILABLE_MANAGERS List of detected managers (when NEEDSUSERCHOICE=true)
NEEDSVERSIONCONFIRM true when no version specifier found
SUGGESTED_VERSION Latest installed Ruby (when NEEDSVERSIONCONFIRM=true)

Activation Commands by Manager

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)

Commands Requiring Activation

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

Handling Special Cases

Multiple Version Managers (NEEDSUSERCHOICE=true)

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

No Version Specifier (NEEDSVERSIONCONFIRM=true)

Ask: "No .ruby-version found. Use Ruby [SUGGESTEDVERSION] for this session?" If declined, show options from INSTALLEDRUBIES.

Version Not Installed (VERSION_AVAILABLE=false)

Inform user and offer installation:

Ruby {PROJECTRUBYVERSION} 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).

Shadowenv Trust Issues

If "untrusted shadowenv program" error appears, user must run shadowenv trust in the project directory.

Version Format Variations

Supported formats: 3.3.0, ruby-3.3.0, truffleruby-21.3.0, 3.3.0-rc1, 3.3 (matches any patch)

CI/Docker Environments

When VERSION_MANAGER=none, use system Ruby directly.

Troubleshooting

If Ruby commands fail after activation:

  1. Re-run detect.sh to verify environment
  2. Check VERSION_AVAILABLE - install if false
  3. Verify manager installation at VERSIONMANAGERPATH
  4. chruby: Check ~/.rubies or /opt/rubies for installations
  5. rvm: Check both ~/.rvm and /usr/local/rvm