Skip to content

Skills

Skills are reusable prompt expansions that the agent can load on demand. They extend the agent’s capabilities without modifying its core tools. The format follows the Agent Skills open standard.

Use the /skills command to open a checkbox picker where you can enable or disable installed skills:

/skills

Ask the agent to install a skill by name. The built-in skill-manager handles searching, downloading, and installing:

You: install skill: apple-notes

The agent will:

  1. Search for the skill (via web search or known repositories).
  2. Download it to a staging area (~/.fermi/skills/.staging/).
  3. Inspect and validate the skill definition.
  4. Move it to the skills directory.
  5. The skill becomes available automatically on the next turn.

Skills are automatically discovered from disk at every turn. Installing, removing, or modifying skills takes effect immediately — no manual reload step is needed.

Skills live in ~/.fermi/skills/:

~/.fermi/skills/
skill-name/
SKILL.md # Required: YAML frontmatter + markdown instructions
scripts/ # Optional: helper scripts
references/ # Optional: reference docs
.staging/ # Temporary work area (not loaded as a skill)

A skill is a directory containing a SKILL.md file. The file has YAML frontmatter followed by markdown instructions.

---
name: lowercase-hyphenated-name
description: One-line description of when to use this skill
disable-model-invocation: false # Optional: true = only user can invoke via /name
user-invocable: true # Optional: false = hidden from / menu, agent-only
---
Markdown instructions here.
FieldRequiredDescription
nameYesLowercase letters, numbers, and hyphens only. Must start with a letter or number.
descriptionYesOne-line description of when the skill should be used.
disable-model-invocationNoIf true, only the user can invoke this skill (via /name). Default: false.
user-invocableNoIf false, the skill is hidden from the / menu and only the agent can use it. Default: true.

Skills can accept arguments from the user:

  • $ARGUMENTS — the full argument string
  • $ARGUMENTS[0], $ARGUMENTS[1], or $0, $1 — positional arguments

Here is a simple skill that explains code with diagrams:

---
name: explain-code
description: Explains code with diagrams and step-by-step analysis.
---
When explaining code, follow this structure:
1. **Analogy**: Compare the code's behavior to something from everyday life
2. **Diagram**: Draw an ASCII diagram showing the flow, structure, or relationships
3. **Step-by-step walkthrough**: Walk through what happens at each stage
4. **Common pitfall**: Highlight one non-obvious mistake or misconception
If $ARGUMENTS refers to a specific file, read it first and then explain it.

Ask the agent to remove it, or delete the directory manually:

rm -rf ~/.fermi/skills/skill-name

The skill is removed automatically on the next turn.

ActionHow
Install from GitHubAsk the agent: “install skill: name”
Create customWrite a SKILL.md in ~/.fermi/skills/name/
Enable/disable/skills command
RemoveDelete the directory (auto-detected next turn)

The skill-manager is a special skill that comes bundled with Fermi. It is not user-invocable (you do not call it directly). Instead, it activates automatically when you ask the agent to find, install, or manage skills.

The skill manager knows how to:

  • Search for skills via web search
  • Clone repositories to the staging area
  • Inspect and validate SKILL.md files
  • Move skills from staging to the active directory
  • Clean up git metadata
  • Activate changes automatically (skills are auto-discovered each turn)