🍨 scoop
⚠️ Work in Progress — Under active development. API may change.
One scoop, endless envs — pyenv-style Python environment manager powered by uv
What is scoop?
scoop is a centralized Python virtual environment manager using uv as its backend.
It combines pyenv-virtualenv's workflow with uv's speed.
Problem scoop Solution
─────────────────────────────────────────────────────
.venv scattered across projects ~/.scoop/virtualenvs/ centralized
Manual source .venv/bin/activate scoop activate or auto-activate
pyenv-virtualenv is slow uv-based, 100x+ faster
Quick Start
# Create a virtual environment
# Activate
()
# Install packages
# Manage
Installation
Shell Setup
# Bash
# Zsh
This enables:
- Auto-activation when entering directories with
.scoop-version - Tab completion for commands, environments, and options
Commands
Virtual Environment
| Command | Description |
|---|---|
scoop create <name> <version> |
Create virtual environment |
scoop use <name> |
Set local environment (.scoop-version) + instant activation |
scoop use <name> --link |
Same as above, also creates .venv symlink |
scoop use <name> --global |
Set global default environment |
scoop list |
List all virtual environments |
scoop remove <name> |
Delete virtual environment |
Python Version Management
| Command | Description |
|---|---|
scoop install |
Install latest Python (same as --latest) |
scoop install --latest |
Install latest stable Python |
scoop install --stable |
Install oldest fully-supported Python (more stable) |
scoop install 3.12 |
Install latest patch of 3.12.x |
scoop install 3.12.3 |
Install exact version 3.12.3 |
scoop uninstall <version> |
Remove installed Python version |
scoop list --pythons |
List installed Python versions |
Note: Python versions are managed by uv and downloaded automatically when needed.
Shell Integration
| Command | Description |
|---|---|
scoop init <shell> |
Output shell initialization script |
Development
Prerequisites
- Rust 1.85+ (Edition 2024)
- prek — Pre-commit hooks (Rust-native)
Setup
# Clone
# Install prek (pre-commit alternative)
# or: pip install prek
# Install git hooks
# Build
# Run tests
Pre-commit Hooks
Hooks run automatically on git commit:
| Hook | Description |
|---|---|
cargo fmt |
Code formatting |
cargo clippy |
Linting |
cargo check |
Type checking |
trailing-whitespace |
Whitespace fixes |
check-toml |
TOML validation |
# Run all hooks manually
# Run specific hook
Common Commands
# Build
# Test
# Lint
# Format
# Run
License
Licensed under either of:
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this work shall be dual licensed as above, without any additional terms or conditions.