# Feature catalog — pypa/pip

> Canonical page: https://codevetter.com/unpack/pip/feature-catalog

# Feature catalog — pypa/pip

Scanned commit a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6 (2026-09-23). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The command registry exposes installation, artifact preparation, environment inspection, configuration, and diagnostic tools. Installation accepts several requirement sources and destination controls, while lock generation and lock-file consumption are explicitly experimental. Commands share parsing and networking infrastructure but have distinct output and mutation boundaries. The catalog below covers all registered commands, grouping related commands into eight substantive entries.
- install accepts index requirements, VCS URLs, directories, archives, requirements files, constraints, editables, dependency groups, and script metadata; destination controls include --target, --user, --root, and --prefix. — [src/pip/_internal/commands/install.py#L143-L225](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/install.py#L143-L225) [src/pip/_internal/cli/req_command.py#L331-L359](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/cli/req_command.py#L331-L359) [src/pip/_internal/cli/req_command.py#L398-L412](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/cli/req_command.py#L398-L412)
- download resolves and saves distribution artifacts; wheel resolves requirements, saves existing wheels, builds source requirements, and copies successful builds into the requested wheel directory. — [src/pip/_internal/commands/download.py#L112-L150](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/download.py#L112-L150) [src/pip/_internal/commands/wheel.py#L142-L173](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/wheel.py#L142-L173)
- lock generates experimental pylock TOML to a file or stdout, with validity guaranteed only for the current Python version and platform; requirement ingestion also accepts experimental pylock sources. — [src/pip/_internal/commands/lock.py#L26-L39](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/lock.py#L26-L39) [src/pip/_internal/commands/lock.py#L152-L171](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/lock.py#L152-L171) [src/pip/_internal/cli/req_command.py#L361-L382](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/cli/req_command.py#L361-L382)
- uninstall accepts package names or requirements files and supports --yes; its documented exceptions include metadata-less distutils installations and script wrappers created by setup.py develop. — [src/pip/_internal/commands/uninstall.py#L25-L61](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/uninstall.py#L25-L61) [src/pip/_internal/commands/uninstall.py#L64-L105](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/uninstall.py#L64-L105)
- freeze emits requirements-format inventory, list lists installed packages, show displays package information, and check verifies dependency compatibility; inspect emits versioned JSON containing installed metadata, origins, installer information, and environment markers. — [src/pip/_internal/commands/__init__.py#L43-L66](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/__init__.py#L43-L66) [src/pip/_internal/commands/inspect.py#L48-L92](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/inspect.py#L48-L92)
- config dispatches list, edit, get, set, unset, and debug actions; cache dispatches dir, info, list, remove, and purge, returning an error when caching is disabled. — [src/pip/_internal/commands/configuration.py#L99-L145](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/configuration.py#L99-L145) [src/pip/_internal/commands/cache.py#L52-L85](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/cache.py#L52-L85)
- index versions discovers available versions through PackageFinder and conditionally excludes prereleases; search uses an XML-RPC server's search method and converts XML-RPC faults into CommandError. — [src/pip/_internal/commands/index.py#L65-L87](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/index.py#L65-L87) [src/pip/_internal/commands/index.py#L123-L154](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/index.py#L123-L154) [src/pip/_internal/commands/search.py#L70-L85](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/search.py#L70-L85)
- hash computes archive hashes, debug exposes diagnostic information, and help describes commands; completion emits shell integration for bash, zsh, fish, and PowerShell. Global --python can rerun the selected command under another interpreter. — [src/pip/_internal/commands/__init__.py#L93-L112](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/__init__.py#L93-L112) [src/pip/_internal/commands/completion.py#L86-L118](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/completion.py#L86-L118) [src/pip/_internal/commands/completion.py#L122-L131](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/commands/completion.py#L122-L131) [src/pip/_internal/cli/main_parser.py#L83-L107](https://github.com/pypa/pip/blob/a7002c9771a6c3f0317a4e6b9fbdcd22e643f7b6/src/pip/_internal/cli/main_parser.py#L83-L107)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
