Agent Skills
fast-agent supports Agent Skills, and looks for them in either the .fast-agent/skills or .claude/skills folder.
When valid SKILL.md files are found:
- The Agent is given access to an
executetool for running shell commands, with the working directory set to the skills folder. - Skill descriptions from the manifest and path are added to the System Prompt using the
{{agentSkills}}expansion. A warning is displayed if this is not present in the System Prompt. - The
/skillscommand lists the available skills.
Skill Marketplace
fast-agent can install skills from online registries. By default, two registries are configured:
Installing Skills
Use the /skills add command to browse and install skills from the marketplace:
This displays available skills with numbers. Install by name or number:
Removing Skills
Remove installed skills with /skills remove:
Managing Registries
View the current registry and available registries:
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]`
Switch registries by number or provide a custom URL:
Configuration
Configure skill directories and registries in fastagent.config.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..
# Specify a skills folder and a model
fast-agent --skills ~/skill-development/testing/ --model gpt-5-mini.low
# Give fast-agent access to the shell
fast-agent -x
Programmatic Usage
Skills directories can be defined on a per-agent basis:
# Define the agent
@fast.agent(instruction=default_instruction, skills=["~/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.