Skip to main content

lazyvenv

PyPI Python CI License: MIT

A TUI for managing Python virtual environments.

screenshot

lazyvenv shows the virtual environments in the current directory, lets you inspect their installed packages (including origin, size, and metadata), and create, delete, activate, and deactivate environments — all from one keyboard- driven interface.

Requirements

  • Python 3.13 or newer
  • uv — used to list interpreters and create venvs
  • zsh, bash, or sh (for the activation shell hook)

Install

uv tool install lazyvenv

This installs the lazyvenv command globally, outside any project venv — which is required for activation to work reliably.

Shell integration (for activation)

Pressing a inside the app marks a venv to be (de)activated, and the change is applied when you quit. For that to work, add the wrapper function to your shell config:

# ~/.zshrc or ~/.bashrc
eval "$(lazyvenv init zsh)"   # or: lazyvenv init bash

Restart your shell (or source the file). Without this hook the app still works, but a will show a warning instead of activating.

Usage

Run lazyvenv inside any directory containing virtual environments (it scans the directory itself and its immediate children for pyvenv.cfg files):

cd your-project
lazyvenv

Keys

Key Action
j / k Move the cursor up/down (arrow keys work too)
h / l Switch between the venv list and the packages table
a Toggle (de)activation of the highlighted venv (applied on quit)
c Create a new venv (pick any uv-managed interpreter)
d Delete the highlighted venv (with confirmation)
r Refresh the venv list
/ Filter packages by name (Esc clears)
Open the full details for the highlighted package
q Quit (or go back, inside a screen/dialog)

CLI

lazyvenv               Launch the TUI
lazyvenv init [shell]  Print the shell wrapper (zsh or bash)
lazyvenv --version     Print the version
lazyvenv --help        Show help

Development

git clone https://github.com/Abdulaziz-Hassan/lazyvenv
cd lazyvenv
uv sync
uv run pytest        # tests
uv run ruff check    # lint
uv run ruff format   # format
uv run mypy          # types (strict)
uv run lazyvenv      # run the app

For local development of the global command (e.g. to test the shell hook):

uv tool install --editable .

Changelog

See CHANGELOG.md.

License

MIT

Download files

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

Source Distribution

lazyvenv-0.1.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

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

lazyvenv-0.1.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for lazyvenv-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b9f0eb254fa663d327d1cbf38ea609b135627408d980658a9d29d1db4ec64336
MD5 49b4680cc17048d657088291a666935a
BLAKE2b-256 d56a9f2876f86528ee85e29f3263770b67771f771589e688ebfa1501a4518df6

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for lazyvenv-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b7e1fba9bb74199e1ef21914ae9dccb075fa95ea68c8d2a68cc87e244f1572e0
MD5 1829a47423d2b0878e25e3c4a8e4b3cf
BLAKE2b-256 fd632be7e54b3905a23934a868209c3027e8e958a447e5c8969f65586f51aa8a

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.0

2 files

0.1.1

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page