Create a project¶
A project links a directory on your machine to an objective on the control node. There are two ways to start one — create a new project, or clone an existing one.
Create from your code¶
From inside the repo you want to optimize:
init first asks whether to use this directory's code as the source, then
collects the research goal:
| Path | It asks for |
|---|---|
| Using your code | name, run command, objective, env setup, constraints, termination |
| Empty project | name, objective, constraints, termination |
The slug is the slugified name (my-research-repo → alice/my-research-repo),
deduped to …-v2 if taken. Every project starts on your
AutoLab platform key.
init does two things: it links this directory to a project, and it creates that
project live-but-paused on the control node. It prints the project's
dashboard URL — open it (autolab open) and you'll see the project card with
the agent paused, so you can review settings before it spends anything. Nothing
runs yet.
Start empty¶
No baseline code? Let the agent write it from your objective:
The agent fills in the run and setup commands once there's code to run.
Non-interactive¶
Every prompt has a flag, so an agent or CI job can create a project headlessly
with -y:
autolab init -y \
--name "nanochat" \
--objective "minimize val loss" \
--run "python train.py" \
--prep "uv sync" \
--constraints "keep params < 1B" \
--max-cost 50 \
--start
See every flag in the CLI reference.
Create from the dashboard¶
New Project on the dashboard walks the same steps in the browser: describe the goal, optionally attach a GitHub repository, pick a model, connect compute, and review with the agent. Press Cmd+Enter (macOS) or Ctrl+Enter (Windows/Linux) to continue from any step; Esc closes dialogs.
The first step needs a goal, a repository, or both — there's nothing to build a project from otherwise, so Continue stays put and says so until you provide one.
Changed your mind? Back — or any ticked step in the progress bar — returns you to that step with everything you entered still filled in, and carries on with the same draft. Close the tab at any point and pick the draft back up from the dashboard.
Attach a GitHub repository¶
Paste any github.com URL, or browse the repos you've shared with the
Autolab GitHub App. Public repos work with just the URL; private repos
need the App:
- Click Configure access and install the App on the account that owns the repository. A personal repo → your account; an organization repo → the organization (pick it on GitHub's account chooser; an org admin may need to approve).
- GitHub's install screen is the repo picker — grant all repos or select just the ones Autolab may see. You can change this any time.
- Need another repo later? Use "Adjust permissions" under the repo list (or GitHub → Settings → Applications) to add it.
Installing the app connects your repos, but doesn't create a project by itself — after GitHub sends you back, attach the repo and continue through the wizard. If you installed the App directly on GitHub and it still isn't connected, Configure access links the existing installation to your account.
Pick a model¶
The model field opens on the one we recommend for the key you picked — Claude Opus 5 with an Anthropic key, GPT-5.6 Sol with an OpenAI key — and the list below it runs from most to least recommended. The AutoLab key reaches several providers at once; it resolves in the order Anthropic → OpenAI → Moonshot, so it too opens on Opus 5. You can change it here or later in project settings. Not sure? The Which model should I pick? link next to the field has our current comparison.
Connect compute¶
Each machine you connect shows what it brings. A laptop or GPU box lists its own cards and RAM; a Slurm login node lists the cluster it submits to — GPUs per node, total nodes, and partition count — because the login node itself has no GPUs and AutoLab runs every experiment as a batch job on the cluster.
Go live with start¶
init leaves the agent paused. When the settings look right
(autolab settings), take the project live:
This seeds main from your code and starts the agent. The first start
takes the project live; afterwards it resumes the agent after a
pause. Pass --start to init to go live immediately.
Clone & resume an existing project¶
To work on a project that already exists — yours or one you collaborate on:
autolab projects # list projects you can access
autolab clone alice/nanochat # copy its code into ./nanochat
cd nanochat
autolab status # where the project (and you) are
autolab pull # fast-forward to the latest main
You can also paste a link straight from the browser's address bar — the project
page or any of its tabs — instead of typing the owner/slug:
autolab clone https://app.autolab.ai/projects/alice/nanochat
autolab clone https://app.autolab.ai/projects/alice/nanochat/queue
Either way the code lands in ./nanochat. A pasted link also says which
control node to clone from, so it works without --url when the project lives
on a different one. (A GitHub URL is a source repo, not an AutoLab project —
use autolab init --source for that.)
In the projects list, status is the project lifecycle (active = it has
been taken live) and agent is what the research loop is doing right now
(running, idle, paused, …) — the same state the dashboard card shows. An
active project with a paused agent is normal: it's live, just not working.
clone downloads the project's code (every experiment commit) and links the
directory to the project. It does not download experiment logs, metrics, or
artifacts — those stay on the control node and are read in the browser
(autolab open); autolab log lists the experiments themselves. Cloning never
changes the project's state: a paused agent stays paused until you
autolab start.
From here you submit experiments, checkout a specific one, or diff your
changes — see Run experiments.
Open the dashboard¶
The dashboard is where runs, metrics, the agent's analysis, and chat live — see CLI and dashboard.
Delete a project¶
Owners can delete a project (and everything in it) from the CLI:
This is permanent. See Project settings.