# What HarnessLink captures from each harness

HarnessLink is the controller for your coding agents — it routes their model calls, gives them shared memory, banks what they do, and syncs and restores your setup. You code in omp, Claude Code, Codex or pi.

A **harness** is a coding agent that runs a model with tools: omp, Claude Code, Codex, pi, Antigravity, Cursor. HarnessLink is not one of them. It never patches a harness: it reads the files each one already writes, and — with your consent, through `superpi cloud setup` — adds its own entries to a harness's config (gateway base URL, context hooks, MCP server). This is what each harness yields after a default install and setup:

|  | omp | pi | Claude Code | Codex | Antigravity | Cursor |
| --- | --- | --- | --- | --- | --- | --- |
| Prompt history | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| Session transcripts | ✓ | ✓ | ✓ | ✓ | ✓ (`brain/<conversation>/.system_generated/logs/transcript_full.jsonl`) | `~/.cursor/sessions/*.jsonl` only |
| Subagent transcripts | ✓ | ✓ | ✓ | ✓ | — | — |
| Memory bank (autobank) | every finished turn (not subagents) | every finished turn (not subagents) | every finished turn (not subagents) | every finished turn (not subagents) | one entry per conversation | — not supported |
| Work state (`state/`) | todos, plan, checkpoints | todos, plan, checkpoints | todos, plans | plans | — | — |
| Own memory files | `AGENTS.md`, `memories/` | `AGENTS.md`, `memories/` | `CLAUDE.md` (global and per project), auto memory | `AGENTS.md`, `AGENTS.override.md`, `memories/` | `GEMINI.md`, rules, knowledge, brain artifacts | `~/.cursorrules` |
| Setup in the device profile | agents, commands, rules, prompts, skills, `AGENTS.md`, `SYSTEM.md` | same as omp | agents, commands, rules, output styles, skills, `CLAUDE.md` | prompts, skills, `AGENTS.md` | — | — |
| Gateway routing | ✓ | ✓ | ✓ | ✓ | — (traffic goes straight to Google) | — |
| Context hooks | ✓ | — | ✓ | ✓ | — | — |
| Org policy (tool and command rules) | ✓ (`tool_call` extension) | ✗ no tool hook | ✓ (`PreToolUse`) | ✓ (`PreToolUse`; prompt rules block; hosted web search not hookable) | ✗ no documented tool hook | ✗ no tool hook |
| Org policy instructions | ✓ | — | ✓ | ✓ | — | — |
| Org model rules and usage limits (gateway, 17.5.50+) | Anthropic and OpenAI Codex providers | Anthropic and OpenAI Codex providers | ✓ | ✓ | ✗ traffic goes straight to Google | ✗ not routed |
| Memory tools (MCP) | ✓ | — | ✓ | ✓ | — | `--harness=cursor` by hand |
| Runs from `SUPERPI_RUN_ID` | ✓ | — | ✓ | ✓ | — | — |
| Runs from subagents | ✓ | ✓ | ✓ | ✓ | — | — |
| Delegation target (`superpi run`, `delegate`) | `omp -p --mode json` | `pi -p --mode json` | `claude -p --output-format stream-json` | `codex exec --json` (read-only sandbox, git repos only) | `agy --output-format stream-json` (commands auto-denied) | — |

How each piece works: history, transcripts and runs in USAGE.md; the memory bank and `state/` in MEMORY_BANKING.md; setup and its switches in INSTALL.md.

**Cursor is not supported** beyond the two files named above. Its chats live in an editor database HarnessLink does not read, so Cursor prompts and turns are not captured or banked.

Collection runs inside the **HarnessLink service** (`hnl daemon run`, supervised by launchd, `systemd --user` or a logon task), which the CLI installs.
