Skip to content

Developer Tools Virtual Environment Manager (DTVEM) is 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.

License

Notifications You must be signed in to change notification settings

CodingWithCalvin/dtvem.cli

dtvem logo

dtvem - Developer Tools Virtual Environment Manager

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.

Platform Go Version License Conventional Commits

Build & Test Release

Documentation · Installation · Quick Start · Commands

🤔 Why dtvem?

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.

Key Features

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.

📦 Installation

macOS / Linux:

curl -fsSL dtvem.io/install.sh | bash

Windows (PowerShell):

irm dtvem.io/install.ps1 | iex

See Getting Started for manual installation, building from source, and PATH configuration.

🚀 Quick Start

# 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 python

See Getting Started for more examples.

📚 Documentation

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

🤝 Contributing

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

Quick Setup

git clone https://github.com/CodingWithCalvin/dtvem.cli.git
cd dtvem.cli
./rnr check      # Run format, lint, and tests

Looking for something to work on? Check out good first issues.

👥 Contributors

CalvinAllen AlanBarber

📄 License

MIT License - See LICENSE file for details

About

Developer Tools Virtual Environment Manager (DTVEM) is 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.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •