pip-fund
Find funding links for installed Python packages. Run pip-fund to inspect a
Python environment, name packages to include their dependencies, or explicitly
select a project. Reports group shared funding destinations and show where each
link came from and which lookups were incomplete.
Installation
python -m pip install pip-fund
GitHub funding-file discovery needs the optional YAML parser:
python -m pip install "pip-fund[github]"
Choose what to inspect
Scan the active environment from any directory:
pip-fund
The command uses an activated virtual environment or Conda environment when
available, otherwise the Python interpreter running pip-fund. It does not read a
project merely because the current directory contains pyproject.toml.
Select an interpreter explicitly:
pip-fund --python /path/to/environment/bin/python
On Windows, a virtual environment's interpreter is usually
C:\path\to\environment\Scripts\python.exe. The target environment does not
need pip-fund installed. Every report identifies the interpreter inspected.
Inspect named packages and their installed dependencies:
pip-fund requests "httpx[http2]"
pip-fund requests --python /path/to/environment/bin/python
Inspect the dependencies declared by a project:
pip-fund --project /path/to/project
pip-fund --project /path/to/project --extra server --group test
pip-fund --project /path/to/project --python /path/to/environment/bin/python
Project mode reads the project's pyproject.toml and uses its .venv. If that
environment is missing, create it or supply --python; pip-fund will not silently
substitute another environment. --extra and --group require --project.
Using pipx or uvx
Tools installed with pipx or uv have their own environments. Activate the environment you want to inspect or provide a target explicitly:
pipx install pip-fund
pip-fund --python /path/to/environment/bin/python
uvx --from pip-fund pip-fund --python /path/to/environment/bin/python
The --python after pip-fund selects the environment to inspect. A --python
option passed to uvx itself selects the interpreter that runs the tool.
Without activation or an explicit target, recognized pipx and uv tool
environments produce an error with instructions for selecting a target.
Find additional funding links
Installed metadata is read locally. Network lookups are opt-in:
pip-fund --remote --github
--remote queries PyPI when funding metadata is absent or a repository URL is
needed for GitHub discovery. --github adds links from a discovered repository's
.github/FUNDING.yml, even when installed metadata already supplies funding
links. Public repositories work without authentication; set GITHUB_TOKEN to
increase the API rate limit or access repositories visible to that token.
Reports
pip-fund --format json
pip-fund --format markdown
pip-fund --strict
pip-fund requests --remote --github --open
--strict exits with status 1 when missing dependencies, incompatible versions,
or lookup errors make the report incomplete. Invalid arguments or an unavailable
target interpreter exit with status 2. A package without a funding declaration
is not an error.
--open requires one explicit package and exactly one funding destination
across that package and its dependencies. It opens that destination in a browser.
For example, a project report might contain:
Scanned 2 dependencies from project example.
Packages advertising funding: 2; destinations: 1.
Python: /path/to/project/.venv/bin/python
https://example.com/support
Direct: Alpha
Transitive: Bravo
Labels: Funding
Sources: metadata
Environment-wide reports list packages without assigning direct or indirect
relationships. JSON uses schema version 1 and includes the target interpreter,
summary counts, destinations, package versions, discovery sources, and issues.
Dependency depth and parent relationships are included for graph scans;
direct and depth are null for environment-wide scans.
Discovery rules and limits
Funding labels are normalized using the PyPA Project-URL rules. The recognized
labels are Funding, Sponsor, Donate, and Donation. Links must use HTTP or
HTTPS. Grouping preserves URL fragments and meaningful query parameters while
removing utm_* tracking parameters.
The dependency graph describes installed packages. pip-fund does not install
packages, resolve a lockfile, or measure which dependencies an application
actually uses. Python and platform conditions are evaluated for the selected
interpreter. Project mode supports standard [project] dependencies, optional
dependencies, and Dependency Groups. For dynamic dependencies or tool-specific
project formats, supply package requirements explicitly.
Funding declarations can be incomplete. An absent link does not establish that a package is adequately funded or that its maintainers decline support.
Changes from 0.1
Named-package scans now include installed dependencies. Use --format json or
--format markdown in place of --json or --markdown; the JSON structure and
Python API have changed. The default remains an environment scan.
Development
Documentation tooling requires Python 3.12 or newer; the package supports Python 3.11 and newer.
uv sync --all-groups --all-extras
make ci
License
MIT
Metadata
Release files for pip-fund 0.2.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 | |
|---|---|---|---|
| pip_fund-0.2.1.tar.gz | 18.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pip_fund-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.2 kB
Release files / pip_fund-0.2.1.tar.gz
| Download URL | pip_fund-0.2.1.tar.gz |
|---|---|
| Size | 18.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
71043c4f78bfa78082c033f3357482575cf284d8351fa8297d1ae59e64aa62f1
|
|
BLAKE2b-256 checksum How to use checksums |
a80c212f914ec9210d3d4bb0a25e410d7ddd2ac23295e2c73675187ccd7453d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logRelease files / pip_fund-0.2.1-py3-none-any.whl
| Download URL | pip_fund-0.2.1-py3-none-any.whl |
|---|---|
| Size | 21.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
281c17ee03de5a215b37472fa62303a3841f458977a3ef2c83b9dab65e4eec16
|
|
BLAKE2b-256 checksum How to use checksums |
466d585ae7193b2dae4420b007b85a13fee43c0a84c2c23c68f7df42554405d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency log