Plugins & Skills
ak-coder can be extended in two ways:
| Extension | What it adds | Where |
|---|---|---|
| Plugin | New tools the LLM can call | .ak-coder/plugins/<name>/ |
| Skill | New slash commands (/mycommand) | Any SKILL.md in the workspace |
Plugins (MCP tools)
Plugins run as local MCP (Model Context Protocol) servers — spawned as child processes, communicating over stdio JSON-RPC. At startup, ak-coder discovers every plugin.json under .ak-coder/plugins/ and registers the plugin's tools as serverName__toolName.
Getting started: Building a Plugin
Key points:
- Use
@ak-coder/sdkandregisterTool()— install SDK viafile:…/packages/sdkfrom a local checkout; see Building a Plugin - Never write to stdout in plugin code — it's the JSON-RPC transport
- Optional
outputSchemavalidates handler output (warns on mismatch, does not abort) - Plugin tools do not yet support tool annotations — they always run sequentially
- Lifecycle hooks in
.ak-coder/hooks/can intercept writes and commands from core tools (not plugin internals)
See ADR 03: Plugin System & Hooks and ADR 07: Plugin Output Schema.
Skills (slash commands)
Skills are markdown instruction files loaded at startup and on reload. Typing /skills:<name> injects the skill body (plus any arguments) into the agent context.
Getting started: Skills
Key points:
- Any file named
SKILL.mdanywhere in the workspace is discovered automatically - Front-matter
namedrives the slash command;descriptionappears in/helpand tab completion /skills reloadrescans; editing aSKILL.mdvia write tools also triggers reload- Skills are instructions for the LLM — they do not add new executable tools
- Tab completion: type
/skills:+ Tab to pick a loaded skill