Skip to content

Agent Skills

fast-agent supports Agent Skills, and adds them from the following directories by default:

  • .fast-agent/skills
  • .agents/skills
  • .claude/skills

When valid SKILL.md files are found:

  • The Agent is given shell access with the working directory set to the workspace root.
  • Skill descriptions from the manifest and path are added to the System Prompt using the {{agentSkills}} template variable. A warning is displayed if this is not present in the System Prompt.
  • The /skills command lists the available skills.
  • If duplicate skill names exist across directories, later directories override earlier ones, and a warning message is shown. (Use /status from an ACP Client to view).

Skill Management

Skills installed from any git repo (local or remote) can be automatically updated.

Skills over MCP

Thanks to Ola Hungerford, fast-agent has early access support for MCP SEP-2640: Skills over MCP

Installing Skills

Skills can be installed, updated and removed from the CLI or TUI with the skills command.

To view available skills from the current marketplace, use /skills add to display a list. Supply either a path, repository URL, or skill name/index to install a skill.

Use /skills update to check current versions and install updates.

You can also install a skill directly from a GitHub SKILL.md URL or a local skill directory/file:

/skills add https://github.com/org/repo/blob/main/skills/example/SKILL.md
/skills add ./skills/example
/skills add ./skills/example/SKILL.md
fast-agent skills add https://github.com/org/repo/blob/main/skills/example/SKILL.md
fast-agent skills add ./skills/example
fast-agent skills add ./skills/example/SKILL.md

For direct installs, fast-agent reads SKILL.md first and uses the manifest name as the canonical install directory. Skills names must follow the format specified in the agentskills.io specification.

Registries and Marketplaces

fast-agent can install skills from online registries published in the Claude plugin format. By default, three registries are configured:

To browse and install skills from the marketplace:

/skills add
fast-agent skills add

This displays available skills with numbers. Install by name or number:

/skills add 1
/skills add skill-name
fast-agent skills add 1
fast-agent skills add skill-name

Removing Skills

Remove installed skills:

/skills remove skill-name
/skills remove 1
fast-agent skills remove skill-name
fast-agent skills remove 1

Managing Registries

In the TUI, view the current registry and available registries:

/skills registry

Example output:

# skills registry

Registry: https://github.com/huggingface/skills

Available registries:
- [1] https://github.com/huggingface/skills
- [2] https://github.com/anthropics/skills

Usage: `/skills registry [number|URL]`

In the TUI, switch registries by number or provide a custom URL:

/skills registry 2
/skills registry https://github.com/my-org/my-skills

For CLI commands, pass --registry to browse or install from a specific registry for that invocation:

fast-agent skills available --registry https://github.com/my-org/my-skills
fast-agent skills add skill-name --registry https://github.com/my-org/my-skills

Configuration

Configure skill directories and registries in fast-agent.yaml:

skills:
  directories:
    - ".fast-agent/skills"
  marketplace_urls:
    - "https://github.com/huggingface/skills"
    - "https://github.com/anthropics/skills"

See the Configuration Reference for details.

Command Line Options

If using fast-agent interactively from the command line, the --skills <directory> switch can be used to specify the directory containing skills. The --home <path> flag lets you relocate the entire home (including the default skills folder).

# Specify a skills folder and a model
fast-agent go --skills ~/skill-development/testing/ --model "gpt-5-mini?reasoning=low"

# Give fast-agent access to the shell
fast-agent go -x

Config File

Use skills.directories to set multiple skills directories. When provided (even as an empty list), the default search paths are not used.

skills:
  directories:
    - ~/skills/team
    - ./skills/local

Programmatic Usage

Skills directories can be defined on a per-agent basis:

from fast_agent.constants import DEFAULT_SKILLS_PATHS

# Define the agent
@fast.agent(instruction=default_instruction, skills=DEFAULT_SKILLS_PATHS + ["~/source/skills"])
async def main():
    # use the --model command line switch or agent arguments to change model
    async with fast.run() as agent:
        await agent.interactive()

This allows each individual agent to use a different set of skills if needed. To disable skills for an agent, pass skills=[].