Skip to main content

Manage Python tool environments with declarative configuration and content-addressed storage.

Project description

uv-toolbox

CI PyPI Python Version License: MIT codecov

uv-toolbox is a CLI tool for managing Python tool environments. It will help you create multiple virtual environments and manage their dependencies through a declarative configuration file.

Here is an example in YAML format:

environments:
  - name: env1
    requirements: |
      ruff==0.13.0
      black
    executables: [ruff, black]
  - name: env2
    requirements: |
      isort
      flake8
    executables: [isort, flake8]

Configuration Options

Virtual Environment Location:

By default, virtual environments are stored in ~/.cache/uv-toolbox/ using content-addressed storage. This means:

  • Automatic deduplication: Identical requirements across projects share the same venv
  • No naming conflicts: Venvs are organized by content hash, not names
  • Works from subdirectories: Run commands from anywhere in your project
# Default: centralized, content-addressed storage
# (no venv_path needed - defaults to ~/.cache/uv-toolbox)
environments:
  - name: formatting
    requirements: ruff==0.13.0
  - name: testing
    requirements: pytest==8.0.0

# Optional: local storage (per-project)
venv_path: .uv-toolbox

How it works:

  • Each environment's venv location is determined by hashing its requirements
  • Projects with identical requirements automatically share the same venv
  • Config files are discovered by walking up the directory tree

Executables:

The executables field controls which tools are exposed via shims:

environments:
  - name: formatting
    requirements: ruff==0.13.0
    executables: [ruff] # Only ruff will be available in PATH via shims
  • Optional: Only needed if you want to use uv-toolbox shim
  • Explicit control: List exactly which executables to expose
  • Prevents PATH pollution: Python/pip from the venv won't be added to PATH

Usage

Install environments:

uv-toolbox install

Run a command inside an environment (uses the configured default if set, otherwise pass --env):

uv-toolbox exec --env env1 -- ruff --version

Add shim scripts to your PATH for direct tool access:

eval "$(uv-toolbox shim)"

This creates wrapper scripts for executables listed in the executables field of each environment. Only explicitly listed executables are exposed, preventing Python/pip from polluting your PATH.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uv_toolbox-0.1.0.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uv_toolbox-0.1.0-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file uv_toolbox-0.1.0.tar.gz.

File metadata

  • Download URL: uv_toolbox-0.1.0.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uv_toolbox-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b65c7503826fe1266b4fb5da5c57cdfb973a2cbeb51070d6a0feeed88bc2ec5f
MD5 3458d8e34af4665a0fe76f1291fdeb31
BLAKE2b-256 c585fb3c7d7f820ba2349ed2373523560f0d717316ba87e3d077f7776120d66d

See more details on using hashes here.

File details

Details for the file uv_toolbox-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: uv_toolbox-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uv_toolbox-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c1f1d552a00546f45898cc8058ab21ac2daa4d55d779d6d74b31ac114359b061
MD5 66e7c0f24e62bc1ec2c79327238b3667
BLAKE2b-256 a6b892c9a791584470982cfb0daa1550482c23b25f6c25cfac7a01265d279d69

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page