One tool to manage ALL your development environment versions. Stop juggling pyenv, nvm, rbenv, and a dozen other tools!
The Problem: Every language has its own version manager with its own commands:
- Python → pyenv
- Node → nvm
- Ruby → rbenv
- Java → update-alternatives
- Go → manual installs
The Solution: ONE consistent interface for everything!
devenv use python 3.11
devenv use node 18
devenv statuscurl -sSL https://raw.githubusercontent.com/strabo231/devenv/main/install.sh | bash# See what's currently active
devenv status
# Switch versions
devenv use python 3.11
devenv use node 18
# Auto-detect project requirements
devenv detect
# List available versions
devenv list pythonuse <lang> <version> Switch to a version
status Show all active versions
current <lang> Show current version
list <lang> List available versions
detect Auto-detect from project files
✅ Python (via pyenv or system)
✅ Node.js (via nvm or system)
✅ Java (via update-alternatives)
✅ Ruby (via rbenv or system)
✅ Go (via system)
🔄 Consistent interface - Same commands for all languages
🎯 Auto-detection - Reads .python-version, .nvmrc, etc.
📊 Clear status - See all active versions at once
⚡ Fast switching - Change versions instantly
🔧 Wraps existing tools - Uses pyenv, nvm, rbenv under the hood
📝 Project aware - Detects requirements from project files
Switch Python version:
devenv use python 3.11
# ✓ Python switched to 3.11
# ℹ Current: 3.11.0Check all versions:
devenv status
# Python: 3.11.0
# Node: 18.17.0
# Java: 17.0.2
# Ruby: 3.2.0
# Go: 1.21.0Auto-detect project needs:
cd myproject
devenv detect
# ✓ Found .python-version: 3.11
# ℹ Run: devenv use python 3.11
# ✓ Found package.json (Node project)
# ℹ Required Node: >=18.0.0DevEnv auto-detects versions from:
.python-version.nvmrc.node-version.ruby-versionpackage.json(engines field)pyproject.toml.tool-versions(asdf compatible)
DevEnv is a smart wrapper that:
- Checks if you have the appropriate version manager (pyenv, nvm, etc.)
- Uses that tool to switch versions
- Provides helpful guidance if tools aren't installed
- Works with system versions as fallback
DevEnv works best with these version managers installed:
- pyenv for Python:
curl https://pyenv.run | bash - nvm for Node:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash - rbenv for Ruby:
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-installer | bash
But will work with system versions if these aren't available!
| Task | Without DevEnv | With DevEnv |
|---|---|---|
| Switch Python | pyenv global 3.11 |
devenv use python 3.11 |
| Switch Node | nvm use 18 |
devenv use node 18 |
| Switch Ruby | rbenv global 3.2 |
devenv use ruby 3.2 |
| Check versions | Multiple commands | devenv status |
| Detect project | Manual inspection | devenv detect |
- Version switching for Python, Node, Ruby, Java, Go
- Status overview
- Project detection
- Auto-install missing versions
- Dependency management integration
- Project-specific environments (.devenv file)
- Shell integration for auto-switching
MIT License - see LICENSE
Sean - @strabo231
One tool. All languages. Simple. 🚀