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.