Skip to main content

What Is a Capability?

A capability is a self-contained folder in brain/cerebellum/ that gives Wolffish a new ability. Capabilities are how Wolffish learns to do things — run shell commands, read files, interact with git, search the web, send messages.

Two Types of Capabilities

Pure Skills

A SKILL.md file only. The markdown body contains instructions the LLM follows using its existing abilities. No code needed. Example: git/ — the LLM uses shell commands to run git operations based on the SKILL.md instructions.

Plugin Capabilities

A SKILL.md file plus a plugin/ folder with executable code. The plugin exports tools that the LLM can call directly. Example: shell/ — the plugin wraps child_process to provide a shell_exec tool.

Capability Folder Structure

brain/cerebellum/my-capability/
├── SKILL.md              # Required: frontmatter + instructions
└── plugin/               # Optional: executable code
    └── index.mjs         # Plugin entry point

How Capabilities Are Loaded

On startup, cerebellum.ts scans brain/cerebellum/ and for each folder:
  1. Reads and parses the SKILL.md frontmatter (YAML)
  2. Extracts tool definitions, danger patterns, confirm patterns, and triggers
  3. If a plugin/ folder exists, dynamic-imports plugin/index.mjs
  4. Calls init(context) on the plugin, passing pluginDir and workspaceRoot
  5. Registers all tools with the agent’s tool definitions

How Capabilities Are Selected

Plugin capabilities (with tools) are always included in the <tools> section — the LLM needs to know what tools it can call regardless of the message topic. Pure skills (no tools) are injected into a <skills> section only when the user’s message matches their trigger keywords. The cerebellum scores each skill by how many trigger keywords appear in the message and injects the top 3 matches. A trigger of "*" (wildcard) makes a pure skill always-on — it’s injected on every message without keyword matching and doesn’t count against the top-3 limit. Use this for skills that define agent-wide behaviour like planning discipline or output formatting.

Built-In Capabilities

Wolffish ships with these capabilities in the default workspace:
CapabilityTypeDescription
shellPluginExecute shell commands via shell_exec
filesystemPluginRead, write, and patch files
gitPure SkillGit operations via shell commands
introspectPluginSelf-awareness: status, channel connectivity, performance, memory
askPluginAsk you a multiple-choice question and wait for your pick
skillsPluginManage and author Wolffish’s own capabilities at runtime

Adding and Removing Capabilities

You can add your own capabilities two ways:
  • Drop them onto Settings → Cellebrum — a single SKILL.md, a folder, or a .zip. Each drop is validated before anything is written, then loaded immediately. Imported capabilities show an Unknown badge (they’re yours, not bundled) and can be removed with the trash icon, which cleanly deletes their folder.
  • Create the folder by hand under brain/cerebellum/, then click Resync in the panel (or restart Wolffish) to load it.
See Creating Capabilities for the full walkthrough, the three import shapes, and the rules an importable capability must follow.

Create Your Own

Learn how to build a new capability from scratch.