Skip to main content

Harnesses

A harness is a coding agent Tome targets. Tome supports five: Claude Code, Cursor, Codex, Gemini CLI, and OpenCode. Running

tome harness use <name>

translates your enabled plugins into that harness's native configuration. Tome keeps each harness in sync as you enable or disable plugins.

What tome harness use writes

For every harness, Tome reconciles three sinks, in this order: hooks → guardrails (rules) → agents. What lands depends on what the harness supports:

  • Rules file — a prose fallback (rendered from each plugin's GUARDRAILS.md) written as per-plugin marker regions in the harness's rules file. Tome only ever edits inside its own markers, so your hand-written content is left alone.
  • MCP server config — wiring so the harness can reach tome mcp for search and skill loading.
  • Native agents — each plugin agent translated to the harness's native agent format, where the harness has one.
  • Hooks — event-driven actions, where the harness supports them.

Per-harness summary

HarnessRules sinkNative agentsNative hooks
Claude CodeCLAUDE.mdyesyes (real JSON hooks)
Cursorrules file (+ a Tome-owned sibling)yes
CodexAGENTS.mdyes
Gemini CLIrules fileno (no native agents)
OpenCoderules fileyes

Per-harness caveats

  • Claude Code — the rules sink is CLAUDE.md (not AGENTS.md). Hooks are written as real JSON hooks, merged structurally into .claude/settings.local.json — never the committed settings.json. Agent personas can optionally be exposed as MCP prompts (off by default).
  • Cursor — Tome maintains the rules file and a Tome-owned sibling rules file; the sibling is removed when it would otherwise be empty.
  • Codex — the rules sink is AGENTS.md. Native agents are supported.
  • Gemini CLI — has no native agent format, so agents are not translated natively; rules and MCP wiring still apply. Where agent personas are needed, use the MCP-prompt path.
  • OpenCode — native agents are supported. OpenCode's rules file uses an inline body style for the managed regions.

Inspecting and removing

tome harness list # show configured harnesses
tome harness info <name> # show what Tome manages for a harness
tome harness sync # re-write native config from current state
tome harness remove <name> # remove Tome-managed config for a harness

Bare tome harness opens an interactive picker. For repairing a harness's configuration, see Troubleshooting and tome doctor.