venvfinder
Find every Python virtual environment on your disk and see what's inside it — without activating anything.
Scientists and developers accumulate environments: a .venv per project, a few
conda envs, the odd virtualenv from years ago. venvfinder walks a directory
tree, spots the markers each tool leaves behind (pyvenv.cfg, conda-meta/),
and reports for each environment:
- which tool created it (uv, plain
venv/virtualenv, or conda) - the Python version it runs
- the base interpreter it was built from
- the packages installed in it
It ships with a Tkinter GUI (the default) and a headless CLI that can emit JSON. Pure standard library — no dependencies.
Install
Try it without installing anything:
uvx venvfinder
Or install it as a tool:
uv tool install venvfinder # or: pipx install venvfinder
Usage
venvfinder # open the GUI
venvfinder --cli ~/projects # scan a tree, print a summary
venvfinder --cli ~/projects --uv-only # only uv-created environments
venvfinder --cli ~/projects --packages # include installed packages
venvfinder --cli ~/projects --json out.json # full results as JSON
Useful options:
| Option | Meaning |
|---|---|
--max-depth N |
How deep to descend (default 8) |
--font-size PT |
GUI text size; try 18–22 on a large display |
--scale F |
GUI Tk scaling factor, e.g. 2.0 for HiDPI |
--reset |
Forget the saved window geometry and text size |
python -m venvfinder works as well.
Standalone app
For colleagues who don't have Python installed, build.sh produces a
single-file executable (and a .app bundle on macOS) with PyInstaller:
./build.sh # output lands in dist/
Builds are per-platform; run it on the OS you want to distribute for. The macOS app is unsigned, so recipients will need to right-click → Open the first time.
Development
git clone https://github.com/csaltikov/venvfinder
cd venvfinder
uv sync # creates .venv with the dev tools
uv run venvfinder # run from source
uv run ruff check . # lint
uv build # build sdist + wheel into dist/
License
BSD 3-Clause. See LICENSE.
Metadata
Release files for venvfinder 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| venvfinder-0.1.1.tar.gz | 16.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| venvfinder-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.5 kB
Release files / venvfinder-0.1.1.tar.gz
| Download URL | venvfinder-0.1.1.tar.gz |
|---|---|
| Size | 16.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fc3c47c5599b00f5357eb572d02399717fb47c135a424923b2a1cef5891ebb8d
|
|
BLAKE2b-256 checksum How to use checksums |
4cfa8023dba28dd7524757b57628063e373519ddcaffba072abb071275809475
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / venvfinder-0.1.1-py3-none-any.whl
| Download URL | venvfinder-0.1.1-py3-none-any.whl |
|---|---|
| Size | 16.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b5f275118491e25b47f863fceb4734113461838aea24f1822bb81d3f18b747ed
|
|
BLAKE2b-256 checksum How to use checksums |
540a051dbe1e8bd441df7f7fed3097ad8fc2eef7be2048745b21c668950bc428
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|