SKILL.md
Venv Manager
Provides standardized conventions and commands for managing Python virtual environments. Other skills that need Python packages should reference this skill to ensure consistent organization.
Convention
All virtual environments are stored in a standard location with consistent naming:
~/.venvs/<package-name>/
Examples:
~/.venvs/gitingest/~/.venvs/myproject/
When to Use
- Another skill needs a Python package installed
- User wants to create a venv following standard conventions
- User asks about venv organization or where venvs are stored
Workflow
1. Check if Venv Already Exists
Before creating, check if the venv already exists:
ls ~/.venvs/<name>/bin/python 2>/dev/null && echo "EXISTS" || echo "NOT_FOUND"
2. Create a New Venv
python3 -m venv ~/.venvs/<name>
3. Install Packages
Install one or more packages into the venv:
~/.venvs/<name>/bin/pip install <package1> <package2> ...
4. Run Commands in the Venv
To run a command using the venv's Python or installed packages:
~/.venvs/<name>/bin/<command> <args>
Or activate first (less preferred):
source ~/.venvs/<name>/bin/activate
<command> <args>
deactivate
Complete Example
Creating a venv for gitingest:
# Check if exists
ls ~/.venvs/gitingest/bin/python 2>/dev/null && echo "EXISTS" || echo "NOT_FOUND"
# Create venv (if NOT_FOUND)
python3 -m venv ~/.venvs/gitingest
# Install package
~/.venvs/gitingest/bin/pip install gitingest
# Verify installation
~/.venvs/gitingest/bin/gitingest --version
# Use it
~/.venvs/gitingest/bin/gitingest https://github.com/owner/repo -o output.txt
For Other Skills
If you're a skill that needs Python packages:
- Ask the user how they want to install the package
- If user chooses "create a venv for me", follow the conventions in this skill
- Use
~/.venvs/<package-name>/as the location - Run commands via
~/.venvs/<package-name>/bin/<command>
Listing Existing Venvs
To see what venvs exist:
ls -1 ~/.venvs/
Removing a Venv
To remove a venv (requires user confirmation):
rm -rf ~/.venvs/<name>
Always confirm with user before deleting.