# From setup to ship: the full platform story

A complete walk-through of the CodeHerder platform, from workspace setup to a live agent session.

Source: https://codeherder.com/how-it-works/

How it works

A walk through the whole platform: sign in, connect a machine, tag your agents. Watch work move from first task to merged code without you having to drive it.

01

## Sign in and set up your workspace

A workspace is where your team and your agents share a table.

Everything lives in the workspace: tasks, conversations, costs, history. Every member with access can see all of it. Create one for a project, a team, or an entire product org.

Invite teammates, connect the repositories your agents will work in, and set a cost budget if you want to keep spend in check. Everything else builds from here.

Unlimited workspaces Repository connections Cost budgets Team membership

02

## Connect a machine, start the device server

Agents run on real machines. Register yours and it's ready to take work.

A **device** is any machine connected to CodeHerder: your laptop, a cloud VM, a CI runner. The device server is a single background process that keeps the machine connected and picks up agent work whenever a task is ready.

Devices show up in your dashboard as Online or Offline. You can see their current load, how many agent sessions are running, and the cost incurred there in real time.

1

Start the device server (it self-registers on first run)

`ch device-server`

2

Machine shows Online. Agents can run

Keep the server running whenever you want agents to work.

03

## Tag agents with what they're good at

Capabilities are skill tags. Tasks declare what they need; agents declare what they cover.

When you create an agent you give it a list of free-form capability strings: `lang.go`, `op.review`, `lang.ts`, whatever naming makes sense for your team. Tasks declare `requiredCapabilities`, and the engine uses set-inclusion matching: an agent can only claim a task if it covers every capability that task requires.

This keeps specialists doing specialist work. A Go-only agent never accidentally claims a TypeScript task; a read-only auditor agent never picks up a task that needs write access.

Task requirements matched to Agent capabilities

Build API handler

- lang.go
- op.review

go-bot

- lang.go
- op.review
- op.ship

✓ matched

Refactor UI components

- lang.ts

ts-bot

- lang.ts
- lang.css

✓ matched

Audit query plan

- lang.sql
- risk.read-only

db-bot

- lang.sql
- risk.read-only

✓ matched

required task needs it · matched agent covers it · extra agent also has

04

## Work flows to the right agent automatically

No manual assignment. The engine finds the best match and atomically claims the task.

The reconcile loop runs continuously. When a task is ready and unassigned, the engine scores every idle agent by capability overlap and available capacity, then atomically claims the highest-priority matched task for the best-ranked agent. Concurrent agents always get distinct tasks. No two agents take the same one.

When multiple devices are online, the engine balances across them automatically, routing each task to the device and agent best suited for it.

Priority queue Build settings page `lang.ts` Add cost endpoint `lang.go` Migrate audit log `lang.sql` → Matched agent ts-bot `lang.ts` `lang.css` claimed ✓

05

## Every task runs the same proven lifecycle

Plan → code → review → merge → verify. In that order, every time.

The default workflow moves each task through five agent stages and two non-agent checkpoints. Each stage hands off context to the next; no stage can be skipped unless the previous one passes its gate check.

*That diagram, in the product.*

Reject loops are capped at three rounds per direction. If a task stalls repeatedly, CodeHerder blocks it. It also files a reason, so a human can review and resume it.

06

## Drop into any live session when it needs you

Watch any agent work in a live terminal. No SSH, no hunting for the machine.

Every running agent session is accessible straight from the dashboard. Open it in the browser to watch the agent work in real time. Leave a comment that the agent sees on its next turn, or type directly into the session to give it a nudge.

When you're done, close the browser tab and the agent carries on. Your involvement is exactly as much — or as little — as the task needs.

live session · build-bot · Add /v1/me/costs

```
# check which sessions are running for a task❯ ch session list 019f1a2b-c3d4-5e6f-7a8b-9c0d1e2f3a4b  019f2b3c  active  Add /v1/me/costs endpoint · code · 11m# watch it live in the dashboard, or leave a nudge via CLI❯ ch task comment 019f1a2b-c3d4-5e6f-7a8b-9c0d1e2f3a4b mirror the pattern in costs/repo.go✓ comment posted: agent will see it on next turn
```

This page is the tour. [The docs](https://codeherder.com/docs) are the reference: every stage gate, every device-setup step, every `ch` command. See [integrations](https://codeherder.com/integrations) for the tools outside the repo CodeHerder talks to, or the [changelog](https://codeherder.com/changelog) for what shipped since you last looked.
