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 tuffcliThe lifecycle Tuff manages
Agent capabilities are useful only if a team can tell what is installed, where it came from, and whether it changed.
Start a new skill, tool, hook, or workflow, or bring existing agent files under management without rewriting their content.
Record source, version, scope, harness, emitted path, and the clean install baseline in project state.
Compare the current files against the baseline so intentional edits are visible and accidental drift is not silent.
Accept deliberate local changes, merge upstream updates where possible, and fail CI when tracked capabilities are not in the expected state.
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.
Operational Features
The parts that matter after day one.
Run the check in CI and fail the build on drift, not after it's already shipped.
GitHub ActionsTuff 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 initGenerate a full report of every installed capability, its source, and its policy status, right from the CLI, no hosted service required.
tuff generate report