Local autonomous research runtime

A research lab that runs on your machine.

One goal, its own agents, its own run directory. It reaches models through the agent CLI you are already signed in to — Codex or Claude Code — so nothing here resells you tokens.

$curl -fsSL https://openlab.bot/install.sh | sh
  • Apache-2.0
  • macOS, Linux, Windows
  • One executable, no toolchain
  • Nothing to sign up for

Harnesses

It thinks with the CLI you already pay for.

OpenLab installs no model and resells no tokens. It dispatches every agent to a locally authenticated harness on this machine, and openlab doctor says which of them it can find.

Codex

Plan you already hold

The Codex CLI, on the subscription it is already signed in to.

Found on your PATH as codex

Claude

Plan you already hold

The Claude Code CLI, on the subscription it is already signed in to.

Found on your PATH as claude

GLM

Plan you already hold

A Z.ai coding plan, served over an Anthropic-compatible API and driven through the Claude CLI.

Found on your PATH as glm

DeepSeek

Your wallet, by the token

A key you hand over, driven through the Codex CLI. Nothing caps it, and its setup card says so first.

Found on your PATH as deepseek

Muse Code

Your wallet, by the token

A Meta account, metered the same way and publishing no balance at all, so the lab cannot say what a run cost until Meta does.

Found on your PATH as muse

How a lab works

One goal. Its own agents. Its own directory.

One lab holds many investigations, each running alongside the others. An investigation is a goal, a team, and a research loop that turns until it has something or has nowhere left to look.

01

Director

Reads the goal and every lead already spent on it, then names the ones still worth opening.

02

Researchers

One per lead, all at once, each free to get at its lead however it sees fit.

03

Verifier

Reached only when a researcher comes back claiming something, because otherwise there is nothing to verify.

04

Breakthrough

A finding that survived verification, and one of the five moments the lab will reach you about.

Then it turns again, on what the last turn spent and what it ruled out. Two things stop it, and it tells you which:

Nowhere left to look

The director could not name another lead. The investigation stops rather than inventing work.

Held at the caps

Every subscription it may use has reached the cap you set. It sleeps on the first window due back and takes itself up then.

First run

Three commands, and it is working.

Node, pnpm and a toolchain are not requirements. A release is one executable with its runtime inside it, and the database is created on first start beside the runs it is about.

  1. $openlab doctor

    Says which agent CLIs it can find on this machine, and what is missing before it can dispatch to them.

  2. $openlab start

    Opens the lab, applies its migrations and serves the dashboard. Every investigation it already holds reopens with it.

  3. $openlab new --goal "Find a faster implementation of a reference algorithm"

    Starts an investigation: one goal, its own team, its own run directory, running alongside the others.

Guardrails

It runs for hours. Here is what it will not do.

Research runs long and mostly unwatched, so the answers below are behaviour the runtime already has rather than a setting somebody has to go and find first.

It stops before your plan does

A subscription window can be capped short of the vendor's own ceiling — 80% of the five-hour window, 60% of the weekly one. A capped subscription is passed over exactly as a spent one is, and a run already under way finishes rather than being killed mid-thought.

It reports five moments

A finding survived verification. It needs something only you can give it. An investigation failed, or went to sleep, or a harness is not ready to dispatch to. Nothing else, so a message is never a stream to tune out.

It will not update itself

Starting a lab asks the release channel at most once a day and says one line if there is something newer. Taking it is yours to decide, and the manifest has to be signed by a key compiled into the lab or nothing is installed.

You can see what it is doing

The dashboard reads the lab live: every investigation, what each one is doing, its team, its event stream and what it ended up as. It is served by the daemon on your own machine, so there is nothing to log in to.

And the lab itself is a directory you own.

One SQLite file and the run directories beside it, under OPENLAB_HOME. Copy it to keep it, delete it to be rid of it. Installing and uninstalling the program never touches it.

Start a lab.

One command, on the plan you already hold. Nothing to sign up for, nothing to configure before it can tell you what it is missing.

$curl -fsSL https://openlab.bot/install.sh | sh