The Professional Python Virtual Environment Manager
One Command to rule your environments. Zero manual setup. Pure Python magic.
Run the following command in your terminal to install Env Tool instantly:
iwr https://raw.githubusercontent.com/AliHamza-Coder/env-tool/main/install.ps1 | iexcurl -sSL https://raw.githubusercontent.com/AliHamza-Coder/env-tool/main/install.sh | bashEnv Tool automates the tedious parts of Python development. Whether you're on Windows, Linux, or macOS, the experience is identical and lightning fast.
| Feature | Env Tool | Manual Method |
|---|---|---|
| venv Creation | β
env |
β python -m venv ... |
| Direct Execution | β
env run |
β source ... && python ... |
| Auto-activation | β Yes | β Path specific |
| Pip & Tools Upgrade | β Auto | β Manual |
| Smart Notifications | β Yes | β Outdated packages |
| Cross-Platform | β Yes | β OS specific scripts |
Save space by sharing virtual environments across multiple projects.
| Command | Action | Example |
|---|---|---|
env g list |
Storefront: View all centrally stored global environments. | env g list |
env g create |
Birth: Create a new venv in the central master store. | env g create web-dev |
env g use |
Link: Connect your current project to a global venv. | env g use web-dev |
env g clean |
Purge: Delete specific or all global environments. | env g clean --all |
| Command | Description | Usage |
|---|---|---|
env |
Magic Setup: Creates venv, upgrades pip, and alerts for dependencies. | env |
env a |
Activate: Get the activation command for your current shell. | env a |
env d |
Deactivate: Get the deactivation command. | env d |
env run |
Execute: Run code inside venv (supports Shell & .env). | env run --shell "..." |
env init |
Project Bootstrap: Automatically creates src/, tests/, and .gitignore. |
env init |
env clean |
Deep Reset: Safely delete myenv and all __pycache__ folders. |
env clean |
env list |
Inspect: List packages or view a Hierarchy Tree. | env list --tree |
env freeze |
Dependency Lock: Quickly export all packages to requirements.txt. |
env freeze |
env update |
Power Sync: Synchronize and upgrade all packages at once. | env update |
env completion |
Setup: Enable Tab-Completion for your terminal. | env completion |
env help |
Guidance: Pro-grade command reference. | env help |
env net |
Connection: Check if your device is Online or Offline. | env net |
env version |
Smart Info: Check version & get update notifications. | env version |
env upgrade |
Auto-Update: Keep Env Tool itself on the cutting edge. | env upgrade |
env uninstall |
Safe Removal: Securely remove Env Tool from your system. | env uninstall |
Env Tool is smart about how it finds your environments.
When you run env, it automatically looks for existing environments in your project. It prioritizes them in this order:
- Linked: Via
.envlinkfile. - Standards: Any folder named
.venv,venv,env, ormyenv. - Creation: If none found, it creates
myenv.
Visualize your project structure instantly:
env list --treeNeed to use pipes (|) or redirects (>)? Use the --shell flag:
env run --shell "python app.py | grep 'Error' > log.txt"Env Tool automatically loads your .env file before running any command via env run. No extra config needed.
Want to use a specific Python version for your venv?
env --python 3.10Tired of typing? Set up completion:
env completionHere is how the paths look in different scenarios:
When you run env, it creates a folder named myenv inside your project.
- Project Path:
C:\Projects\Alpha\ - Venv Path:
C:\Projects\Alpha\myenv\ - Best for: Single-use projects or projects with very specific dependencies.
When you use a global environment, your project folder stays clean.
- Global Store:
C:\Users\Hamza\.envtool\envs\shared-env\ - Your Project:
D:\Work\Beta\ - The Connection: A hidden
.envlinkfile insideD:\Work\Beta\tells the tool: "Use the venv at C:\Users\Hamza.envtool\envs\shared-env". - Best for: Saving disk space on your laptop or working across different drives (C:, D:, USB).
Tip
Switching is Easy: If you already have a local myenv but want to switch to global, just run env g use <name>. The tool will prioritize the link!
Env Tool keeps itself and your project on the cutting edge. It automatically pings GitHub for updates and alerts you if a newer version is available.
Env Tool is designed for developers on the move. Most features (venv creation, project init, clean, run) work perfectly offline. Network tasks like version checks are gracefully handled.
Powered by Rich, Env Tool provides beautiful terminal spinners and status indicators, so you always know exactly what's happening backstage.
No more accidental installations. Env Tool detects your requirements.txt and asks for your confirmation before installing anything.
Just navigate to any directory and type:
envIt handles the venv creation and pip upgrade. If a requirements.txt is found, it will ask if you want to install them.
Need to activate your shell?
env aForget source myenv/bin/activate. Just run your code directly:
env run python main.pyNeed to clear your local environment files?
env cleanWe love builders!
- Fork the repository.
- Create your feature branch.
- Commit your magic.
- Push and open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.