Skip to main content

Quickstart

Quick start

Get Baton running locally in under 5 minutes.

The goal of the first run is not only to boot the app. It is to make Baton understandable: what it manages, where to click, and what the first visible company state looks like.

  • Use the quick path if you just want to see Baton working.
  • Use the local development path if you want to edit the codebase.
  • Baton uses an embedded PostgreSQL instance by default, so you do not need an external database to begin.
5 minutes
Rough time to get to a visible Baton UI.
1 command
The quickest path starts with onboard and a local run.
0 setup drift
The UI and runtime use the same local defaults.

Choose your path

Quick evaluation

Best when you want to understand Baton right away.

  • Run the onboard command
  • Open the UI and explore the company model
  • Use the first setup to understand the product shape

Local development

Best when you want to change code, docs, or both.

  • Install dependencies
  • Start the dev server
  • Use the embedded database during development

Quick start

1

Onboard

Run `pnpm baton onboard --yes` to walk through setup and generate the initial configuration.

recommended if you want to evaluate Baton before editing code
2

Start the app

Use `pnpm dev` to boot the API server and UI at `http://localhost:3100`.

no external database required
3

Open the company view

Create your first company, then open the company page to see agents, goals, budgets, and work in one place.

the UI is the control surface, not just a dashboard
4

Create the first agent

Add a CEO agent and connect its adapter so Baton can start orchestrating real heartbeat runs.

after this, you can grow the org chart and begin assigning work

What the first screens should tell you

look here first

Company overview

Shows the top-level company, its goal, and the shape of the team.

Baton dashboard showing company activity, recent work, and live events.
The company name, goal, and org chart should be the first things you notice.
managed vs external

Agent detail

Shows one agent at a time so you can understand its adapter, instructions, and current state.

Agent detail page with the Instructions tab open.
The selected entry file matters because it determines what Baton keeps in managed mode.
shared project context

Project conventions

Shows the project-level context that Baton composes into supported agent runs.

Project detail page with the Conventions tab open.
This is where operators keep backstory, coding conventions, and compact context aligned.

What to Notice

Start with the dashboard

The dashboard tells you what Baton is managing right now before you open any individual agent.

Baton dashboard showing company activity, recent work, and live events.
Scan the company name, the live event rail, and the overall health signals first.
  1. 1

    Company overview

    Check the active company name and org shape so you know which workspace you are in.

  2. 2

    Live event rail

    Read recent mutations first so you understand what changed before you click around.

  3. 3

    Status chips

    Look for running, idle, paused, or error states to spot the next place that needs attention.

Local development

Prerequisites: Node.js 20+ and pnpm 9+.

pnpm install
pnpm dev

This starts the API server and UI at http://localhost:3100.

No external database is required. Baton uses an embedded PostgreSQL instance by default.

One-command bootstrap

pnpm baton run

This auto-onboards if config is missing, runs health checks with auto-repair, and starts the server.

What comes next

After Baton is running, the next useful actions are:

  1. Create your first company in the web UI
  2. Define a company goal
  3. Create a CEO agent and configure its adapter
  4. Add more agents and shape the org chart
  5. Set budgets and assign initial tasks
  6. Let the first heartbeats run so you can see the control plane in motion