tuff

Capability lifecycle manager for coding agents.

A CLI for teams that keep agent capabilities version-controlled in the repo: install a capability, record where it came from, catch local edits before they cause a bad run, and emit the exact capability version each harness needs to behave as expected.

$uv tool install tuffcli

The lifecycle Tuff manages

Agent capabilities are useful only if a team can tell what is installed, where it came from, and whether it changed.

Create or add

Start a new skill, tool, hook, or workflow, or bring existing agent files under management without rewriting their content.

Track

Record source, version, scope, harness, emitted path, and the clean install baseline in project state.

Diff

Compare the current files against the baseline so intentional edits are visible and accidental drift is not silent.

Update or check

Accept deliberate local changes, merge upstream updates where possible, and fail CI when tracked capabilities are not in the expected state.

~/tuff
$ tuff init
created tuff.lock
registered open-agents as the default harness
installed tuff-cli-guide
$ tuff create skill project-review
tracked .agents/skills/project-review/SKILL.md
$ tuff diff project-review
modified since baseline
$ tuff check
project-review skill open-agents ok

The things agents load should be first-class project assets

Tuff treats these as managed files, not magic settings hidden inside one developer's local harness.

Write once, emit per harness

Tuff compiles a canonical manifest into whatever file shape each agent harness expects natively.

type: hook
event: PreToolUse
runner: ./lint.sh
blocking: true
compile
claude-code .claude/hooks.json
cursor .cursor/hooks.yaml
codex .codex/hooks.json

Operational Features

The parts that matter after day one.

01CI Integration

Run the check in CI and fail the build on drift, not after it's already shipped.

GitHub Actions
02Tuff Skills

Tuff ships as a skill itself. The agent learns the CLI and hook spec on install, so it writes manifests and runs commands for you instead of you doing it by hand.

tuff init
03Audit Reports

Generate a full report of every installed capability, its source, and its policy status, right from the CLI, no hosted service required.

tuff generate report