Run experiments¶
An experiment is a commit. You create one with submit, inspect it with diff
and log, move between experiments with checkout, and read results with get.
Submit¶
submit snapshots your working tree, commits it as a new experiment, and queues
it. There are three ways to use it, depending on how much you want the agent to
own.
You wrote the code and it's final. Autolab commits + pushes it and moves you into the new experiment.
Every field you set — including your code — is locked: the agent fills only the blanks (like a missing run command) and never overwrites your work.
A starting point you're happy for the agent to revise. You stay in your current experiment.
Where do I end up after submit?
You advance into the new experiment only when the code is final — you
pushed code and didn't pass --soft. With --soft (agent may revise) or
--nocode (agent writes it), you stay put. This keeps your working tree
predictable.
Common options¶
autolab submit -m "bf16 + larger batch" \
--name "bf16-bs512" \ # else the agent derives a name
--run "python train.py" \ # else inherited / agent-filled
--setup "uv sync" \ # environment prep before the run
--node "8xH100" \ # node constraint
--from <id> \ # branch from a specific experiment instead of main
--priority 10 # queue priority
See all options in the CLI reference.
See what you'd submit: diff¶
diff shows your changes versus the experiment you're in — exactly what submit
would send. (Your .autolab/ control dir is never shown.)
autolab diff # the full patch, new files included
autolab diff --stat # just a ±LOC summary: files + added/removed lines
History: log¶
log includes queued and pending experiments. The commit column stays
empty until the code is final — for --soft/--nocode experiments the agent may
still be authoring it.
Move between experiments: checkout¶
Reset your working tree to any experiment's code, or back to main:
autolab checkout <id> # this experiment's code
autolab checkout main # the current main branch
autolab checkout <id> -f # discard local changes while switching
checkout fetches first so the target commit is present. If you have uncommitted
changes it stops and tells you how to keep them (submit) or discard them
(-f).
Stay current: pull¶
Read results: get¶
autolab get logs <id> # the run's logs (stdout/stderr the runner streamed)
autolab get traces <id> # the agent sessions for this experiment: turns, cost, status
Artifacts aren't captured yet
autolab get artifacts <id> is a placeholder: the runner streams logs but
does not yet upload checkpoints or files. Use autolab get logs for now.
Cancel¶
Open in the browser¶
Most experiment IDs accept a short prefix. If a prefix is ambiguous the CLI tells you — see Troubleshooting.