# Picking your harnesses

Brigade installs material on two independent axes: depth (how much shared baseline you want) and harnesses (which tools you actually use).

## Supported harnesses

Eighteen writer harnesses are supported, each with its own local handoff inbox in the same format. OpenClaw or Hermes owns the canonical memory; Hermes can also write handoffs.

| Writer | `--harnesses` / `--inbox` id | Local inbox |
|---|---|---|
| Codex CLI | `codex` | `.codex/memory-handoffs/` |
| Claude Code | `claude` | `.claude/memory-handoffs/` |
| OpenCode | `opencode` | `.opencode/memory-handoffs/` |
| Antigravity | `antigravity` | `.antigravity/memory-handoffs/` |
| Pi | `pi` | `.pi/memory-handoffs/` |
| Cursor | `cursor` | `.cursor/memory-handoffs/` |
| Aider | `aider` | `.aider/memory-handoffs/` |
| Goose | `goose` | `.goose/memory-handoffs/` |
| Continue | `continue` | `.continue/memory-handoffs/` |
| GitHub Copilot CLI | `copilot` | `.copilot/memory-handoffs/` |
| Qwen Code | `qwen` | `.qwen/memory-handoffs/` |
| Kimi Code | `kimi` | `.kimi/memory-handoffs/` |
| AdaL | `adal` | `.adal/memory-handoffs/` |
| OpenHands | `openhands` | `.openhands/memory-handoffs/` |
| Grok CLI | `grok` | `.grok/memory-handoffs/` |
| Amp | `amp` | `.amp/memory-handoffs/` |
| Crush | `crush` | `.crush/memory-handoffs/` |
| Hermes | `hermes` | `.hermes/memory-handoffs/` |

OpenClaw is usually the canonical memory owner rather than a writer inbox. Add it with `--harnesses openclaw,...` when the workspace should own durable memory.

## Common combos

- **Claude Code only:** `--harnesses claude`, the lightest setup, just one writer.
- **Claude Code + OpenClaw:** `--harnesses claude,openclaw`, durable memory owner (OpenClaw) plus side writer (Claude Code).
- **Claude Code + Codex + OpenClaw:** `--harnesses claude,codex,openclaw`, both writers feed into OpenClaw as the canonical owner.
- **Codex + OpenClaw:** `--harnesses codex,openclaw`, Codex-first user with OpenClaw as the canonical store.
- **Several surfaces + OpenClaw:** `--harnesses codex,claude,cursor,aider,openclaw`, mix as many writers as you use, all feeding OpenClaw as the canonical owner.
- **Hermes workspace:** `--harnesses hermes` on its own, or `--harnesses hermes,codex,claude` to keep Hermes as the owner while other tools write handoffs alongside it.

## Hermes support

Hermes is a first-class harness, not an experiment. `--harnesses hermes` installs the `.hermes/memory-handoffs/` writer inbox plus the `.brigade/hermes/` adapter fragments. Hermes can act as a writer or as the canonical memory owner, so a Hermes-led workspace works the same way an OpenClaw-led one does.

Verify the wiring after setup:

```bash
brigade operator verify-harness --harness hermes --target .
brigade handoff list --target .
```

The verifier checks both the `.hermes/memory-handoffs/` inbox and the `.brigade/hermes/` adapter fragments.

## Choosing the canonical owner

The canonical memory owner is picked automatically by priority (`openclaw > hermes > claude > codex > this-repo`). Override with `--owner`, for example `--owner hermes` to make Hermes the owner even when OpenClaw is also installed.

## Re-running init is safe

Re-running `brigade init` against an existing target is safe. It refuses to overwrite tracked files without `--force`. The managed `.gitignore` block is replaced between its markers without touching the rest of your file.

See the [Quickstart](/docs/getting-started/quickstart/) for setup, verification, and the ingest flow.