Investigate Python package metadata, dependencies, and known vulnerabilities. Built for developers and AI agents.
Project description
Investigate Python package metadata, dependencies, files, versions, and vulnerability data from published artifacts on PyPI and private registries — without installing packages.
Provides structured, token-efficient output for AI agents alongside rich terminal output for human users.
[!NOTE] Transparency note: This project is developed with heavy use of AI coding agents.
Although most code is AI-generated, architecture and design are human-guided and reviewed, and all changes are tested.
Features
- 🔍 Inspect without installing — query metadata, dependencies, and files from published artifacts — no install required.
- 🌳 Dependency analysis — resolve dependency trees, detect conflicts, and compare versions.
- 📄 Read package files — inspect
pyproject.toml,LICENSE, and other files directly from a published distribution. - 🛡️ Vulnerability scanning — check packages against the OSV database for known security vulnerabilities.
- 🤖 Built for AI agents — built-in agent skill for tool discovery and
--format agentfor structured, token-efficient output. - 🔒 Private registry support — works with any PEP 503-compatible package index via
--index-url. - ⚡ Persistent caching — avoid redundant network requests with an SQLite-backed local cache.
peeq vs pip / uv
| Task | pip / uv | peeq |
|---|---|---|
| View package metadata | Install, then pip show / uv pip show |
peeq info <pkg> |
| View dependencies | Download artifact, extract, parse metadata | peeq deps <pkg> |
| Compare deps across versions | Custom scripts | peeq deps <pkg> --version X --diff Y |
| Read a file from a package | Download, extract, navigate to file | peeq cat <pkg> pyproject.toml |
| Check for vulnerabilities | Separate vulnerability scanner | peeq vulns <pkg> |
| Resolve dependency tree | Trial install in isolated environment | peeq resolve "pkg>=1.0" |
| Check for conflicts | Custom scripts or trial-and-error installs | peeq conflicts "pkgA" "pkgB" |
| Trace why a package is needed | Manual dependency graph tracing | peeq why "requests>=2.31" -d urllib3 |
Installation
Requires Python 3.10+.
# Install globally with uv (recommended)
uv tool install peeq
# Install with pip
pip install peeq
Zero-install with uvx
If you have uv installed, you can also run peeq directly without installing it.
For example:
uvx peeq info requests
[!IMPORTANT] uv is the recommended installation method.
Additionally, commands likeresolve,conflicts, andwhyutilizeuvand require it to be installed. See the installation docs for details.
Commands
| Command | Description |
|---|---|
info |
Show package metadata with optional sections |
versions |
List available versions with filtering |
deps |
Show dependencies with diff and wheel tag support |
artifacts |
List distribution artifacts (wheels, sdists) for a version |
cat |
Print a file from inside a package archive |
ls |
List paths inside a package archive |
download |
Download a package archive |
vulns |
Check for known vulnerabilities (OSV) |
resolve |
Resolve full dependency tree |
conflicts |
Check if packages can coexist |
why |
Trace why a package is in the dependency tree |
cache |
Cache management (info, clear, check, dump) |
config |
Configuration management (file path) |
skill |
Show agent skill instructions |
Agent Skill
peeq includes a built-in Agent Skill — structured instructions that teach AI agents how to use peeq for package research.
Install
Download SKILL.md and place it in a peeq/ directory within your agent platform's skill directory.
See the skill documentation for integration options.
[!TIP] Agents can also load peeq's skill by running
peeq skill showdirectly.
Contributing
See CONTRIBUTING.md for development setup, coding standards, and testing guidelines.
License
Project details
Release history Release notifications | RSS feed
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 peeq-0.1.0.tar.gz.
File metadata
- Download URL: peeq-0.1.0.tar.gz
- Upload date:
- Size: 128.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e33652a8e7afe707b33a6bf616b05479e02009619f9133c1ba103c9ad109781
|
|
| MD5 |
3f93e51294d6bc2cc176ad55f60815f7
|
|
| BLAKE2b-256 |
fa219a99e8cdb5cf6824f4388cfbd95c203bfe84621591542da13db255d458c2
|
Provenance
The following attestation bundles were made for peeq-0.1.0.tar.gz:
Publisher:
release.yml on MichaelYochpaz/peeq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
peeq-0.1.0.tar.gz -
Subject digest:
0e33652a8e7afe707b33a6bf616b05479e02009619f9133c1ba103c9ad109781 - Sigstore transparency entry: 1384111084
- Sigstore integration time:
-
Permalink:
MichaelYochpaz/peeq@dbd0ec27c696823d53bf2a0f6c0d8a3fe19bc764 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/MichaelYochpaz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dbd0ec27c696823d53bf2a0f6c0d8a3fe19bc764 -
Trigger Event:
push
-
Statement type:
File details
Details for the file peeq-0.1.0-py3-none-any.whl.
File metadata
- Download URL: peeq-0.1.0-py3-none-any.whl
- Upload date:
- Size: 148.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35792afd86488c140516baa26d885df38e804c948dc6f8d5e5bec9fcc7064122
|
|
| MD5 |
64bbf28c7d3e480c57875b2bc6a069c8
|
|
| BLAKE2b-256 |
8fee676a7181724f10117b98374eafc7b6085fb48f3c964856b3481a466adf6d
|
Provenance
The following attestation bundles were made for peeq-0.1.0-py3-none-any.whl:
Publisher:
release.yml on MichaelYochpaz/peeq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
peeq-0.1.0-py3-none-any.whl -
Subject digest:
35792afd86488c140516baa26d885df38e804c948dc6f8d5e5bec9fcc7064122 - Sigstore transparency entry: 1384111162
- Sigstore integration time:
-
Permalink:
MichaelYochpaz/peeq@dbd0ec27c696823d53bf2a0f6c0d8a3fe19bc764 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/MichaelYochpaz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dbd0ec27c696823d53bf2a0f6c0d8a3fe19bc764 -
Trigger Event:
push
-
Statement type: