Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Example custom agent skill — a template to get started.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | -49% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -61% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -40% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -49% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -42% | 0% |
This is a template for creating a custom agent skill.
There are two valid skill patterns in the current architecture:
No script field in frontmatter. This SKILL.md is injected into the LLM's context when activate_skill is called. The LLM then uses built-in atomic tools (read, write, append, list, grep, ask_env) to accomplish the task.
This is the primary extension mechanism — like Claude Code's slash commands.
Add script: scripts/my-script.py to frontmatter. The script is executed as a cached in-process module via entrypoint(argv, ctx) when available, with dynamic wrapper/subprocess fallback. It should communicate via the returned stdout string and file I/O under ctx.workspace_root. Scripts cannot access the LLM or environment router directly — use this only for deterministic computation.
When this skill is activated:
ask_env to query the environment for relevant information.read / write / append to persist state.execute_skill_script for deterministic computation when a script exists.finish with a summary when finished.When activated, the agent should:
ask_env with instruction: "What happened recently? Summarize recent events."read path journal.jsonl to load previous entries if it exists.append path journal.jsonl to add today's entry.finish with summary of what was journaled.Other measured skills in the registry, with their headline benchmark lift.