docs / agent skill

Agent skill

Drop krabs into your agent in one file. skill.md contains everything an agent needs to operate krabs end-to-end — primitives, transports, auth, voice rules, common operations, and error recovery.

Download skill.md ↗View source~7 KB · v0.4.3

What's a skill

A skill is a single Markdown file with a YAML frontmatter that an agent host can ingest as durable knowledge. The format originated with Claude Code (Anthropic's CLI), but the convention is generic enough that you can load it into any agent runtime as a system message, a tool description, or static context.

krabs-skill.md is the one we publish — it carries the verb/noun vocabulary, the three transports, the auth flow, the voice rules, and the common operations agents will need most.

versioned, stable URL
https://krabs.dev/skill.md always returns the current skill for the current API version. Pin a version with ?v=0.4.3 if you want to lock.

Install in Claude Code

Drop the file into your Claude Code skills directory:

mkdir -p ~/.claude/skills/krabs
curl -fsSL https://krabs.dev/skill.md -o ~/.claude/skills/krabs/SKILL.md

Claude Code picks it up next time you start a session. Invoke the skill with /krabs or let Claude decide based on the description in the frontmatter.

Use as a raw prompt

For hosts that don't natively support skills (custom agents, raw API calls, LangChain, etc.) prepend the file to your system message:

SKILL = fetch("https://krabs.dev/skill.md").text()
messages = [
  { role: "system", content: SKILL },
  { role: "user",   content: userPrompt },
]

The agent now has the full krabs vocabulary in context. Token cost is ~2k tokens.

Fetch at runtime

The skill changes with each minor version. If your agent calls krabs in production and you want to track the latest contract automatically, fetch the skill at startup and cache it for the session:

# Bash
SKILL=$(curl -fsSL https://krabs.dev/skill.md)

# Node
const skill = await (await fetch("https://krabs.dev/skill.md")).text()

# Python
skill = httpx.get("https://krabs.dev/skill.md").text

What's inside

The skill covers everything an agent needs to operate krabs without prior context:

  • How to invoke krabs over each transport (MCP, CLI, HTTP) with copyable snippets.
  • The 7 primitives (contact, identity, interaction, deal, task, note, tag) with id prefixes.
  • How to mint and rotate auth tokens. Where to send the user for the device flow when the agent doesn't have one.
  • The five contract guarantees: intent, idempotency, dry-run, schema introspection, reversible audit.
  • Common operations with concrete commands (upsert, attach identity, create deal, undo).
  • All error codes (auth_*, rate_limited, not_found, conflict, validation) with recovery hints.
  • krabs voice rules so user-facing copy the agent writes stays on-brand (lowercase product name, no marketing softeners, sentence case, no emoji).

Prefer MCP for live tools

The skill is static knowledge. The MCP server (mcp.krabs.dev) is live execution. If your host supports both, do both:

  • Mount the MCP server so the agent has actual callable tools.
  • Load the skill so the agent has the conceptual model, voice rules, and recovery logic.

MCP without the skill works — but the agent will likely call tools without the voice or error-handling sophistication krabs expects.

skill drift
If you self-host or fork the skill, set a calendar reminder to re-sync against krabs.dev/skill.md at every minor version. Drift between your skill and the live contract is a slow source of bugs.
Edit this page on GitHub →last updated 2026-05-16 · v0.4.3