Adding an agent integration
Agent support is built from the agent vendor’s own documentation, never from guesses. docs/agents.md is the source of truth. Each row records:
- the MCP config path and format,
- the hook events and how they block or add context,
- the instructions file,
- the distribution mechanism (plugin, extension, or directory listing),
- a link to the vendor documentation that confirms the row.
The adapter
Section titled “The adapter”Each agent is one entry in the registry in
src/agents/mod.rs:
- how to detect it: project files, executables on
PATH, directories in the home directory; - where its MCP config lives (project and user-wide) and in which format
(
McpFormat); - if it has a hook adapter, its hook file, layout (
HookLayout) and events; - its instruction file, the trust step only the user can take, and what Tessera cannot do for it yet.
tessera init reads the registry; nothing else needs to change for an
agent whose config formats already exist.
- Confirm the agent’s MCP config location and format, and its hook contract (event names, input JSON, how a hook blocks or adds context), in its documentation.
- Add or update the agent’s row in
docs/agents.md, with the source link. Mark anything the documentation does not confirm as unverified, and do not implement it. - Add the registry entry. If its hook output has a new shape, add an
Agentvariant insrc/hook/mod.rsand its arms inrender(andsilentif it needs JSON on every run). New payload field names go insrc/hook/payload.rs. - Add tests: a recorded payload from the vendor docs through
tessera hook <agent> <event>intests/hook.rs, and the agent inevery_hook_adapter_is_wired_in_its_documented_shapeintests/init.rs. - Add the agent to the table in hooks.md and to integrations.md.
Use the agent integration issue template to claim an agent.