Skip to navigation
AgentsSkills

Custom Skills

View as MarkdownOpen in Claude

You can create custom skills and register them from external directories or via pip packages.

External Directory

from signalwire.skills.registry import skill_registry
skill_registry.add_skill_directory("/opt/custom_skills")

Or set the SIGNALWIRE_SKILL_PATHS environment variable (colon-separated paths):

export SIGNALWIRE_SKILL_PATHS=/path/to/skills1:/path/to/skills2

Entry Points

Install skills as pip packages by defining entry points:

# In setup.py
setup(
name="my-skills-package",
entry_points={
"signalwire.skills": [
"weather = my_package.skills:WeatherSkill",
"stock = my_package.skills:StockSkill"
]
}
)

Entry-point skills cannot override built-in skills. If an entry-point skill uses the same SKILL_NAME as a built-in skill, it is skipped with an error log.

Listing Available Skills

from signalwire.skills.registry import skill_registry
# List all available skills
skills = skill_registry.list_skills()
for skill in skills:
print(f"{skill['name']}: {skill['description']}")
# Get complete schema for all skills (includes parameters)
schema = skill_registry.get_all_skills_schema()

For creating custom skills, see SkillBase.