What Is a Capability
Tuff uses the word capability for any building block you give a coding agent. Together, capabilities shape how an agent works in a project: what it knows, what it can do, what rules it must obey, and which multi-step flows it should follow.
Tuff manages these capability types:
| Capability | What it is | Feature status |
|---|---|---|
| skill | Written instructions the agent reads | Implemented |
| tool | Something the agent can run, with typed parameters | Implemented |
| mcp-server | An external MCP server, wired into every agent from one declaration | Implemented |
| hook | A command that runs automatically at a moment such as session start | Implemented |
| policy | Rules that narrow what an agent may do: commands, file reads and edits, MCP tools | Preview |
Every type is handled the same way. You install a capability once, and Tuff:
- writes it into each agent’s own folder, in that agent’s format,
- records what it wrote in
tuff.lock, - tells you when the installed files change or a newer version is available.
A capability usually describes itself in a tuff.toml file. Several capabilities can be bundled and shipped together as a pack.