A cross-platform virtual environment manager for multiple developer tools, written in Go, with first-class support for Windows, MacOS, and Linux - right out of the box.
Managing multiple versions of Python, Node.js, Ruby, and other runtimes across different projects is painful. Existing tools like nvm, pyenv, and rbenv work great on Unix systems but have limited or no Windows support. dtvem solves this by providing a single, unified tool that works seamlessly across all platforms.
✅ Cross-Platform: Windows, Linux, and macOS with identical behavior
✅ Multiple Runtimes: Python, Node.js, Ruby (Go, Rust, Java coming soon)
✅ Shim-Based: Automatic version switching without shell integration
✅ Migration Tool: Import existing installations from nvm, pyenv, etc.
✅ Per-Directory Versions: .dtvem/runtimes.json for project-specific versions
✅ No Shell Hooks: Works in cmd.exe, PowerShell, bash, zsh, fish, etc.
See Compare for how dtvem compares to nvm, pyenv, asdf, and mise.
macOS / Linux:
curl -fsSL dtvem.io/install.sh | bashWindows (PowerShell):
irm dtvem.io/install.ps1 | iexSee Getting Started for manual installation, building from source, and PATH configuration.
# Install a runtime version
dtvem install python 3.11.0
dtvem install node 20.0.0
# Set global default
dtvem global python 3.11.0
# Set project-local version
dtvem local node 18.16.0
# See what's active
dtvem current
# Migrate from nvm/pyenv
dtvem migrate node
dtvem migrate pythonSee Getting Started for more examples.
| Topic | Description |
|---|---|
| Getting Started | Install and get up and running |
| Commands | Complete command reference |
| Configuration | Config files and environment variables |
| Concepts | How dtvem works (shims, version resolution) |
| Migration | Import from nvm, pyenv, fnm, etc. |
| Compare | vs nvm, pyenv, asdf, mise |
| Runtimes | Supported runtimes and roadmap |
Contributions are welcome! See CONTRIBUTING.md for:
- Setting up your development environment
- Task runner commands for building and testing
- Commit conventions and PR guidelines
- CI/CD workflows and release process
- Adding new runtime providers
git clone https://github.com/CodingWithCalvin/dtvem.cli.git
cd dtvem.cli
./rnr check # Run format, lint, and testsLooking for something to work on? Check out good first issues.
MIT License - See LICENSE file for details