Fast dependency suggestions and shell completion for uv add
Project description
uv-add-complete
Smart dependency completion for uv add.
uv-add-complete helps you discover and add Python packages while you type. It
adds shell completions for uv add, shows package suggestions from an offline
lookup catalog, and includes useful metadata such as category and description.
Why
uv is fast, but remembering exact package names is still friction:
uv add fast<Tab> py<Tab>
uv-add-complete turns that moment into a guided package search. It is designed
for modern Python projects: web apps, CLIs, data tooling, AI agents, LangChain
integrations, ML libraries, vector databases, testing tools, and more.
Features
- Completion support for
uv addanduvpy add. - Offline package lookup catalog bundled with the package.
- 1,500+ curated package records generated from PyPI metadata.
- Includes modern AI/ML packages such as
openai,anthropic,pydantic-ai,langchain,langgraph,langsmith,manim, and manylangchain-*integrations. - Category and description metadata for richer terminal suggestions.
- Auto-detects PowerShell, Bash, Zsh, and Fish during setup.
- Optional PowerShell Tab UI with a table-style package picker.
Install
Global tool setup
Use this when you want completion available across projects:
uv tool install "uv-add-complete>=0.1.7"
uvpy init --yes
Restart your shell, then try:
uv add fast<Tab> py<Tab>
Project-local setup
Use this when you only want it inside one project:
uv add "uv-add-complete>=0.1.7"
uv run uvpy init --yes
When installed locally, run commands through uv run:
uv run uvpy --version
uv run uvpy add py --list
Shell setup
uvpy init auto-detects your shell:
uvpy init --yes
If detection is wrong, pass the shell explicitly:
uvpy init --shell powershell --yes
uvpy init --shell pwsh --yes
uvpy init --shell zsh --yes
uvpy init --shell bash --yes
uvpy init --shell fish --yes
PowerShell users can opt into the experimental table-style Tab picker:
uvpy init --yes --tab-ui
Usage
Show matching packages with metadata:
uvpy add py --list
Return package names for shell integrations:
uvpy _complete add fast --format names
Return structured JSON:
uvpy _complete add fast --format json
List the bundled catalog:
uv-aide packages
Catalog
The bundled catalog is stored at:
src/uv_aide/data/packages.json
Each record uses this schema:
{
"name": "fastapi",
"summary": "FastAPI framework, high performance, easy to learn, fast to code, ready for production",
"category": "web",
"project_url": "https://pypi.org/project/fastapi/"
}
The catalog is built from PyPI project metadata and curated categories. It keeps completion fast because shell completion can use local data instead of making a network request on every Tab press.
Development
uv sync
uv run pytest
uv run ruff check .
Useful local smoke checks:
uv run uvpy add lang --list
uv run uvpy init --shell powershell --dry-run
uv run uvpy init --shell zsh --dry-run
uv run uvpy _complete add langchain-open --format names
Release
This project publishes to PyPI through GitHub Actions and PyPI Trusted Publishing. PyPI versions are immutable, so every release must use a fresh version number.
For 0.1.7:
uv version 0.1.7
git add .
git commit -m "feat(catalog): expand package lookup database"
git push
gh release create v0.1.7 --title "v0.1.7" --notes "Fix README screenshot and smoke workflow"
Links
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file uv_add_complete-0.1.7.tar.gz.
File metadata
- Download URL: uv_add_complete-0.1.7.tar.gz
- Upload date:
- Size: 66.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5096db8681a431513558c330494b2cad7410cb88ed32f434feb8b1c46ae539f9
|
|
| MD5 |
9b3419fcac4e6719aed9159be68f60c7
|
|
| BLAKE2b-256 |
f1bb6374eb3dfa3052c4c8857ab361a53ae635fba23d6e41f22ec2547611f1d6
|
File details
Details for the file uv_add_complete-0.1.7-py3-none-any.whl.
File metadata
- Download URL: uv_add_complete-0.1.7-py3-none-any.whl
- Upload date:
- Size: 65.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59554f196f6d19f44d9cefa5d9dc1422759577361abac9fd7f7972f03c6267c4
|
|
| MD5 |
bbbde9f6d7153ad41dd71de0b4fd79dc
|
|
| BLAKE2b-256 |
bc9a25c664a79a1e905b02e7dbf147956b6a83d8ebda1ca606c80318bfe4acfa
|