---
title: "After install"
description: "Capture your first sessions, open the console, then turn on the sweep and labelling."
---

Assume `assay --version` works and `assay init` has run. This page is the standing loop.

## 1. Capture what already happened

Point Assay at the harness logs you already have:

```bash
assay capture claude-code
assay capture grok
assay capture codex
assay capture opencode
```

Each command is incremental and idempotent. Re-running is safe. A session already captured is not billed twice.

Skip a harness you do not use. A missing root is skipped, not an error, once the sweep is on.

See [Capture](/capture).

## 2. Open the console

```bash
assay dashboard
```

It prints a loopback URL (default `http://127.0.0.1:4319/`) and stays up until Ctrl-C.

The console is **read-only** for spend and conversations. It binds loopback on purpose. There is no login on that server. Loopback **is** the boundary.

You should see Spend, Sessions, and — once labels exist — Products and Objectives.

See [Dashboard](/dashboard).

## 3. Read one sitting from the terminal

```bash
assay show
assay tail -n 20
assay turns --session <session-id>
```

`assay turns` is the **debug console** for an agent loop: decrypted timeline, per-turn cost, JSON if you pass `--json`.

See [Debug console](/debug).

## 4. Turn on the sweep

Capture by hand is fine for a first look. For continuity:

```bash
assay sweep on
```

That is the **observability** switch. Every 30 minutes it:

1. Captures each first-party harness whose root exists.
2. Retrieves product, scope, and objective facts already in the store.

It does **not** call a model. `assay sweep off` unloads the timer.

Windows: the config flips and the command to schedule is printed. No fake job is installed.

## 5. Turn on labelling (corpus)

If Assay is tracking **your** work with AI:

```bash
assay labelling on
```

That is a consent moment. Assay uses **the AI you already pay for** (a harness CLI on `PATH`, or an API you named in config). It refuses to turn on if it cannot find one. It does not buy a second model.

`on` also installs a clean-exit hook so a sitting can be placed when it ends.

See [Labelling](/labelling).

If Assay is only metering someone else's agent loop, skip this. Sweep without labelling is the observability path.

## 6. Name your products (optional)

A product is a business fact Assay cannot infer. Add a `products` block when two folders are one product, or when you want named groups.

Without that block, each workspace folder is its own product. The feature still works.

See [Products](/products) and [Config](/config).

## Standing commands after that

| When | Command |
|---|---|
| Look at spend | `assay show` · `assay dashboard` |
| Find a conversation | Search in the console, or `assay search "…"` |
| Place sittings | `assay unplaced` · `assay labelling run` |
| Check prices | `assay pricing check` |
| Export cost | `assay export --focus` |

Do not run a remote judge over full conversation text unless you opt in on the command that does it. The default labelling path uses your own AI locally through the harness you already run.
