This release is a pre-release and may not be stable for production use.
Arbiter
Know which AI systems you run, and be able to show it.
Arbiter is an open-source AI governance gateway and EU AI Act compliance toolkit. It links what an organisation declares about its AI systems with what their traffic shows, and reports what does not match.
Alpha. A first pre-release is on PyPI. It has never run in production, and it is not legal advice: every classification is indicative until a person reviews it, and the AI Act rule pack has not been reviewed by a person with legal training. Read scope and limits first.
| English | Italiano | |
|---|---|---|
| See it at work: a day at an invented firm, from a real run | A day at Nordwind | Una giornata alla Nordwind |
| What it is, for people who are not developers | Arbiter in brief | Arbiter in breve |
Contents: the problem · what it does · what it is not · try it · what is inside · documentation · status · questions · contributing
The problem
The EU AI Act, and most internal policies, ask an organisation to know which AI systems it runs, what they are for and how risky they are. That knowledge usually lives in a list someone wrote once. The list says what was remembered that day, not what happens today: a tool switched to another model, a retired system that still answers, a team using a model nobody declared.
Gateways for language models see the traffic and know nothing of the law. Governance tools hold the inventory and never see the traffic. Arbiter joins the two.
What Arbiter does
| Declares | An inventory of AI systems, each with the role the organisation has for it |
| Classifies | An indicative AI Act tier for each system, with the provision and the date behind every outcome. Rules are data; a person confirms or overrides |
| Controls | A gateway in front of models, MCP tools and A2A agents: approved models only, personal data masked, budgets, grants. Your own rules are a file |
| Records | Every decision in a log that can be verified. No prompt, argument or answer is stored |
| Compares | What was declared against what the traffic shows. What does not match is a finding for a person to judge, and undeclared use is named |
| Reports | A daily digest and reports, in English and Italian, as Markdown, HTML or PDF |
The gateway and the toolkit each work without the other. If you already run an LLM gateway, keep it: Arbiter imports its records.
What it is not
- Not legal advice, and not a certificate. It never says a system complies.
- Not a judge of whether a declaration is true. A tier follows from the answers given.
- Not all-seeing. It governs what passes through it or is imported. A service opened in a browser is not seen.
- Not for providers. It covers the obligations of those who deploy AI systems.
- Not a dashboard. A command line, an HTTP API, reports and a digest.
More, and what was and was not verified: scope and limits.
Try it in two minutes
No Docker, no cloud account, no real model: a mock answers in its place. Needs Python 3.12 or newer.
pip install "ai-arbiter[gateway,mcp]>=0.1.0a1"
arbiter init # a local workspace on SQLite
arbiter demo tour --case consulting --report out/demo.html
The last command follows an invented firm that approved one family of models: it prints thirteen steps and writes the day as a page like this one.
Write the command as above: the releases so far are pre-releases, and >=0.1.0a1 lets
pip take them for Arbiter only. Do not use pip install --pre: that flag also takes
pre-releases of every dependency, and one of them breaks the demonstration.
From a clone instead: uv sync --all-extras, then put uv run in front of each command.
Your own systems, the gateway as a service, and a live session in front of people: getting started and giving a demonstration.
What is inside
| Part | What it gives you | Guide |
|---|---|---|
| Gateway | An OpenAI-compatible endpoint with identity, policy as data, redaction, routing, cost metering and budgets | Gateway |
| Tools and agents | A catalogue and a proxy for MCP servers, a registry and a proxy for A2A agents: nothing is called without a grant, every call is recorded | Gateway |
| Audit log | One hash chain per tenant, verifiable and exportable, with no content and no names | Audit log |
| Compliance toolkit | Inventory, AI Act classifier, review, scanner, findings, discovery, importers, digest and reports | Compliance toolkit |
| Demonstrations | A guided tour, a use case told as a story, three scenarios with expected outcomes | Demonstration |
The base install is the toolkit and the command line on SQLite. The rest is optional:
| Extra | Adds |
|---|---|
gateway |
The HTTP service, PostgreSQL, calls to providers |
mcp, a2a |
The proxies for tools and for agents |
pii |
Detection of names and places in prompts, run locally |
pdf |
Reports as PDF |
otel |
Tracing |
all |
Everything above |
Documentation
| I want to | Read |
|---|---|
| Install it and make a first request | Getting started |
| Show it to someone | Giving a demonstration |
| Know what it covers and what it does not | Scope and limits |
| Configure the gateway, the proxies, budgets | Gateway |
| Declare systems, classify, scan, report | Compliance toolkit |
| Understand and verify the audit log | Audit log |
| See how well personal data is detected | PII evaluation |
| Understand the design | Architecture and the decision records |
| See what changed | Changelog |
Status and roadmap
| Version | Content | State |
|---|---|---|
| 0.1 | Gateway, compliance toolkit, importers, discovery, reports | Built. On PyPI as a pre-release. 0.1.0 waits for a legal review of the rule pack |
| 0.2 | Tools (MCP) and agents (A2A), the demonstrations | Built, part of the same alpha |
| 0.3 | Deployment on Azure, observability, hardening | Not started |
| 1.0 | Documentation and packaging for adopters | Not started |
Only pre-releases are on PyPI. Phase by phase, with what each one left open and every improvement that was noted: status and tracking.
Hard questions
"Another LLM gateway?", "Can a YAML file read the AI Act?", "Was this written by an AI?", "Is it safe in front of my keys?": the objections a careful reader will raise are answered, without varnish, in hard questions.
Contributing and security
Issues and pull requests are welcome: how to contribute. Report a vulnerability privately: security policy.
Licence and name
Apache-2.0: see LICENSE. The distribution is ai-arbiter, the command is
arbiter. It is not related to arbiter-ai or arbiter on PyPI, which are other
projects by other authors. Model and product names that appear in
examples and documents are trademarks of their owners, who have no relation to this
project.
Arbiter is a support tool. It does not provide legal advice.
Metadata
Release files for ai-arbiter 0.1.0a2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ai_arbiter-0.1.0a2.tar.gz | 394.4 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ai_arbiter-0.1.0a2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 754.5 kB
Release files / ai_arbiter-0.1.0a2.tar.gz
| Download URL | ai_arbiter-0.1.0a2.tar.gz |
|---|---|
| Size | 394.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
162c2098d8bc07d3a8782300a607c7916312a8d081838c2d99498a7037e53647
|
|
BLAKE2b-256 checksum How to use checksums |
e8d4d5c57441eafbc98b6816beb0ab6b3aacf621c5132e5a4eaee6368833b379
|
| 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 6, 2026.
Transparency logRelease files / ai_arbiter-0.1.0a2-py3-none-any.whl
| Download URL | ai_arbiter-0.1.0a2-py3-none-any.whl |
|---|---|
| Size | 360.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7226a0b8b5a6c7f54b8306f934b2b4d3284845bf02989ad29bd292341cfa1109
|
|
BLAKE2b-256 checksum How to use checksums |
7ae5918ce21aaec57677b924df031a907eb1e5d457ef7a4c05145dffff9b6e99
|
| 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 6, 2026.
Transparency logSecurity for ai-arbiter 0.1.0a2
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
All 2 files in this release have been uploaded with provenance metadata.
Attestation for ai_arbiter-0.1.0a2.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 Oct 6, 2026.
Transparency logA 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.