Skip to main content

pixi-policy

PyPI Docs

Write down what your pixi environments are allowed to contain, and check it everywhere pixi runs. One file, pixi-policy.toml, committed beside pixi.toml and pixi.lock; one command, pixi policy, that reports every package, source, license or manifest setting the policy does not allow, with the reason and a fix hint, and exits non-zero so CI can stop the merge.

pixi policy init     # write a policy the workspace passes today
pixi policy          # check it (the same as `pixi policy check`)
pixi policy explain  # every rule; `pixi policy explain <RULE>` for one, with its keys and defaults

It reads three files and nothing else: no server, no database, no network. Every check runs offline.

What it checks

Family Checks that
sources conda packages come only from allowed channels, PyPI packages only from allowed indexes, and nothing from git, a direct URL or a local path unless allowed
bans no banned package, version range or build is in any environment
licenses every package can be used under the licenses the policy allows (SPDX allow, review and deny lists)
manifest pixi.toml gives no * specs, pins Python to a minor version and lists the required platforms
lock pixi.lock exists, locks every environment for every platform, and still satisfies the manifest
waivers every exception has a reason and an end date, and still matches something
# pixi-policy.toml
[sources]
allowed-channels = ["conda-forge"]
allowed-indexes = ["https://pypi.org/simple"]

[bans]
deny = [
  { name = "pycrypto", reason = "unmaintained", use-instead = "pycryptodome" },
  { name = "openssl", version = "<3", reason = "EOL" },
]

[licenses]
deny = ["GPL-3.0-*", "AGPL-*"]

[manifest]
required-platforms = ["linux-64", "osx-arm64", "win-64"]

[lock]

[[waivers]]
rule = "licenses.deny"
package = "readline"
reason = "dev only; LEGAL-1234"
expires = 2027-03-31

That policy, checked against one of the repository's example workspaces (an excerpt):

error[licenses.deny] ld_impl_linux-64 2.46.1: license GPL-3.0-only cannot be satisfied without a denied license
  --> pixi.lock: environment "default", linux-64
  = help: replace the package, or take the license off [licenses] deny

error[manifest.wildcard-spec] gh: is given as "*" in [dependencies]
  --> pixi.toml:11
  = help: give it a version range, for example the one `pixi add` writes

waived[licenses.deny] readline 8.3: license GPL-3.0-only cannot be satisfied without a denied license (pixi.lock: environment "default", linux-64); waiver: dev only; LEGAL-1234, expires 2027-03-31

4 errors, 0 warnings, 2 waived in 45 packages across 2 environment-platform pairs

Install

uv tool install pixi-policy     # or: pipx install pixi-policy, pip install pixi-policy

The wheel carries only the pixi-policy binary, for Linux (x86-64 and aarch64, glibc and musl), macOS and Windows. pixi runs any pixi-<name> executable on PATH as pixi <name>. Release archives with build provenance are on GitHub Releases.

In CI

The exit code is the verdict: 0 nothing failed, 1 a finding is an error, 2 an input could not be read. --format json writes a report with a published schema, and --format sarif one for GitHub code scanning:

- run: pixi run policy --format sarif --output policy.sarif
- uses: github/codeql-action/upload-sarif@v3
  if: always()
  with:
    sarif_file: policy.sarif

Documentation

https://aesir-oss.github.io/pixi-ext-contrib/pixi-policy/: getting started, development and CI, every rule, every key, with its values and default, waivers and output formats.

Part of pixi-ext-contrib, with pixi-sbom. Apache-2.0. A community project, not affiliated with prefix.dev.

Metadata

Release files for pixi-policy 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for pixi-policy 0.1.0
File
pixi_policy-0.1.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
pixi_policy-0.1.0-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
pixi_policy-0.1.0-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
pixi_policy-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
pixi_policy-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
pixi_policy-0.1.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
pixi_policy-0.1.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 16.4 MB

Release files / pixi_policy-0.1.0-py3-none-win_amd64.whl

Download URL pixi_policy-0.1.0-py3-none-win_amd64.whl
Size 2.3 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
324f1eb171d312d846fdbc112bca24e7c7fb0bf5f7f47fb5a24cbb39df3a2983
BLAKE2b-256 checksum
How to use checksums
76b589d05f2490b9ac8cea95f3fe1142fa41e53e0055ef545fd47f9a4b9a5eba
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 12, 2026.

Transparency log

Release files / pixi_policy-0.1.0-py3-none-musllinux_1_2_x86_64.whl

Download URL pixi_policy-0.1.0-py3-none-musllinux_1_2_x86_64.whl
Size 2.5 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
761b9fff4e55853d422f72fc0209a770cb3bfd74db6bf43ce428d534c9b46968
BLAKE2b-256 checksum
How to use checksums
3ebd8c9c18423555ef1852d0c443becf80d9024a13a7d538eaa4d5fab49b54e9
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 12, 2026.

Transparency log

Release files / pixi_policy-0.1.0-py3-none-musllinux_1_2_aarch64.whl

Download URL pixi_policy-0.1.0-py3-none-musllinux_1_2_aarch64.whl
Size 2.3 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
fabcbaaeec30ca09e8595ace4fef9444d65ec7cf31c239fee7397ed8d7c83228
BLAKE2b-256 checksum
How to use checksums
a6644c342ada3effeb155b9122a0e0c1f1bc654c90873ae6b127cdf17cebfd49
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 12, 2026.

Transparency log

Release files / pixi_policy-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pixi_policy-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.5 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
0f61f4325f160c010a086cee9a59e8b361baf379b655a83e726b7ecf49e5f4eb
BLAKE2b-256 checksum
How to use checksums
b6bc7a04584fd89b3cc571159daab068af1dd8801bc8dc78f4dbc07117426977
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 12, 2026.

Transparency log

Release files / pixi_policy-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pixi_policy-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.3 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
85162c9c778c05c01794e834a6c6219e4831ad661680658f36d9053a0f8b9b00
BLAKE2b-256 checksum
How to use checksums
0c42fdb04c43bc0f9557f72ba51236db2b21b4cf9e5e5596fd45cc33784baca6
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 12, 2026.

Transparency log

Release files / pixi_policy-0.1.0-py3-none-macosx_11_0_arm64.whl

Download URL pixi_policy-0.1.0-py3-none-macosx_11_0_arm64.whl
Size 2.2 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9c382324ca404aae55d2a6444db84841a21262bf947ed481cbbe91f6976cbd34
BLAKE2b-256 checksum
How to use checksums
f7e974337520f40bd6199cde4acf7638fc6ad1533c4ac6d957efd97f6c7b6dde
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 12, 2026.

Transparency log

Release files / pixi_policy-0.1.0-py3-none-macosx_10_12_x86_64.whl

Download URL pixi_policy-0.1.0-py3-none-macosx_10_12_x86_64.whl
Size 2.3 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
18395d078a5c5f4dfe7fd67c20c22ce74a70878cc4c9f184b42e4f66faea123b
BLAKE2b-256 checksum
How to use checksums
7e4cc8d1fbe55d8ee76eb48a8d57b98dda38e5bdf5a5a9a5d7c8aefcca737d35
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 12, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.1

7 release files

This release

0.1.0 This release

7 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page