# Creating Custom Skills 🛠
OpenSoul is designed to be easily extensible. "Skills" are the primary way to add new capabilities to your assistant.
# What is a Skill?
A skill is a directory containing a SKILL.md file (which provides instructions and tool definitions to the LLM) and optionally some scripts or resources.
# Step-by-Step: Your First Skill
# 1. Create the Directory
Skills live in your workspace, usually ~/.opensoul/workspace/skills/. Create a new folder for your skill:
mkdir -p ~/.opensoul/workspace/skills/hello-world# 2. Define the SKILL.md
Create a SKILL.md file in that directory. This file uses YAML frontmatter for metadata and Markdown for instructions.
---
name: hello_world
description: A simple skill that says hello.
---
# Hello World Skill
When the user asks for a greeting, use the `echo` tool to say "Hello from your custom skill!".# 3. Add Tools (Optional)
You can define custom tools in the frontmatter or instruct the agent to use existing system tools (like bash or browser).
# 4. Refresh OpenSoul
Ask your agent to "refresh skills" or restart the gateway. OpenSoul will discover the new directory and index the SKILL.md.
# Best Practices
- Be Concise: Instruct the model on what to do, not how to be an AI.
- Safety First: If your skill uses
bash, ensure the prompts don't allow arbitrary command injection from untrusted user input. - Test Locally: Use
opensoul agent --message "use my new skill"to test.
# Shared Skills
You can also browse and contribute skills to ClawHub.