What an extension can register
- Tools — new
AgentToolimplementations the model can call. - Slash commands — new commands next to
/refine,/login, etc. - Shortcuts — keyboard shortcuts in interactive clients.
- UI extensions — components rendered by the web adapter through
ExtensionUIContext.
Contract
ImplementExtensionRuntime and ExtensionAPI from packages/coding-agent/src/core/extensions/. Two hard rules:
- Degrade locally. An optional feature that fails to load must not block agent startup or session attach. Log, disable, move on.
- Update the adapter when the surface changes. If your extension exposes new UI, the web adapter has to know about it — they’re released in lockstep.
Load an extension
--no-extensions.
Extensions vs skills
- Reach for a skill when the “code” is instructions or a small Python module.
- Reach for an extension when you need a new tool, a new slash command, or UI hooks.
MCP is an extension
MCP servers ship as extensions. See MCP integration.Related
- Tools, skills, and extensions.
- Daemon protocol — capability gates for extension features that change daemon behavior.