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, bash, or sh)
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.1.tar.gz (13.5 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.1-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lazyvenv-0.1.1.tar.gz
  • Upload date:
  • Size: 13.5 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.1.tar.gz
Algorithm Hash digest
SHA256 a5708ef7a824ad363a5b7b8fbac69d044b7f0eff09b70936121ea0b6d6c1087e
MD5 b5e639f6a567625d6ed211268b7ef15a
BLAKE2b-256 a7c77652980730d66272f78f855eb0f332e3b07949b0206f4abdee13df31135a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lazyvenv-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 17.4 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 57b5c549e029e9b50dd6406133912cffecea6a71c561b7fc4db1b5c827db0ccc
MD5 2970a35258d9b93ff6be7bd05013e2a2
BLAKE2b-256 e4235a6beb6265efe73e88cd2545156b52cbc09c3dd940f2c9287686322ad0fa

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.0

2 files

This release

0.1.1 This release

2 files

0.1.0

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