Using the terminal · 09
Skills
riffer-rig reads Agent Skills: a directory per skill holding a SKILL.md, whose frontmatter names and describes the skill and whose body is the instructions. The model sees a catalog of skills and activates one when a task matches; you can also run one yourself with /skill:<name>.
Directories
The bundled skills extension reads skills from these directories, whichever exist:
.agents/skills/in each directory from the working directory up to the repository root — the project’s skills. Outside a Git repository, only the working directory’s.~/.agents/skills/— your skills for every project.
.agents/skills/ is where other agents such as Codex look too, so a repository’s skills work across tools.
.agents/skills/
review/
SKILL.md
---
name: review
description: Review a diff for bugs and style. Use when asked to review changes.
---
Read the diff, then…
The directory name must match name: lowercase letters, digits and single hyphens. When two directories hold a skill of the same name, the one closest to the working directory wins, and a project skill wins over one in ~/.agents/skills/. disable-model-invocation: true in the frontmatter keeps a skill out of the model’s catalog, while /skill:<name> still runs it.
The directories are scanned when the session starts and on every reload, so a skill added mid-session appears after the next one.
/skill:<name>
Every skill gets a command, /skill:<name> [text], in every host — the terminal, headless and ACP. It sends the skill’s body to the model as your message, followed by any text you give:
<skill_content name="review">
Read the diff, then…
</skill_content>
focus on lib/
Running a skill yourself doesn’t mark it as activated for the model; running it again sends the body again.
What the model sees
When at least one skill exists, the model gets a second system message listing each skill’s name and description, and a skill_activate tool to call when a request matches one. Activating a skill returns its body in the same <skill_content> tags. The skills the model activated are saved with the session and re-activated when you resume it, if they still exist.
Adding a source
An extension can add skills from anywhere with the rig.skills seam.
Disabling
Run with --no-skills, or disable skills in settings. There is then no catalog, no skill_activate tool and no /skill: commands.