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
      • Configuration
      • ContextBuilder
      • DataMap
      • FunctionResult
      • Helper Functions & Utilities
      • LiveWire
      • PomBuilder
      • Prefabs
      • SkillBase
      • SkillManager
      • SkillRegistry
        • addSearchPath
        • clear
        • create
        • discoverAll
        • discoverFromDirectory
        • getAllSkillsSchema
        • getInstance
        • getSearchPaths
        • getSkillClass
        • getSkillSchema
        • has
        • listAllSkillSources
        • listRegistered
        • listSkills
        • lock
        • register
        • resetInstance
        • unregister
      • Skills
      • SwaigFunction
      • SwmlBuilder
      • SWMLService
    • RELAY
      • Overview
      • Actions
      • Call
      • Constants
      • Events
      • Message
      • RelayClient
      • RelayError
    • REST Client
      • Overview
      • Addresses
      • Calling
      • ChatResource
      • Compat
      • Datasphere
      • Fabric
      • ImportedNumbersResource
      • Logs
      • LookupResource
      • MFA
      • Number Groups
      • Phone Numbers
      • Project
      • PubSubResource
      • Queues
      • Recordings
      • Registry
      • RestClient
      • RestError
      • Short Codes
      • SIP Profile
      • Verified Callers
      • Video
LogoLogoSignalWire Docs
Log inSign up
Support
On this page
  • Methods
  • Properties
  • Example
Agents

SkillRegistry

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

addSearchPath

Next
Built with

SkillRegistry is a global singleton for registering, discovering, and instantiating skills by class reference. Skills can be registered programmatically by passing the class itself (the registry reads metadata from static class properties like SKILL_NAME), or auto-discovered from directories via the SIGNALWIRE_SKILL_PATHS environment variable.

1import { SkillRegistry } from '@signalwire/sdk';

Methods

getInstance

Get the global singleton instance.

register

Register a skill class.

create

Create a skill instance from the registry.

has

Check if a skill name is registered.

unregister

Remove a skill registration.

lock

Lock skill names to prevent overwriting.

listRegistered

List all registered skill names.

addSearchPath

Add a directory for skill discovery.

getSearchPaths

Get all skill search paths.

discoverFromDirectory

Discover skills from a directory.

discoverAll

Discover skills from all search paths.

getSkillSchema

Get a skill’s parameter schema.

getAllSkillsSchema

Get schemas for all registered skills.

listAllSkillSources

List skills grouped by source.

clear

Remove all registrations.

getSkillClass

Look up a registered skill class by name.

listSkills

List all registered skills with full metadata.

resetInstance

Reset the global singleton (test helper).

Properties

size
number

The number of currently registered skills (getter).

Example

1import { SkillRegistry, SkillBase } from '@signalwire/sdk';
2
3const registry = SkillRegistry.getInstance();
4registry.register(MySkill); // class reference — name read from MySkill.SKILL_NAME
5console.log(registry.listRegistered()); // ['my-skill', ...]
6
7// Create an instance from the registry
8const skill = registry.create('my-skill', { apiKey: 'abc' });