CLI reference¶
Every autolab command, argument, and option. This page is generated directly
from the CLI, so it never drifts from the version you've installed. For the same
text in your terminal, run:
New here? Start with the Quickstart or the task-focused guides — they show these commands in context.
autolab¶
autolab — autonomous research from your terminal.
Create projects, queue experiments, and attach compute; the AutoLab agent writes code, runs jobs on your machines, and analyzes the results.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--url |
text | Control-node URL (overrides AUTOLAB_URL / profile). | None |
--profile |
text | Named profile from ~/.config/autolab/config.toml. | None |
-q, --quiet |
boolean | Print only essential results. | False |
-v, --verbose |
boolean | Stream raw git output. | False |
--version |
boolean | Show the version and exit. | False |
--help |
boolean | Show this message and exit. | False |
autolab cancel¶
Cancel a queued or in-flight job.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab checkout¶
Reset the working tree to an experiment's code (or main).
Fetches first so the target commit is present locally; if you have uncommitted changes it explains how to keep them (submit) or discard them (--force).
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
-f, --force |
boolean | Discard local changes when switching. | False |
--help |
boolean | Show this message and exit. | False |
autolab clone¶
Copy a project's code into a local workspace. PROJECT is owner/project-slug.
Downloads the project's code (every experiment commit) into DIRECTORY —
default ./<project-slug> — and links it to the project so status,
log, checkout, and submit work inside it. It does NOT download
experiment logs, metrics, or artifacts (see those with autolab log or
on the dashboard — autolab open), and it never changes the project's
state — a paused agent stays paused.
PROJECT can also be a link you copied out of the browser or a git remote —
a dashboard URL or any of its sub-pages, or the repo.git URL:
autolab clone alice/nanochat
autolab clone https://app.autolab.ai/projects/alice/nanochat
autolab clone https://app.autolab.ai/projects/alice/nanochat/queue
autolab clone https://app.autolab.ai/api/v1/projects/alice/nanochat/repo.git
A URL also says which control node to clone from, so it works without
--url when the project lives on a different one.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab compute¶
Rent AutoLab compute for a climb (subcommands: rent, stop).
Rented machines are billed to your AutoLab credit and attach to a climb on
their own once they boot. Bare autolab compute shows the catalog and, in a
climb's workspace, that climb's current cap and live rentals.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--project |
text | Climb (owner/slug); default: this workspace's. | None |
--help |
boolean | Show this message and exit. | False |
autolab compute rent¶
Let a climb rent up to --max nodes of MACHINE (a catalog id).
Merges with any caps already set for other shapes. See ids with
autolab compute. Lowering a cap releases the excess now.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--max |
integer | Most nodes of this shape to run at once (0 removes it). | Sentinel.UNSET |
--project |
text | Climb (owner/slug); default: this workspace's. | None |
--help |
boolean | Show this message and exit. | False |
autolab compute stop¶
Rent nothing for a climb, releasing any live rentals now.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--project |
text | Climb (owner/slug); default: this workspace's. | None |
--help |
boolean | Show this message and exit. | False |
autolab diff¶
Show what changed: ±lines per file; -p prints the lines themselves.
With no argument — your uncommitted changes vs the experiment you're in
(new files included): exactly what autolab submit would send.
With an EXPERIMENT id — what that experiment's code changed vs the code
it branched from, e.g. autolab diff 9f2a01c4 after seeing it in
autolab log.
Both summarize like git diff --stat — each changed file with its
added/removed line counts; pass -p/--patch for the full patch.
autolab's own .autolab/ control dir is never shown.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
-p, --patch |
boolean | Print the changed lines themselves (a full git-style patch). | False |
--help |
boolean | Show this message and exit. | False |
autolab graph¶
Show the experiment lineage tree — what branched off from where.
An experiment is a commit; this draws the branch relationships between them
(the same graph as the dashboard). → marks the experiment you're in.
Queued/pending experiments aren't shown — they have no lineage yet (use
autolab log). Pass --format json for an edge list automation can read,
or --root <id> to focus one experiment's subtree.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--format |
choice (text | json) |
Output format: a tree (default) or JSON for automation. | text |
--root |
text | Show only the subtree rooted at this experiment (id-prefix). | None |
--help |
boolean | Show this message and exit. | False |
autolab hills¶
Build and publish hills — the evaluation environments climbs run against.
A hill holds the scoring code (eval.py), the held-out data it scores on (private/), and a README that states the task. Build one locally, then push it to your control node:
autolab hills new my-task # scaffold ./.autolab/hills/my-task
# implement eval.py; put held-out data in private/
autolab hills check my-task # validate the evaluator contract
autolab hills commit my-task -m "first version"
autolab hills push my-task # publish; start climbs on the web
new/check/commit run the OSS hills CLI at the platform's pinned version;
the full tool (eval, log, examples, …) is available as hills itself.
Bare autolab hills lists the hills on your control node.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab hills check¶
Validate NAME's manifest and evaluator contract, and run its tests/.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--no-tests |
boolean | Skip tests/ in the check. | False |
--help |
boolean | Show this message and exit. | False |
autolab hills commit¶
Check NAME and freeze the working tree as a new version.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
-m, --message |
text | What changed in this version. | Sentinel.UNSET |
--no-tests |
boolean | Skip tests/ in the check gate. | False |
--help |
boolean | Show this message and exit. | False |
autolab hills fork¶
Fork HILL (owner/name) into a new hill you own.
Copies the hill's current version — evaluator, README, and (if you can read
them) private files — into a hill under your account, so you can change the
task and publish your own version. Works on your own hills too. Then edit it
with autolab hills pull <your-name> or on the web.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--name |
text | Name for your copy (default: auto-suggested). | `` |
--help |
boolean | Show this message and exit. | False |
autolab hills new¶
Scaffold a hill in ./.autolab/hills/NAME and register it locally.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
-t, --template |
text | Start from a bundled example (hills examples lists them). |
None |
--help |
boolean | Show this message and exit. | False |
autolab hills pull¶
Fetch HILL (owner/name) from your control node into ./.autolab/hills/
The hill's owner gets the exact frozen hill (bundle incl. private/), so
local hills eval reports carry its official tree hash. Anyone else gets
the public part — evaluator, README, public data — committed as a new
local hill; scores from it are local and unofficial. Either way the OSS
hills tool then works as usual: hills describe <name>, hills eval.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--version |
text | A version's tree hash (default: current). | None |
--into |
text | Parent directory (default: ./.autolab/hills). | None |
--force |
boolean | Replace an existing hill directory of the same name. | False |
--help |
boolean | Show this message and exit. | False |
autolab hills push¶
Publish NAME's latest commit to your control node.
The first push creates the hill under your account; later pushes add versions. NAME can be omitted when exactly one hill is registered here.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--source-repo |
text | Git URL climbs start their code from (optional). | None |
--force |
boolean | Push the last commit even if the working tree is dirty. | False |
--public |
boolean | Make the hill public on the hub after pushing. | False |
--help |
boolean | Show this message and exit. | False |
autolab hills settings¶
Show or change a published hill's hub settings.
Hub settings live on the control node (not in the bundle) and can change any
time: visibility, tags, a competition deadline, and leaderboard fields. NAME
is owner/name, or a bare name for one you own.
autolab hills settings my-task # show current settings
autolab hills settings my-task --deadline 2026-09-15 --public
autolab hills settings my-task --set featured_metric=score --set ranked=true
autolab hills settings my-task --no-deadline --unset ranked
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--public |
text | Make it public. | None |
--private |
text | Make it private. | None |
--deadline |
text | Competition deadline (ISO date, e.g. 2026-09-15). | None |
--no-deadline |
boolean | Clear the competition deadline. | False |
--tag |
text | Replace tags (repeatable); none clears them. | Sentinel.UNSET |
--set |
text | Set a leaderboard/hub_meta field (repeatable), e.g. --set featured_metric=score. | Sentinel.UNSET |
--unset |
text | Remove a hub_meta field. | Sentinel.UNSET |
--help |
boolean | Show this message and exit. | False |
autolab init¶
Create a project and link the current directory as its workspace.
First asks whether to use the current directory's code as the source, then which evaluation (hill) the project climbs:
• using code → name, evaluation, termination • empty → name, evaluation, termination (the agent writes the first submission from the evaluation's README)
The slug is the slugified name (deduped to …-v2 if taken). Every project starts
on your AutoLab platform key. Fully scriptable with flags + -y (headless /
LLM use); pass --start to go live now.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--name |
text | Project name (the slug is derived from it). | None |
--source |
text | Git URL to clone (implies using code). | None |
--empty |
boolean | Start an empty project (ignore any local files). | False |
--description |
text | Short project description. | `` |
--hill |
text | The evaluation to climb: owner/name or owner/name@ |
`` |
--stop-policy |
text | Termination condition (free text; empty = never stop). | `` |
--max-cost |
float | Hard $ cap on agent spend. | None |
--start |
boolean | Start the agent immediately. | False |
-y, --yes |
boolean | Non-interactive: use flags, don't prompt. | False |
--help |
boolean | Show this message and exit. | False |
autolab install¶
Install the autolab skill into your coding agent (Claude Code and/or Codex).
Teaches Claude Code or Codex to drive this CLI — how to set up AutoResearch projects, queue experiments, attach nodes, and steer the agent. With no TARGETS it asks which tool(s) to set up; or name them directly:
autolab install # interactive: pick Claude Code / Codex / both
autolab install claude # just Claude Code (~/.claude/skills/autolab)
autolab install codex # just Codex ($CODEX_HOME/skills/autolab)
autolab install both --force # both; overwrite an out-of-date skill
An existing file that differs is never overwritten without --force.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
-f, --force |
boolean | Overwrite an existing skill file that differs. | False |
--dry-run |
boolean | Show what would change — write nothing. | False |
--help |
boolean | Show this message and exit. | False |
autolab kube¶
Use a Kubernetes namespace as compute.
autolab kube install puts a small launcher pod in a namespace; it joins
your account as a node, exactly like autolab serve on a Slurm login
host. The climb's agent then runs each evaluation as its own GPU pod with
autolab kube run --gpus 1 -- <command>
as the launcher prefix — the pod shares the launcher's volume, so code,
caches and the report are in the same place on both sides. kube run
also works from any shell with a kubeconfig (a laptop next to a cluster)
once the launcher settings are given (--image, --pvc, --mount).
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab kube install¶
Deploy the launcher into a namespace with your current kubectl context.
Same as autolab serve --kubernetes <namespace>, with every knob: image,
volume size and class, launcher CPU and memory. Creates a service account,
a role scoped to pods in that namespace, a volume, a secret with your
token and one launcher pod. The node shows up on your Compute tab as soon
as the pod has installed the CLI (a minute or two the first time). Re-run
to update; autolab kube uninstall removes it.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--name |
text | Node name, e.g. venice. | Sentinel.UNSET |
--namespace, -n |
text | Namespace the launcher lives in. | Sentinel.UNSET |
--image |
text | Image for the launcher AND job pods (default: python:3.12-bookworm). | None |
--storage |
text | Volume size for code, caches and data. | 100Gi |
--storage-class |
text | StorageClass for the volume (default: the cluster's). | `` |
--shared-volume |
boolean | Request ReadWriteMany so job pods may run on any node. | False |
--mount |
text | Mount path of the volume in every pod. | /data |
--cpu |
text | Launcher pod CPU. | 2 |
--memory |
text | Launcher pod memory. | 8Gi |
--token |
text | User token to register with (else AUTOLAB_TOKEN / stored login). | None |
--help |
boolean | Show this message and exit. | False |
autolab kube manifest¶
Print the launcher's Kubernetes manifests (for kubectl apply -f -).
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--name |
text | Node name, e.g. venice. | Sentinel.UNSET |
--namespace, -n |
text | Namespace the launcher lives in. | Sentinel.UNSET |
--image |
text | Image for the launcher AND job pods (default: python:3.12-bookworm). | None |
--storage |
text | Volume size for code, caches and data. | 100Gi |
--storage-class |
text | StorageClass for the volume (default: the cluster's). | `` |
--shared-volume |
boolean | Request ReadWriteMany so job pods may run on any node. | False |
--mount |
text | Mount path of the volume in every pod. | /data |
--cpu |
text | Launcher pod CPU. | 2 |
--memory |
text | Launcher pod memory. | 8Gi |
--token |
text | User token to register with (else AUTOLAB_TOKEN / stored login). | None |
--help |
boolean | Show this message and exit. | False |
autolab kube run¶
Run COMMAND in a fresh pod, stream its output, exit with its code.
Put -- before the command. The pod runs in the launcher's namespace,
from this working directory, with this environment; while it waits for a
free GPU it prints kube: pod … pending and the run shows as queued.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--gpus |
integer | GPUs for the pod (0 = none). | 1 |
--cpu |
text | CPU request/limit, e.g. 4 or 500m. | `` |
--memory |
text | Memory request/limit, e.g. 32Gi. | `` |
--image |
text | Container image (default: the launcher's). | `` |
--pvc |
text | PersistentVolumeClaim to mount (default: the launcher's). | `` |
--mount |
text | Where the claim is mounted (default: the launcher's). | `` |
--name |
text | Pod name (default: autolab-job- |
`` |
--shm |
integer | /dev/shm size in GiB. | 8 |
--deadline |
integer | Kill the pod after N minutes (0 = none). | 0 |
--node-selector |
text | Constrain to nodes with this label (repeatable). | Sentinel.UNSET |
--any-node |
boolean | Don't pin the pod to the launcher's node. | False |
--keep |
boolean | Leave the finished pod in place for inspection. | False |
--help |
boolean | Show this message and exit. | False |
autolab kube uninstall¶
Remove the launcher (and by default its volume) from a namespace.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--name |
text | Node name given at install. | Sentinel.UNSET |
--namespace, -n |
text | N/A | Sentinel.UNSET |
--keep-volume |
boolean | Leave the data volume (caches, worktrees) in place. | False |
--help |
boolean | Show this message and exit. | False |
autolab log¶
Show experiment history (newest first); → marks the experiment you're in.
Includes queued and pending experiments. The commit column stays empty
until the code is final — the agent may still write or revise it.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--limit |
integer | Max rows to show. | 30 |
--help |
boolean | Show this message and exit. | False |
autolab login¶
Sign in and store an API token for this host.
Default is a browser sign-in. --token <tok> stores a token you already
have (e.g. printed by autolab token or created on the dashboard's Access
Tokens page) without a browser — ideal for an agent driving a remote box.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--token |
text | Store this API token directly (no browser) — for headless / SSH / CI. | None |
--help |
boolean | Show this message and exit. | False |
autolab logout¶
Remove the stored token for this host.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab metrics¶
Show a run's logged metrics — per-series stats + params.
Reads the run's MLflow data through the control node (member-gated):
exact stats over each full series, plus logged params. --metric <key>
prints one series as a step/value table; --format json dumps the raw
payload (series, params, system samples) for scripts and agents.
EXPERIMENT is an id-prefix from autolab log. Run logs stream on the
experiment's dashboard page — autolab open <experiment>.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--metric |
text | Zoom into one series (step/value table). | None |
--format |
choice (text | json) |
Human summary (default) or the raw payload for automation. | text |
--help |
boolean | Show this message and exit. | False |
autolab nodes¶
Your compute nodes (subcommands: attach, detach, rm, add).
A node is a machine you connected with autolab serve. It stays yours;
attach it to a climb so that climb's agent can use it.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab nodes add¶
How to connect a machine as one of your nodes.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab nodes attach¶
Let a climb's agent use NODE (id/name).
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--project |
text | Climb (owner/slug); default: this workspace's. | None |
--help |
boolean | Show this message and exit. | False |
autolab nodes detach¶
Stop a climb from using NODE (the node stays connected).
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--project |
text | Climb (owner/slug); default: this workspace's. | None |
--help |
boolean | Show this message and exit. | False |
autolab nodes rm¶
Disconnect and forget NODE (id/name). Its runner exits on its next poll.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab open¶
Open the project dashboard (or an experiment page) in your browser.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab pause¶
Pause the agent (the autonomous loop). Resume with autolab start.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab projects¶
List the projects you can access (for picking one to clone).
status is exactly what the project's card shows on the dashboard —
Running / Idle / Paused / No LLM / No nodes / …
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab pull¶
Fetch the latest and fast-forward.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab serve¶
Connect this machine to your account as a compute node.
Installs a systemd user service and starts it: the node survives closed
terminals, SSH disconnects, control-node restarts and machine reboots,
and updates itself to the control node's build while idle. Where there is
no per-user systemd (cluster login nodes, macOS) it falls back to a plain
background process, which a reboot does not bring back. Attach the node
to climbs from the Compute tab (or autolab nodes attach); the climb's
agent then runs code and evaluations here. Manage it with:
autolab serve status connection state + recent log
autolab serve log the node's full runner log (-f to follow)
autolab serve stop disconnect this machine
On a Slurm cluster run this on a login node: the agent submits its own
jobs there. Re-running serve while the node is up just reports it.
--kubernetes <namespace> connects a Kubernetes namespace instead: there
is no machine to run this on, so it deploys a small pod there (with your
current kubectl context) that runs serve for you; the agent then runs
each evaluation as its own GPU pod. Same as autolab kube install.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--name |
text | Node name (default: derived, unique per machine). | None |
--token |
text | User token to register with (else AUTOLAB_TOKEN / stored login). | None |
--autolab-home |
text | Root dir for workspaces (default ~/.autolab). | None |
--foreground |
boolean | Run in this terminal instead of the background. | False |
--daemon |
boolean | Plain background process, no systemd service (does not survive a reboot). | False |
--kubernetes |
text | Connect a Kubernetes namespace instead of this machine (needs kubectl access). | None |
--help |
boolean | Show this message and exit. | False |
autolab serve log¶
Print this node's entire runner log (-n N for just the tail).
The log narrates everything the node does — registration, accepted jobs,
agent bash commands, failures, shutdowns. The same log shows on the node's
dashboard page. Rotated on each start; the previous run is kept next to it
as serve.log.1.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
-n, --lines |
integer | Print only the trailing N lines. | None |
-f, --follow |
boolean | Keep streaming new lines (Ctrl-C exits). | False |
--name |
text | Show the node with this name (default: most recent). | None |
--help |
boolean | Show this message and exit. | False |
autolab serve status¶
Show this machine's background nodes: liveness, logs, control-node view.
Records written by OTHER machines sharing the state directory (an NFS
home) are one line each — their liveness can't be checked from here;
--all prints their details too, serve stop --name <node> clears a
stale one. Exits 0 when a daemon is running on THIS machine, 1 otherwise
(scriptable).
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--all |
boolean | Also detail records from other machines that share this state directory. | False |
--help |
boolean | Show this message and exit. | False |
autolab serve stop¶
Stop this machine's background node(s) and disconnect them.
Idempotent: cleans up stale state and reports if nothing was running.
Records left by other machines sharing the state directory (NFS) are never
touched unless targeted with --name (which clears the record only —
the daemon itself must be stopped on its machine). An experiment mid-run
is requeued once the control node sees the node offline.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--name |
text | Stop only the node with this name. | None |
--help |
boolean | Show this message and exit. | False |
autolab settings¶
Show or edit project settings (subcommands: collab, delete).
With any flag, edits those fields then shows. Pass an empty string to clear a
field, e.g. autolab settings --description "". What the project optimizes is its
evaluation, shown read-only: it is fixed for the life of the project.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--name |
text | Display name. | None |
--description |
text | Short project description. | None |
--source |
text | Source repo URL. | None |
--coding-timeout |
integer | Optional coding-step execution budget in seconds (120-7200; retried attempts get 2x). By default there is NO budget — the step runs until done. Pass 0 to remove a budget you set earlier. | None |
--watchdog |
choice (on | off) |
Run watchdog: the agent checks each running job every few minutes and decides continue vs kill (on, default). When off, runs are hard-killed at the agent's runtime estimate. | None |
--watchdog-interval |
integer | Seconds between run watchdog check-ins (60-3600; default 300). Pass 0 to restore the default. | None |
--env |
text | Set a climb env var injected into evaluation runs (repeatable), e.g. --env OPENAI_API_KEY=sk-... . Merged with existing vars. | Sentinel.UNSET |
--unset-env |
text | Remove a climb env var. | Sentinel.UNSET |
--help |
boolean | Show this message and exit. | False |
autolab settings collab¶
List collaborators (subcommands: add, rm, role).
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab settings collab add¶
Add USERNAME (a GitHub username) as a collaborator; re-run to fix the role.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--role |
choice (admin | researcher | viewer) |
Role to grant. | researcher |
--help |
boolean | Show this message and exit. | False |
autolab settings collab rm¶
Remove USERNAME from the project.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab settings collab role¶
Change USERNAME's role.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab settings delete¶
Permanently delete this project on the control node (owner only).
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--yes |
boolean | Skip the confirmation prompt. | False |
--help |
boolean | Show this message and exit. | False |
autolab start¶
Start the agent on this project — and resume it after autolab pause.
The first start takes the project live: it seeds the baseline from your code
(or, for an empty project, lets the agent code from your objective) and starts
the autonomous loop. After that, start just resumes the paused loop.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab status¶
Where you are — the project (status, nodes, experiment counts) and the run you're in.
The status row is exactly what the project's card shows on the dashboard.
Start/pause the agent with autolab start / autolab pause; toggle idea
generation with autolab status autogen on|off.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab status autogen¶
Show or toggle automatic idea generation (autogen on / autogen off).
When on, the agent proposes new experiments on its own; when off, it only runs what you queue. With no argument, prints the current agent + ideas state.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab submit¶
Queue an experiment. With code it snapshots + pushes the working tree; the control node fills in any blank fields (name/description now, run command + code at pickup).
By default every field you provide (including your pushed code) is locked — the
research agent fills only the blanks and never overwrites your values. Pass --soft
to let the agent refine what you set.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
-m, --message |
text | Description / idea for this experiment. | `` |
--name |
text | Experiment name (derived by the agent if omitted). | `` |
--node |
text | Node constraint (e.g. '8xH100'). | `` |
--from |
text | Base ref to branch from. | None |
--priority |
float | Queue priority. | None |
--no-code, --nocode |
boolean | Submit an idea only — ignore code changes; the agent writes the code. Requires -m. | False |
--soft |
boolean | Let the agent edit the fields you set (default: your fields are locked). | False |
--help |
boolean | Show this message and exit. | False |
autolab token¶
Print the active token; subcommands manage PATs (create, ls, revoke).
Bare autolab token prints the token you're authenticated with — handy for
bootstrapping a remote exec node without a browser:
TOK=$(autolab token create --name gpu-box) # a fresh, revocable token
ssh gpubox "AUTOLAB_TOKEN=$TOK autolab serve"
Prefer a named token create over the bare print so you can revoke just that
one later. A token acts as you on every project you can access — pipe it,
don't paste it where it'll be logged.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab token create¶
Mint a new personal access token. Prints the token (once) to stdout.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--name |
text | Name for the token (prompted if a TTY). | None |
--help |
boolean | Show this message and exit. | False |
autolab token ls¶
List your personal access tokens.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab token revoke¶
Revoke a personal access token. REF = id-prefix or name.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |
autolab update¶
Update this CLI to the build your control node serves.
Downloads the control node's current wheel and re-installs the tool with
uv tool install --force — exactly what the install one-liner does. The
control node stamps a fresh build (0.1.0.post<mtime>) on every deploy,
so run this after the platform updates; it also syncs a machine back to an
older build after a control-node rollback. A node daemon keeps its old code
until restarted (autolab serve stop && autolab serve) — the command reminds
you when one is running.
--check prints both versions and installs nothing; it exits 1 when this
CLI differs from the control node's build (scriptable).
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--check |
boolean | Report versions only; install nothing. | False |
--force |
boolean | Reinstall even when already on the served build. | False |
--help |
boolean | Show this message and exit. | False |
autolab whoami¶
Show the active host, signed-in user, and local auth context.
Usage:
Options:
| Name | Type | Description | Default |
|---|---|---|---|
--help |
boolean | Show this message and exit. | False |