@masukomi/pi-rbenv

Pi extension to automatically manage Ruby versions, and gem installed executables via rbenv

Packages

Package details

extension

Install @masukomi/pi-rbenv from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@masukomi/pi-rbenv
Package
@masukomi/pi-rbenv
Version
1.0.0
Published
Jun 8, 2026
Downloads
not available
Author
masukomi
License
MIT
Types
extension
Size
12.2 KB
Dependencies
0 dependencies · 1 peer
Pi manifest JSON
{
  "extensions": [
    "./extensions"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@masukomi/pi-rbenv

A pi extension package that automatically manages and sets your Ruby version using rbenv.

It intercepts all subprocess commands, interactive user bash executions (!/!!), and core pi tool calls to ensure that they are executed under the correct Ruby version with the appropriate environment variables and PATH adjustments.

Features

  • Dynamic Ruby Version Resolution: Automatically reads and respects .ruby-version files in the project root.
  • Graceful Fallbacks: Falls back to rbenv's global Ruby version if a project's requested version is not installed or if no .ruby-version is found.
  • Subprocess Integration: Pre-pends rbenv shims to the environment PATH across all subprocess commands.
  • Tool Interception: Automatically injects the correct RBENV_VERSION and PATH into the built-in bash tool, ctx_shell, and user_bash (!/!!) sessions. Note: ctx_shell is part of pi-lean-ctx
  • Startup Notification: Shows a neat notification when the session starts telling you exactly which Ruby version is active and if a warning/fallback is in effect.

Installation

Local Installation (for development or private use)

Run the following command inside your project directory, or point to the absolute path of this package:

pi install /path/to/pi-rbenv

Git Installation

pi install git:github.com/masukomi/pi-rbenv

npm Installation

pi install npm:@masukomi/pi-rbenv

How It Works

  1. On Session Start: Checks if there is a .ruby-version file in the project directory. If present, it verifies whether the requested version is installed under rbenv.
  2. Environment Tuning: If the requested version is present, it sets RBENV_VERSION to that version. If not, it falls back to the default/global rbenv version and displays a warning notification in the TUI/CLI.
  3. Subprocess/Tool Overriding:
    • Overrides the built-in bash tool to ensure it runs with the modified environment.
    • Intercepts the shell/ctx_shell tools to export the proper PATH and RBENV_VERSION variables before command execution.
    • Wraps the interactive user CLI command runner (!/!!) to preserve active rbenv settings.

License

MIT