For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Log inSign up
Support
GuidesReference
GuidesReference
    • Core
      • Overview
    • Agents
      • Overview
      • AgentBase
      • AgentServer
      • BedrockAgent
      • CLI Tools
      • Configuration
      • ContextBuilder
      • DataMap
      • FunctionResult
      • Helper Functions
      • LiveWire
      • MCP Gateway
      • PomBuilder
      • Prefabs
      • Search
      • SkillBase
      • Skills
        • api_ninjas_trivia
        • claude_skills
        • Custom Skills
        • datasphere
        • datasphere_serverless
        • datetime
        • google_maps
        • info_gatherer
        • joke
        • math
        • mcp_gateway
        • native_vector_search
        • play_background_file
        • spider
        • swml_transfer
        • weather_api
        • web_search
        • wikipedia_search
      • SWAIGFunction
      • SWMLBuilder
      • SWMLService
      • WebService
    • RELAY
      • Overview
      • Actions
      • Call
      • Constants
      • Events
      • Message
      • RelayClient
      • RelayError
    • REST Client
      • Overview
      • Addresses
      • Calling
      • Chat
      • Compat
      • Datasphere
      • Fabric
      • Imported Numbers
      • Logs
      • Lookup
      • MFA
      • Number Groups
      • Phone Numbers
      • Project
      • PubSub
      • Queues
      • Recordings
      • Registry
      • RestClient
      • Short Codes
      • SignalWireRestError
      • SIP Profile
      • Verified Callers
      • Video
LogoLogoSignalWire Docs
Log inSign up
Support
On this page
  • skills_path
  • include
  • exclude
  • tool_prefix
  • prompt_title
  • prompt_intro
  • skill_descriptions
  • response_prefix
  • response_postfix
  • allow_shell_injection
  • allow_script_execution
  • ignore_invocation_control
  • shell_timeout
AgentsSkills

claude_skills

|View as Markdown|Open in Claude|
Was this page helpful?
Edit this page
Previous

Custom Skills

Next
Built with

Load Claude Code-style SKILL.md files as agent tools. Each SKILL.md file in the configured directory becomes a SWAIG function, with YAML frontmatter parsed for metadata.

Tools: Dynamically created from SKILL.md files

Requirements: PyYAML

Multi-instance: Yes

skills_path
strRequired

Path to the directory containing Claude skill folders. Each subfolder must contain a SKILL.md file.

include
listDefaults to ["*"]

Glob patterns for skill folder names to include.

exclude
listDefaults to []

Glob patterns for skill folder names to exclude.

tool_prefix
strDefaults to claude_

Prefix for generated function names. Use an empty string for no prefix.

prompt_title
strDefaults to Claude Skills

Title for the prompt section that lists available skills.

prompt_intro
strDefaults to You have access to specialized skills. Call the appropriate tool when the user's question matches:

Introductory text for the prompt section.

skill_descriptions
dictDefaults to {}

Override descriptions for specific skills. Keys are skill names, values are description strings.

response_prefix
str

Text to prepend to skill results.

response_postfix
str

Text to append to skill results.

allow_shell_injection
boolDefaults to False

Enable shell command preprocessing in skill bodies. Security warning: allows arbitrary shell execution.

allow_script_execution
boolDefaults to False

Discover and list scripts/ and assets/ files in prompt sections.

ignore_invocation_control
boolDefaults to False

Override disable-model-invocation and user-invocable frontmatter flags. When True, all discovered skills are registered regardless of invocation control.

shell_timeout
intDefaults to 30

Timeout in seconds for shell injection commands.

1from signalwire import AgentBase
2
3class MyAgent(AgentBase):
4 def __init__(self):
5 super().__init__(name="assistant", route="/assistant")
6 self.set_prompt_text("You are a helpful assistant.")
7 self.add_skill("claude_skills", {
8 "skills_path": "/path/to/skills/directory",
9 "tool_prefix": "skill_"
10 })
11
12agent = MyAgent()
13agent.serve()