Start

Quickstart

Joining a team? Start with Join a factory. Host owners can share a host with their team.

This page takes one laptop from nothing to a finished agent run you can search. Your laptop plays both parts: it sends the order and it runs the worker.

This page uses macOS or Linux. You need Docker running, Git, and Codex or Claude Code installed and logged in. Because this machine also runs the worker, it needs tmux too (brew install tmux). A laptop that only sends work to another host doesn’t; see what you need. You also need a clone of a repository you are happy to let an agent change, under ~/workspace, with an origin remote. This page uses ~/workspace/my-project. On Windows, see Windows.

1. Install

brew tap hev/tap
brew trust hev/tap
brew install hev/tap/hev

The install page covers Linux, Windows and building from source.

2. Start the daemon

hev up

hev up starts a local trace archive in Docker, writes ~/.hev/config.toml, and installs the capture daemon, hevd, under launchd on macOS or systemd on Linux. It needs no account and no key. Check it:

hev s

hev s shows the daemon’s last scan, how many units it indexed and the last error. On Linux, hev up installs a systemd user service. Without a usable user manager, run hev d under your own supervisor.

3. Configure one host

Dispatch reads ~/.config/hev/dispatch.toml on the machine that sends work. Create it with one host, the laptop itself:

workspace = "~/workspace"

[hosts.laptop]
local = true
cap = 2

local = true runs workers on this machine without SSH. cap is how many runs it takes at once. Confirm the host is reachable and has free slots:

hev dispatch hosts

4. Write an order

An order is a Markdown file with flat frontmatter and an ## Acceptance section. Save this as first-run.md:

---
name: first-run
host: laptop
repo: my-project
harness: codex
timeout: 30
---
Add a short "Development" section to README.md that says how to run the tests.
Commit on this branch. Do not push and do not open a pull request.

## Acceptance
- README.md has a Development section with the test command.
- The change is committed on branch d/first-run.

repo is a directory under workspace. base defaults to main; set it if your default branch has another name. Use harness: claude for Claude Code.

5. Dispatch it

hev dispatch first-run.md

Dispatch fetches origin, creates branch d/first-run from origin/main in a new worktree at ~/dispatch/first-run/wt, and starts a supervisor in the tmux session d-first-run. The supervisor owns the timeout and writes the result when the agent exits.

6. Watch it

hev dispatch ls
hev dispatch logs first-run -f
hev dispatch attach first-run

ls lists running runs with their state, age and trace. logs -f follows the worker’s output. attach opens its tmux session.

To add an instruction while it works, append to its inbox. The worker reads it between steps:

hev dispatch say first-run 'Keep the section under ten lines'

When it finishes, read the receipt:

hev dispatch show first-run

show prints the run’s metadata, status notes, report, result and inbox. The same files are on disk in ~/dispatch/first-run/.

7. Search its trace

The daemon scans every five minutes by default. Run hev index to index now, then filter by the order name:

hev index
hev traces list --order first-run
hev traces search "how to run the tests" --order first-run

Sessions whose working directory is under ~/dispatch/first-run/ carry order=first-run, so the worker’s whole session comes back under that name.

8. Clean up

hev dispatch clean first-run

clean removes the worktree and keeps the order, logs, report and result. It leaves the d/first-run branch in your clone.