A Simple Python venv Manager
Recently, while working on multiple Python projects, I faced some problems with how scattered my virtual environments were. Some were in the project folders, some outside, and I couldn’t remember which ones were important and which ones I could delete.
There are great tools like Anaconda, Mamba, Poetry, etc. — but they are heavy and come with more features than I needed. I just wanted something lightweight. Something that uses Python's own built-in venv
and lets me keep everything in one place. And I think if you're just hacking on side projects, scripts, or learning Python — these tools might feel like overkill.
So I wrote venvman — a tiny Bash script to create, activate, delete, and list Python virtual environments. You can find the project on GitHub here.
I didn’t need dependency resolution or Python version management. I just wanted:
- A centralized place for all venvs (no more searching in random project folders)
- A simple CLI command like venvman create myproject
- Quick activation from anywhere in the terminal
- Easy cleanup of unused venvs
That’s it. And I wanted it in one script — no dependencies, no config files, just pure Bash.
What does venvman do?
Once installed, it gives you these commands:
venvman create <name> # Create a new virtual environment
vactivate <name> # Activate an existing environment
vdeactivate <name> # Deactivate the current venv
venvman list # See all venvs
venvman delete <name> # Delete a venv you don’t need anymore
It stores all environments under ~/.venvs/
So now I can do:
venvman create testapi
vactivate testapi
Limitations
This is not a replacement for Anaconda, Mamba, or Poetry.
It does not:
- Manage Python versions (you’ll need pyenv
or something similar for that)
- Handle requirements.txt
or pyproject.toml
- Install any packages for you
It simply wraps the standard python3 -m venv
and gives you CLI access to keep it all clean and centralized.
Right now, it only works on Linux or Bash-compatible shells. If you're on macOS (which defaults to zsh
) or Windows (CMD or PowerShell), it won’t run without tweaks. But — if you want to help port it, raise a PR.
Installation
Clone the repo and run the setup:
git clone https://github.com/neo-0007/venvman.git
cd venvman
bash setup.sh
venvman
command globally (via ~/bin
) and appends a function + alias to your .bashrc
.
To uninstall:
bash uninstall.sh
Fork it. Hack it. Improve it. That’s the fun part :)