Skip to main content
Skills are documentation bundles that teach the agent how to interact with specific protocols. They are not executable code — they are structured markdown files (SKILL.md) that describe request formats, constraints, and prompt patterns for the underlying adapters.

How Skills Work

When a user prompt arrives, the agent runner detects relevant skills based on keywords and loads their SKILL.md content into the Claude context window. This gives the model protocol-specific knowledge it needs to correctly construct tool calls. Built-in skills include: arb-trade, gmx, camelot, pendle, aave, kyan, rwa-stocks, and timeboost-bid.

Creating a Skill

1

Create the SKILL.md file

Every skill is a single markdown file with a specific structure. Create a new directory under skills/ and add a SKILL.md:
The file follows this format:
Key sections:
  • Header (# Name) — parsed as the skill name
  • Metadata (version:, author:, keywords:) — used for indexing
  • When to Use — helps the agent decide when to load this skill
  • Request Format — teaches the agent correct parameter construction
  • Constraints — defines hard limits the agent must respect
  • Examples — few-shot examples for accurate tool call generation
2

Register in the skill loader

Add your skill to the built-in skills registry in packages/skills/src/loader.ts:
The skill loader fetches and caches SKILL.md files from these URLs. During development, you can also load skills from a local file path or any HTTP URL.
3

Add a protocol adapter (optional)

If your skill requires new on-chain interactions, create an adapter in packages/adapters/src/:
Export it from the adapters package barrel:
4

Add a tool to the MCP server (optional)

If you want the skill accessible through Claude Code, add a tool definition to apps/mcp-server/src/index.ts:
Then handle the tool in the dispatchTool switch statement.
5

Test the skill

Verify the skill loads correctly:
Send a test prompt to the agent that should trigger skill detection:

External Skills

The skill loader also supports external skills hosted anywhere on the web. Users can install them with natural language:
The loader automatically converts GitHub tree URLs to raw content URLs and fetches the SKILL.md file. External skills are cached for one hour. Pre-registered external skill sources include:

Listing Available Skills

Query the API to see all registered skills:
This returns both built-in and external skills with their names, URLs, and source type.