monte CLI is the only write path into the platform. This page states the conventions every command shares, and what each exit code means. Commands documents the commands themselves.
Conventions
- Default subcommand.
monte eval mathmeansmonte eval run math. The same applies totrain. Options may precede the name:monte eval --smoke mathworks. Theexperiment,env,dataset, andboxgroups have no default on purpose. Their subcommands are different intents. - Confirm before launch.
eval runandtrain runprint the run plan, then asklaunch?. Skip the prompt with--yes. Without a TTY the prompt refuses (E_CONFIRM) instead of hanging.--dry-runprints the plan and launches nothing. The approved plan is the exact object the run persists, and its hash lands in the row asconfig_hash. - Typed confirm for promote.
promotedoes not ask y/n. It requires--confirm <experiment-name>, typed out. A mismatch is the sameE_CONFIRM. - How to name a run. One form everywhere:
<experiment>/<run>. The run half is a ULID or aneval@N/train@Nalias. A ULID is the sortable id Monte gives every run, andmonte statusprints it. An alias names the succeeded run at that N. Two succeeded matches refuse by name, and the CLI never picks by ledger order. - How to name a checkpoint. A different form:
<run>/<step>, where<run>is the ULID of the run that wrote the checkpoint and<step>is absolute. Absolute means counted from the base model, not from the start of that run.monte statusprints both halves. Aliases do not resolve here, because two branches can hold one step. --json. Supported oneval run,train run,status,show,config,sync,push,env list,env add, everydatasetsubcommand, and everyboxsubcommand. Stdout carries pure JSON, and the human plan summary moves to stderr. One trap:status --jsonomits the checkpoint list that the human view prints undercheckpoints:.- Refusals. Anything the platform refuses exits 3 or higher with
CODE: cause (fix)on stderr. The fix is part of the message. --version.monte --versionprints the installed version and exits.
Where a Command Runs
Three groups, and a command run from the wrong group is the most common source of a refusal.--remote reads the git state of the checkout it runs from, so a uv tool install refuses it (E_REMOTE). promote copies weights off disk, so it runs where they live.
The first row has a precondition the others do not. env add, env list --available, and env install all read or write the NeMo Gym checkout, so they need a machine whose MONTE_LOCAL holds the stack. Installing a mock-only environment is the exception, because it has nothing to register.
Exit Codes
Codes 3 through 17 all print
CODE: cause (fix) on stderr. Two names share code 3: E_REFUSAL is the base code, and E_NO_BASELINE carries the same exit value. Read the name on stderr, not the number, to tell them apart.
