Skip to content
Amber

Docs

CLI reference

Every amber command, its options, and the exit codes it returns.

The amber command is installed with uv tool install amber-cli (see the quickstart). Every command accepts --json for scripting.

#Account

amber login

Sign in through your browser and store an API key for one Workspace. Shows a code and opens /cli/authorize; once you approve, the CLI stores the key.

--api-url <url>
Where Amber is (default: https://amber.trycoredepth.com).
--no-browser
Print the link instead of opening it.
--json
Print JSON instead of a table, for scripts.

amber logout

Forget the stored API key on this machine. The key stays valid until you revoke it in Workspace settings.

--json
Print JSON instead of a table, for scripts.

amber whoami

Show who you are signed in as and which Workspace the key is for.

--json
Print JSON instead of a table, for scripts.

amber version

Print the installed amber-cli version.

--json
Print JSON instead of a table, for scripts.

#Catalog

amber benchmarks list

List the public Benchmarks, or your Workspace’s private ones.

--private
Your Workspace’s private Benchmarks, not the public ones.
--limit <n>
Show at most this many (default: all).
--json
Print JSON instead of a table, for scripts.

amber benchmarks show <slug>

Show a Benchmark: what it measures, its versions, and what a Job on it typically costs.

--json
Print JSON instead of a table, for scripts.

amber models list

List Models with their Providers and prices (USD per million tokens).

--provider <slug>
Only Models served by this Provider, e.g. anthropic.
--limit <n>
Show at most this many (default: all).
--json
Print JSON instead of a table, for scripts.

amber models configs list

List Model Configurations: a Model, its pinned Provider and settings. The slug is what -m takes.

--model <slug>
Only this Model’s, by slug.
--provider <slug>
Only those pinned to this Provider.
--limit <n>
Show at most this many (default: all).
--json
Print JSON instead of a table, for scripts.

#Jobs

amber quote

Price a Job without starting it. Shows the breakdown (model, sandbox, judge, fee) and how confident the estimate is. Nothing is reserved until you amber run. A Quote leaves out combinations that don’t fit.

-b, --benchmark <slug[@label]>
Benchmark, e.g. terminal-bench@2.0 or gsm8k. Without a label, the newest version that isn’t deprecated. Repeat for several.
-m, --model <slug>
Model Configuration slug, e.g. opus-high. Repeat for several.
-a, --agent <slug>
Agent, e.g. terminus-2. Repeat for several. Without it, the default Agent is used, and the Direct Agent too for a Benchmark with static Tasks; with it, exactly the Agents you name.
-n, --trials <1-10>
Trials per Task. Defaults to 1.
--task-id <id>
Only this Task of the chosen Benchmarks. Repeat for several; each Benchmark needs at least one.
--json
Print JSON instead of a table, for scripts.
amber quote -b terminal-bench@2.0 -b gsm8k -m opus-high -m gpt-high -a terminus-2 -n 1

amber run

Quote a Job, ask to confirm, start it and follow its progress. It spends money, so it never does so silently: anything but a person at a terminal (a script, a pipe, --json) must pass --yes, or the command exits 2 without spending.

-b, --benchmark <slug[@label]>
Benchmark, e.g. terminal-bench@2.0 or gsm8k. Without a label, the newest version that isn’t deprecated. Repeat for several.
-m, --model <slug>
Model Configuration slug, e.g. opus-high. Repeat for several.
-a, --agent <slug>
Agent, e.g. terminus-2. Repeat for several. Without it, the default Agent is used, and the Direct Agent too for a Benchmark with static Tasks; with it, exactly the Agents you name.
-n, --trials <1-10>
Trials per Task. Defaults to 1.
--task-id <id>
Only this Task of the chosen Benchmarks. Repeat for several; each Benchmark needs at least one.
-y, --yes
Don’t ask for confirmation.
--name <name>
A name for the Job.
--detach
Start the Job and return without following it.
--json
Print JSON instead of a table, for scripts.
amber run -b terminal-bench@2.0 -m opus-high -m gpt-high -n 3

amber jobs list

List recent Jobs in the current Workspace.

--state <state>
Only Jobs in this state: running, completed, cancelled…
--limit <n>
Show at most this many. Defaults to 20.
--json
Print JSON instead of a table, for scripts.

amber jobs show <job-id>

Show a Job’s state, spend and progress.

--json
Print JSON instead of a table, for scripts.

amber jobs cancel <job-id>

Stop a Job. Running Trials stop now and are charged for what they used; the rest of the Quote goes back to your Wallet.

--json
Print JSON instead of a table, for scripts.

amber jobs wait <job-id>

Follow a Job until it ends. Exits 0 only if it completed (6 otherwise).

--json
Print JSON instead of a table, for scripts.

#Results

amber results <job-id>

Show a Job’s Rewards and costs per cell (Benchmark × Agent × Model Configuration).

--trials
Also list every Trial.
--json
Print JSON instead of a table, for scripts.

amber compare <job-id>...

Compare Model Configurations that are comparable (the same Benchmark Version and Agent Version), with 95% intervals and “too close to call” flags. Others are listed separately, with the reason.

--benchmark-version <id>
Benchmark Version id, if the Jobs have several.
--agent-version <id>
Agent Version id, if the Jobs have several.
--json
Print JSON instead of a table, for scripts.

amber export <job-id>

Export a Job’s results. The file is written atomically; without -o it goes to standard output.

-f, --format <json|csv|html>
json (full detail), csv (one row per Trial) or html (a report). Defaults to json.
-o, --output <file>
Write to this file (default: standard output).
--json
Print {path, bytes, format} instead of a table. Needs -o.
amber export 7f3a --format html -o report.html

#Wallet

amber wallet

Show your Wallet: what it holds, what is set aside for open Jobs, and what you can spend.

--ledger <n>
Also show the last n Wallet entries.
--json
Print JSON instead of a table, for scripts.

#Private Benchmarks

amber upload <path>

Upload Harbor Tasks as a private Benchmark: a folder of Task folders, or a .tar.gz or .zip of them. Validation is quoted first, then run; the Tasks that passed are published. Like run, it asks before spending.

--name <name>
Name for the Benchmark (default: the folder’s name, or with --benchmark that Benchmark’s).
--benchmark <slug>
Upload the next version of this private Benchmark.
--allow-host <host>
A host the Tasks’ Environments may reach besides the Amber model proxy (repeatable).
-y, --yes
Don’t ask for confirmation.
--exclude-failing
Publish the Tasks that pass if some fail.
--no-publish
Stop after validation.
--label <label>
Label for the new version (default: the next number).
--json
Print JSON instead of a table, for scripts.
amber upload ./my-tasks/ --name my-bench

#Exit codes

CodeMeaning
0Success
1The command failed: the API answered with an error, or could not be reached
2Invalid usage or arguments, or a prompt that needs --yes
3Not signed in, the API refused the key, or a login was denied or expired
4The Job, Benchmark, Model Configuration or Agent doesn’t exist, or isn’t yours
5The Quote cannot be accepted: blocking problems, expired, or the Wallet holds too little
6run or jobs wait followed a Job that did not complete (cancelled, ceiling reached, failed)
7You answered no at the confirmation; nothing was spent
8upload: the upload was rejected, or some Tasks failed validation and nothing was published
130Interrupted with Ctrl-C. A Job that already started keeps going; amber jobs wait <id> rejoins it