@masukomi/pi-rbenv
Pi extension to automatically manage Ruby versions, and gem installed executables via rbenv
Package details
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-versionfiles 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-versionis found. - Subprocess Integration: Pre-pends rbenv shims to the environment
PATHacross all subprocess commands. - Tool Interception: Automatically injects the correct
RBENV_VERSIONandPATHinto the built-inbashtool,ctx_shell, anduser_bash(!/!!) sessions. Note:ctx_shellis 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
- On Session Start: Checks if there is a
.ruby-versionfile in the project directory. If present, it verifies whether the requested version is installed underrbenv. - Environment Tuning: If the requested version is present, it sets
RBENV_VERSIONto that version. If not, it falls back to the default/globalrbenvversion and displays a warning notification in the TUI/CLI. - Subprocess/Tool Overriding:
- Overrides the built-in
bashtool to ensure it runs with the modified environment. - Intercepts the
shell/ctx_shelltools to export the properPATHandRBENV_VERSIONvariables before command execution. - Wraps the interactive user CLI command runner (
!/!!) to preserve active rbenv settings.
- Overrides the built-in
License
MIT