Metadata-Version: 2.4
Name: venv-cmds
Version: 2026.9.26.1
Summary: List available console commands in the active Python environment, check for package updates
Author-email: Paul McGowan <paul.mcgowan@ophix.io>
License-Expression: MIT
Project-URL: Homepage, https://ophix.io
Project-URL: Documentation, https://github.com/ophixproject/venv-cmds#readme
Project-URL: Source, https://github.com/ophixproject/venv-cmds
Keywords: venv,python,cli,console scripts
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Utilities
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: importlib_metadata>=3.6; python_version < "3.8"
Requires-Dist: argcomplete>=3.0
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Dynamic: license-file

# venv-cmds

Small discovery and maintenance utilities for Python virtual environments.

## Why this exists

When you activate a virtual environment it is not always obvious which
command-line tools are available or whether they are up to date.
`venv-cmds` provides two commands: `list` to discover what is installed,
and `check_updates` to check for newer versions on the configured pip index.

## Commands

Running `venv-cmds` with no subcommand is equivalent to `venv-cmds list`.

### `list`

Show all `console_scripts` entry points in the active environment.

```bash
venv-cmds list
venv-cmds list --details    # include package name alongside each command
```

### `check_updates`

Check all installed packages against the configured pip index and report
which have updates available. Respects all pip index sources configured for
the environment — public PyPI, private indexes, and local mirrors all work
without any extra configuration.

If `pip` isn't importable in the current venv (e.g. one created with
`uv venv` without `--seed`), falls back automatically to `uv pip list`
targeting this same interpreter, provided `uv` is installed on `PATH`.

```bash
venv-cmds check_updates
venv-cmds check_updates --updates-only            # only show packages with updates
venv-cmds check_updates --no-progress             # suppress status message on stderr (cron-safe)
venv-cmds check_updates --include-install-date    # add an 'Installed on' column
venv-cmds check_updates --timeout 60              # per-package query timeout in seconds (default: 30)
venv-cmds check_updates --output-file updates.txt # write pinned requirements file for updates
venv-cmds check_updates --output-file -           # write pinned requirements to stdout
```

When `--output-file` is used the output file contains `package==version` lines
for every package with an available update. Passing this file to
`pip install -r updates.txt` will upgrade exactly the packages that were
flagged, with no other changes.

## Installation

```bash
pip install venv-cmds
```

Requires Python 3.7 or later. Works with both `venv` and `virtualenv`.
