CLI reference
Every redcrown subcommand and flag.
Environment variables
Keys a local redcrown eval reads from your shell. Each key goes only to its own provider, as the authentication for that provider's calls. RedCrown receives no key from a local eval.
| Variable | Provider |
|---|---|
OPENAI_API_KEY | OpenAI |
ANTHROPIC_API_KEY | Anthropic |
OPENROUTER_API_KEY | OpenRouter |
GROQ_API_KEY | Groq |
HUGGINGFACE_API_KEY | Hugging Face |
DEEPGRAM_API_KEY | Deepgram |
GEMINI_API_KEY | Google AI Studio |
NVIDIA_API_KEY | NVIDIA NIM |
MISTRAL_API_KEY | Mistral |
COHERE_API_KEY | Cohere |
REDCROWN_CUSTOM_HTTP | A custom OpenAI-compatible endpoint, as JSON (base_url, auth_header_name, auth_value, body_style, model) |
redcrown harness report
Status counts and per-check pass rates for one run
| Flag | Description | Default |
|---|---|---|
run_id | | |
--runs | the journal directory (one subdir per run) | |
--rulings | rulings file (JSON, or YAML with PyYAML) | |
--policy | check the run against this written policy file (JSON) | |
--baseline | the baseline run for a no_regression rule. Needs --policy | |
--format | print the policy result as text or JSON. Needs --policy | text |
redcrown harness compare
Per-check diff of two runs; exit 1 on any regression
| Flag | Description | Default |
|---|---|---|
base_run | | |
head_run | | |
--runs | | |
--rulings | | |
--format | text | |
--allow-corpus-drift | compare the shared case ids even when the corpus versions differ | False |
redcrown harness export
Write an upload payload for `redcrown push`
| Flag | Description | Default |
|---|---|---|
run_id | | |
--runs | | |
--out | | |
--name | the experiment name shown on the record | |
--label | the system under test, e.g. one-button@<commit> | |
--rulings | | |
--quality-bar | 0.0 | |
--task-summary | |
redcrown push
Push a local eval's results JSON, or a `redcrown harness export` payload, to RedCrown as a cloud run
| Flag | Description | Default |
|---|---|---|
path | results JSON from `redcrown eval --report-json` or `redcrown harness export --out` | |
--api-url | https://api.redcrown.ai | |
--app-url | https://app.redcrown.ai | |
--org | workspace (org) id; default personal org | |
--experiment | append the run to this standing experiment id | |
--no-receipts | strip per-item receipts/references before upload (confidential outputs never leave this machine) | False |
--proof-link | mint and print a shareable proof link for the pushed run | False |
--publish-anyway | mint the proof link even when the report's own caveats say it is not fit to publish (the override is recorded) | False |
redcrown score
Score outputs produced elsewhere with a deterministic metric. Input: a scoring request JSON (experiment_id, items with references, candidates with a declared configuration and their outputs), or --items-csv plus --outputs-jsonl. Output: the ranked table on stdout; --evidence-json writes the private raw evidence that `redcrown check` reads (it can contain your data, keep it private); --report-json writes the upload format for `redcrown push`. Side effects: writes those local files only. Data destination: local file only, no network call. Authentication: none. Failure: exit 1 on an unreadable or invalid request, or f1 against references that are not JSON objects; nothing is written then. The CSV plus JSONL form carries no declared configuration, so its evidence cannot be checked against a baseline.
| Flag | Description | Default |
|---|---|---|
path | ScoreOutputsRequest JSON; alternatively use CSV + JSONL flags | |
--items-csv | CSV with item_id (or id), input, and reference columns | |
--outputs-jsonl | JSONL with candidate_id, item_id, and output/error fields | |
--name | comparison name for CSV + JSONL input | |
--metric | deterministic metric for CSV + JSONL input | similarity |
--quality-bar | minimum acceptable quality for CSV + JSONL input | 0.0 |
--objective | ranking objective for CSV + JSONL input | quality |
--report-json | write upload-schema results for `redcrown push` | |
--evidence-json | write private raw report evidence for offline `redcrown check` | |
redcrown check
Apply a policy to a candidate evidence file, and optionally a baseline evidence file for the same feature, offline. Input: raw evidence from --evidence-json (not the --report-json upload format), --candidate-id, --baseline with --baseline-candidate-id, and --policy (JSON only). Output: pass, fail or indeterminate per rule and overall, with counts and excluded item ids, as text, markdown or json on stdout. Side effects: none; no file is written. Data destination: nothing leaves the machine. Authentication: none. Exit 0 pass; exit 2 fail or indeterminate (an indeterminate required rule is never a pass); exit 1 command, file or policy error (unreadable file, candidate id not in the file, YAML policy, a regression rule with no baseline). Both files must share experiment_id, items, references and scorer, or the comparison is refused with workload_mismatch, content_hash_mismatch, evaluator_hash_mismatch or platform_changed. Cost and latency rules parse but are always indeterminate.
| Flag | Description | Default |
|---|---|---|
path | raw candidate report JSON | |
--candidate-id | | |
--baseline | raw baseline report JSON | |
--baseline-candidate-id | | |
--policy | policy JSON (JSON is the only supported format) | |
--format | text | |
--changed | Also list the cases whose score moved against the baseline. This prints outputs. Keep it out of shared CI logs. | False |
redcrown attest
Download a signed attestation for a completed run
| Flag | Description | Default |
|---|---|---|
run_id | | |
--out | output file (default <run_id>-attestation.json) | |
--api-url | https://api.redcrown.ai |
redcrown build-dataset
Build an experiment JSON from a public corpus (primock57, mmlu-pro)
| Flag | Description | Default |
|---|---|---|
source | public corpus source (omit when using --from-csv/--from-jsonl) | |
--out | path to write the experiment JSON | |
--limit | cap the number of (audio, reference) items | |
--corpus-dir | path to an existing corpus checkout (skips cloning) | |
--quality-bar | quality bar a candidate must clear; default = the dataset's published bar (mmlu-pro 0.75), NOT 0.0 | |
--monthly-minutes | projected monthly audio minutes for the $/mo column | 20280 |
--no-clone | do not clone; require --corpus-dir to point at a checkout | False |
--ids-file | path to a newline-separated list of clip ids; builds exactly those items (the pinned benchmark subset). Applied after --limit, so do not combine them | |
--from-csv | build from a CSV with input + reference columns (text tasks) | |
--from-jsonl | build from a JSONL with input + reference fields (text tasks) | |
--task | task kind for --from-csv/--from-jsonl | |
--input-col | input column/field name (default 'input') | input |
--reference-col | reference column/field name (default 'reference') | reference |
redcrown eval
Run an experiment JSON locally and print the report
| Flag | Description | Default |
|---|---|---|
path | path to an experiment JSON file | |
--sample | run a bundled offline sample with the demo provider (no keys) | |
--report-json | also write the full results (receipts included) as an upload-schema JSON for redcrown push | |
--evidence-json | write the private raw report used by `redcrown check` (may contain customer data; do not publish) | |
--audio-base | base URL for per-item audio (item_audio = base + id + .mp3) | |
--concurrency | number of provider calls to run at once (default 1, sequential; raise it for many-candidate token benchmarks) | 1 |
--repeat | run each candidate N times and report a run-to-run quality stdev (default: the experiment's repeat_n, or 1). Note: this makes N times the API calls, so N times the eval spend. Tip: set params.seed on a candidate for a provider that supports seeded sampling. | |
--judge | judge panel member for quality_metric judge; repeat for a panel (e.g. --judge openrouter:openai/gpt-5.5) | |
redcrown import-results
Upload a locally-run eval's aggregated results JSON into RedCrown
| Flag | Description | Default |
|---|---|---|
path | path to a results JSON file (the upload schema) | |
--api-url | RedCrown API base URL | https://api.redcrown.ai |
--token | access token (or set REDCROWN_TOKEN); your RedCrown/Supabase bearer token | |
redcrown login
Log in to RedCrown (device flow; opens a code page)
| Flag | Description | Default |
|---|---|---|
--api-url | RedCrown API base URL | https://api.redcrown.ai |
redcrown logout
Delete the stored RedCrown credentials
redcrown matrix-plan
Preview a bounded experiment matrix offline (unreleased)
| Flag | Description | Default |
|---|---|---|
path | private matrix JSON specification | |
--output | explicitly create a new private experiment JSON file; never runs it | |
redcrown rejudge
Re-score an existing report-json's stored outputs with a new judge panel
| Flag | Description | Default |
|---|---|---|
path | results JSON from `redcrown eval --report-json` (with receipts) | |
--judge | panel member; repeat for a panel | |
--keep-existing | fold the original run's judge into the new panel | False |
--out | path to write the re-judged report JSON | |
--concurrency | 8 |
redcrown verify
Verify a RedCrown attestation file offline
| Flag | Description | Default |
|---|---|---|
path | | |
--key | a JWKS file to verify against (offline); default: fetch the file's key_url | |
Generated from source. Last verified .