> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qredence.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Extensions

> Ship your own package that adds tools, slash commands, shortcuts, or UI to Fleet Prime Agent.

Extensions are the escape hatch. Anything you can't do with a skill or a built-in tool, you can do with an extension.

## What an extension can register

* **Tools** — new `AgentTool` implementations 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

Implement `ExtensionRuntime` and `ExtensionAPI` from `packages/coding-agent/src/core/extensions/`. Two hard rules:

1. **Degrade locally.** An optional feature that fails to load must not block agent startup or session attach. Log, disable, move on.
2. **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

```bash theme={null}
prime-agent --extension @your-org/your-extension
```

Or wire it into your config so it loads every time. Disable all extensions for a run with `--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.

Skills are built on top of extensions — every skill registers as an extension under the hood.

## MCP is an extension

MCP servers ship as extensions. See [MCP integration](/fleet-prime-agent/guides/mcp).

## Related

* [Tools, skills, and extensions](/fleet-prime-agent/concepts/tools-and-extensions).
* [Daemon protocol](/fleet-prime-agent/reference/daemon-protocol) — capability gates for extension features that change daemon behavior.
