Harnesses and Scope
tuff harness
Section titled “tuff harness”A harness is the coding agent product Tuff installs for, such as Claude Code or Codex. Its id, such as claude, is what -a selects.
Configure the default harness
Section titled “Configure the default harness”# Project defaulttuff harness set-default open-agents
# Global defaulttuff harness set-default claude --globalCommands that accept -a/--harness use this value when the flag is omitted.
An explicit -a always overrides the default, and repeated flags apply an
operation to several harnesses.
List available and registered harnesses
Section titled “List available and registered harnesses”tuff harness list
# Show the global defaulttuff harness list --globalThe REGISTERED column shows which harnesses are available for Tuff operations in
the selected config. The DEFAULT column shows which registered harness is used
when -a/--harness is omitted.
Register a harness
Section titled “Register a harness”tuff harness add open-agentstuff harness add claudetuff harness add codextuff harness add cursortuff harness add opencodeRegistering a harness also creates its project directory (.agents/ or
.claude/) if it does not already exist.
claude-code remains an alias for claude. codex, cursor, and opencode are dedicated adapter IDs. opencode takes policies and MCP servers, and tuff init does not register it.
Remove a harness
Section titled “Remove a harness”tuff harness remove open-agentsUnregisters the harness from the project configuration. It does not delete
capabilities, emitted files, baselines, MCP registrations, or lockfile entries.
Use tuff delete <id> or tuff untrack <id> for the configured default
agent. Pass -a <agent> when selecting a different agent.
Tuff supports two scopes:
| Scope | Location | Use |
|---|---|---|
project |
tuff.lock in repo root |
Shared with team via version control |
global |
Tuff user state directory | Available across all projects |
Resolution order: project always wins. If the same primitive exists at both scopes,
the project copy shadows the global one. tuff status flags shadowed primitives.
See Scopes & Overrides for more.