Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

fairmind CLI

The release gate and fairness tests from a terminal or a CI job. One dependency, httpx.

pipx install "git+https://github.com/adhit-r/fairmind.git#subdirectory=apps/cli"
# from a checkout of this repository: pipx install ./apps/cli
export FAIRMIND_API_URL=https://fairmind.example.com
export FAIRMIND_API_KEY=...        # minted at POST /api/v1/auth/api-keys, valid 365 days

Commands

fairmind systems
fairmind gate --system <id>                       # exit 0 go, 2 conditional go, 1 no go
fairmind gate --system <id> --allow-conditional   # exit 0 on conditional go
fairmind gate --system <id> --require-approval    # exit 1 unless the release decision is approved
fairmind test --system <id> --file predictions.csv \
    --outcome repaid --prediction approved --score score --attributes gender,region
fairmind test ... --gate                          # exit by the gate's verdict after the run

test uploads the CSV, runs disparate impact, demographic parity, equal opportunity, equalized odds and calibration per attribute with bootstrap intervals, and stores the result as measured evidence on the system. gate reads the release gate: five checks, each proven, attested or open, a confidence, the verdict from the impact-by-confidence matrix, and the latest release decision (approvalStatus: not requested, pending, approved or rejected). A rejected decision makes the verdict no go until a reviewer approves a new request. With --require-approval an approval with conditions counts as approved: an approved conditional go exits 0.

Exit code 3 means the command itself failed: no network, no key, wrong system id, a column that is not in the file. Add --json to any command for the raw response.

In GitHub Actions

- uses: adhit-r/fairmind/.github/actions/fairmind-gate@main   # in this repository: ./.github/actions/fairmind-gate
  with:
    system: ${{ vars.FAIRMIND_SYSTEM_ID }}
    api-url: ${{ vars.FAIRMIND_API_URL }}
    api-key: ${{ secrets.FAIRMIND_API_KEY }}
    predictions: artifacts/predictions.csv       # optional: run the test first
    outcome: repaid
    prediction: approved
    attributes: gender,region
    require-approval: "true"                      # optional: fail unless the release decision is approved

Metadata

Release files for fairmind-cli 0.3.1a0

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

Source distribution (sdist)

Source distribution for fairmind-cli 0.3.1a0
File Size Uploaded Provenance Actions
fairmind_cli-0.3.1a0.tar.gz 10.6 kB With provenance Details for fairmind_cli-0.3.1a0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for fairmind-cli 0.3.1a0
File Interpreter ABI Platform Actions
fairmind_cli-0.3.1a0-py3-none-any.whl Python 3 none any Details for fairmind_cli-0.3.1a0-py3-none-any.whl

Total release size: 18.7 kB

Release files / fairmind_cli-0.3.1a0.tar.gz

Download URL fairmind_cli-0.3.1a0.tar.gz
Size 10.6 kB
Tags Source
SHA-256 checksum
How to use checksums
fc28b5802e891193ed26f5c220693e1bc0e2f3e185761f2024ce00a57b357c91
BLAKE2b-256 checksum
How to use checksums
fb5bf265d459d2523d15313fb179adcf946e9432a9325d59b20ccaa1a78945b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 8, 2026.

Transparency log

Release files / fairmind_cli-0.3.1a0-py3-none-any.whl

Download URL fairmind_cli-0.3.1a0-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
62b8adfc36db85d1aac06d6c805a6182dc9cf2b7e91876833270f9f2dcf42312
BLAKE2b-256 checksum
How to use checksums
737ed5c3c2c179dbab4c16feefa27f8941c40d3886c119d964a4b6300c487229
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 8, 2026.

Transparency log

Security for fairmind-cli 0.3.1a0

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for fairmind_cli-0.3.1a0.tar.gz

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 Nov 8, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
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