anyeval
Check that an AI evaluation repository conforms to the AnyEval standard, and run it end to end to get real numbers.
pipx run anyeval-cli check .
Why
A benchmark score is comparable to another score only when five things match: the model, the provider that served it, the eval, the problem, and the harness. Published numbers routinely state one and omit four, which makes them impossible to reproduce and unsafe to compare — including for whoever published them.
The AnyEval standard is a repository layout and a manifest that make all five recordable. This tool decides whether a repository conforms, so conformance is an objective result rather than a review opinion.
Commands
anyeval check . # 27 rules, pass/fail each, exit 1 on failure
anyeval check . --json # machine-readable, for CI
anyeval spec # print the standard
anyeval run . --sample-id 3 --model qwen/qwen3-32b
check never runs your code
It reads files and parses run.py with ast. It does not import or execute anything in
the repository, so it is safe to point at a stranger's checkout. The trade is stated
plainly: static analysis can confirm that run.py declares --sample-id and refuses
glob patterns, not that it honours them at runtime. That is what run is for.
run does run your code
Running an eval is the only way to prove it works, so anyeval run executes the
repository's own run.py against a live model and prints the score, tokens, cost, and
which provider actually served the request.
It needs a TrustedRouter key in TRUSTEDROUTER_API_KEY.
The run is billed to your account; this tool sends the key to nothing but TrustedRouter.
It refuses to start on a non-conforming repository unless you pass --force, because
the rules are what stop one problem becoming a full-dataset bill.
The most expensive rule
runner.rejects_globs exists because Inspect matches sample ids with fnmatch and only
warns when a glob selects many samples — it errors solely when the filtered set is
empty. So --sample-id '*' silently runs the entire dataset while billing for one
problem. Every conforming run.py refuses glob metacharacters outright.
Exit status
0 when the repository conforms, 1 when it does not, 2 on a usage error. Suitable
for CI.
Submitting an eval
Check it, run it, then email the repository URL to anyeval-submission@trustedrouter.com.
See anyeval.com/submit.
You do not have to submit at all — the standard and this tool are open, and neither depends on anyeval.com. A format only usable by its author is not a standard.
Note on the package name
The anyeval name on PyPI belongs to an unrelated project, so this package is published
as anyeval-cli. It installs both an anyeval and an anyeval-cli command.
Licence
Apache-2.0
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 anyeval_cli-1.0.1.tar.gz.
File metadata
- Download URL: anyeval_cli-1.0.1.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2dc438f4212ce06f3a4d7bfac24f0dfa7277de325029d93022a836c1cf9736ec
|
|
| MD5 |
066db520acb0f44ef590f55ddf6c03f0
|
|
| BLAKE2b-256 |
d71ed47f671267dcaac2070395ce631ebfa199542e5d53553acfbdc5fccc9230
|
Provenance
The following attestation bundles were made for anyeval_cli-1.0.1.tar.gz:
Publisher:
publish-cli.yml on AnyEvalOrg/anyeval-app
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anyeval_cli-1.0.1.tar.gz -
Subject digest:
2dc438f4212ce06f3a4d7bfac24f0dfa7277de325029d93022a836c1cf9736ec - Sigstore transparency entry: 2627719165
- Sigstore integration time:
-
Permalink:
AnyEvalOrg/anyeval-app@bbfdd950a7145f9e2ce0cd2342eb99b2205627ce -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/AnyEvalOrg
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-cli.yml@bbfdd950a7145f9e2ce0cd2342eb99b2205627ce -
Trigger Event:
release
-
Statement type:
File details
Details for the file anyeval_cli-1.0.1-py3-none-any.whl.
File metadata
- Download URL: anyeval_cli-1.0.1-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9de3dd2a9d98c3409e37f02e840e412f546eef7d781c436b2bd3c69f66b70d7b
|
|
| MD5 |
a4f715f0fb32ae4a934219c38fec22eb
|
|
| BLAKE2b-256 |
1a6fabab3b5f380e566db2c6d38a9371ea8b5c4ae05a5287d17c746dbcc26ba4
|
Provenance
The following attestation bundles were made for anyeval_cli-1.0.1-py3-none-any.whl:
Publisher:
publish-cli.yml on AnyEvalOrg/anyeval-app
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anyeval_cli-1.0.1-py3-none-any.whl -
Subject digest:
9de3dd2a9d98c3409e37f02e840e412f546eef7d781c436b2bd3c69f66b70d7b - Sigstore transparency entry: 2627719228
- Sigstore integration time:
-
Permalink:
AnyEvalOrg/anyeval-app@bbfdd950a7145f9e2ce0cd2342eb99b2205627ce -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/AnyEvalOrg
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-cli.yml@bbfdd950a7145f9e2ce0cd2342eb99b2205627ce -
Trigger Event:
release
-
Statement type: