Docs
Refer friends. Keep the rewards coming!Your friend can unlock up to 10M tokens · earn up to 30% revenue share.
+500K TokensGenerate link

Skills and Plugins

Equip CrabCode with task-specific capability bundles: UI design, browser automation, code review, skill authoring. Sources include bundled, user/project dirs, and the official marketplace.

What it is

A skill is a SKILL.md plus optional scripts/assets that teaches CrabCode how to handle a specific task ("when doing UI design, follow these principles", "for browser automation, drive this CLI"). At startup CrabCode indexes available skills by their frontmatter description; the model picks one when relevant.

A plugin is a release unit that bundles one or more skills, slash commands, and hooks together. Installing one plugin may register several skills.

When you see this doc

  • The /plugin browse / install / manage screen
  • /skills listing currently loaded skills
  • /init recommending frontend-design / playwright / skill-creator
  • A /plugin install foo@bar error or marketplace parse failure

Four sources of skills

CrabCode loads skills from four places at startup:

SourcePath / formWhen
BundledShips with the CLI, no pathverify / debug / skillify / simplify / remember / keybindings / updateConfig / loremIpsum / batch / browserAutomation, etc. — no install needed
User directory~/.crabcode/skills/<name>/SKILL.mdFollows you across projects
Project directory<repo>/.crabcode/skills/<name>/SKILL.mdThis repo only; can be committed to share with the team
Plugin (marketplace)Installed via /plugin installThird-party / Acosmi official

Tools exposed by MCP servers also surface in the available-skills list with an mcp source tag — see MCP.

Install official plugins

The official marketplace is crabcode-plugins-official — registered automatically once signed in, no manual setup.

shell
/plugin                                                    # Main menu
/plugin install                                            # Browse all
/plugin install frontend-design@crabcode-plugins-official
/plugin install playwright@crabcode-plugins-official
/plugin install skill-creator@crabcode-plugins-official
/plugin                                                    # Main menu
/plugin install                                            # Browse all
/plugin install frontend-design@crabcode-plugins-official
/plugin install playwright@crabcode-plugins-official
/plugin install skill-creator@crabcode-plugins-official

CLI alternative (non-interactive):

bash
crabcode plugin install <plugin>@<marketplace>
crabcode plugin uninstall <plugin>
crabcode plugin enable|disable <plugin>
crabcode plugin update [<plugin>]
crabcode plugin list
crabcode plugin install <plugin>@<marketplace>
crabcode plugin uninstall <plugin>
crabcode plugin enable|disable <plugin>
crabcode plugin update [<plugin>]
crabcode plugin list
PluginPurpose
frontend-designDrives CrabCode toward distinctive UI; avoids generic AI aesthetics
playwrightReal-browser automation so CrabCode can screenshot and verify its own UI
skill-creatorBuild / refine your own skills with evals; after install run /skill-creator
code-review / reviewPR code review
security-reviewSecurity audit
crabcode-apiWhen writing Acosmi-API code, auto-applies prompt-caching best practices

Browse the full catalog with /plugin install.

Write your own skill

Directory layout

shell
~/.crabcode/skills/<skill-name>/
  SKILL.md            # Required: frontmatter + prompt body
  helpers/            # Optional scripts / assets (reference via @ in the prompt)
~/.crabcode/skills/<skill-name>/
  SKILL.md            # Required: frontmatter + prompt body
  helpers/            # Optional scripts / assets (reference via @ in the prompt)

For a project-scoped skill, swap the root for <repo>/.crabcode/skills/<skill-name>/ and commit it alongside .crabcode/settings.json so teammates pick it up.

SKILL.md frontmatter fields

FieldRequiredMeaning
nameInvocation name (also becomes the /<name> slash command)
descriptionOne-liner — the model decides whether to use the skill based on this
when_to_useLonger human note on when to trigger (not used by the model selector)
allowed-toolsRestrict tools this skill can call, e.g. Read,Edit,Bash(git*)
argument-hintArgument hint shown when invoking /skill-name
argumentsExplicit argument name list
modelForce a specific model for this skill; inherit follows the current session
effortThinking effort: off / high / max or integer
user-invocablefalse hides it from /<skill-name> (model-pick only)
disable-model-invocationtrue makes it user-only — model won't auto-select
pathsGlob list; activates only when matching files appear in this session (conditional skill)
versionVersion string you manage yourself
hooksSkill-local hook config (same shape as settings.json hooks)
shellDefault shell for command-type hooks
contextfork to run in a forked sub-context
agentRun via a specific agent type

Everything after the frontmatter is the prompt body injected into the model.

Full example

markdown
---
name: ship-checklist
description: Prep changes for release — run lint, check changelog, verify PR template
when_to_use: User says "prep release" / "PR health check", or after git commit before opening a PR
allowed-tools: Read,Bash(bun*),Bash(cargo*),Bash(git status*)
effort: high
---

## Steps
1. Run the project's `bun run lint` / `cargo clippy`
2. Check CHANGELOG has an entry for this version
3. Check commit message matches project conventions
4. Warn if there are uncommitted changes
---
name: ship-checklist
description: Prep changes for release — run lint, check changelog, verify PR template
when_to_use: User says "prep release" / "PR health check", or after git commit before opening a PR
allowed-tools: Read,Bash(bun*),Bash(cargo*),Bash(git status*)
effort: high
---

## Steps
1. Run the project's `bun run lint` / `cargo clippy`
2. Check CHANGELOG has an entry for this version
3. Check commit message matches project conventions
4. Warn if there are uncommitted changes

Saving the file takes effect immediately. Run /skills to confirm it loaded, then /<skill-name> to invoke it manually and verify the prompt injection.

Not sure where to start? Run the bundled skillify skill — it walks you through generating a SKILL.md interactively.

Priority and conflict resolution

At startup CrabCode loads skills in this order (earlier wins; later same-name entries are dropped):

  1. Managed (org-level policySettings)
  2. User (~/.crabcode/skills/)
  3. Project (<repo>/.crabcode/skills/)
  4. Additional (extra working directories)
  5. Plugin / Bundled / MCP

Duplicate same-name skills are logged as Skipping duplicate skill '<name>' to the debug log; launch with --debug to see the full loader trace.

Skill vs Hook vs MCP

All three extend CrabCode, but with different semantics:

FormTriggered byGood for
SkillModel picks based on description, or user runs /<name>"Workflow / approach for task X"
HookCrabCode auto-fires on lifecycle events (PreToolUse / PostToolUse / ...)"Force Z when event Y happens" (block / audit / auto-format)
MCP serverModel calls tools exposed by the server"Give the model a new capability" (DB queries, API integrations, ...)

Mixing is common — one plugin can ship a skill (teaches the model the approach) + a hook (PreToolUse to block dangerous ops) + an MCP server (adds new tools).

Custom marketplaces

Register your team's skill repo as a marketplace, then /plugin can install from it:

bash
crabcode plugin marketplace add my-team/skills           # GitHub owner/repo
crabcode plugin marketplace add git@example.com:.../repo # Any git URL
crabcode plugin marketplace add ./local/path             # Local directory
crabcode plugin marketplace list
crabcode plugin marketplace update [<name>]
crabcode plugin marketplace remove <name>
crabcode plugin marketplace add my-team/skills           # GitHub owner/repo
crabcode plugin marketplace add git@example.com:.../repo # Any git URL
crabcode plugin marketplace add ./local/path             # Local directory
crabcode plugin marketplace list
crabcode plugin marketplace update [<name>]
crabcode plugin marketplace remove <name>

Or declare in settings.json:

json
{
  "extraKnownMarketplaces": {
    "my-team": {
      "source": "github",
      "repo": "my-team/skills",
      "ref": "main"
    }
  }
}
{
  "extraKnownMarketplaces": {
    "my-team": {
      "source": "github",
      "repo": "my-team/skills",
      "ref": "main"
    }
  }
}

Supported marketplace source values: github / git / url / npm / file / directory / settings (inline manifest).

Limits and caveats

  • Read SKILL.md before installing: plugins may ship scripts and hooks — inspect the manifest first
  • Refresh: /plugin marketplace update <name> pulls latest; plugin bodies update via /plugin update
  • Scope: --scope user|project|local controls where it installs — project scope is committed via .crabcode/settings.json so teammates share it
  • Collisions: same-name skill loaded later overrides earlier (project > user > bundled)
  • Org policy: organizations can lock down allowed marketplaces and installable plugins via policySettings
  • /plugins is an alias for /plugin