> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # SkillManager > Manages the lifecycle of skills attached to an agent. [ref-skillbase]: /docs/server-sdks/reference/typescript/agents/skill-base [ref-agentbase]: /docs/server-sdks/reference/typescript/agents/agent-base `SkillManager` handles loading, unloading, validation, and aggregation of skill tools, hints, global data, and prompt sections. You rarely interact with SkillManager directly — [`AgentBase`][ref-agentbase] delegates to it internally. Import it when you need direct control over skill lifecycle outside an agent. ```typescript {1} import { SkillManager } from '@signalwire/sdk'; ``` > **Note** > > Most users should use `AgentBase.addSkill()`, `AgentBase.removeSkill()`, and > `AgentBase.listSkills()` instead of interacting with SkillManager directly. ## **Properties** **`size`** `number` The number of currently loaded skill instances (getter). --- ## **Methods** #### [addSkill](/docs/server-sdks/reference/typescript/agents/skill-manager/add-skill) Add and initialize a skill instance (fails closed). #### [loadSkill](/docs/server-sdks/reference/typescript/agents/skill-manager/load-skill) Instantiate a skill class and add it; returns \[ok, error]. #### [loadSkillByName](/docs/server-sdks/reference/typescript/agents/skill-manager/load-skill-by-name) Look up a skill by name in the global registry and add it. #### [removeSkill](/docs/server-sdks/reference/typescript/agents/skill-manager/remove-skill) Remove a skill by key or ID. #### [removeSkillByName](/docs/server-sdks/reference/typescript/agents/skill-manager/remove-skill-by-name) Remove all instances of a named skill. #### [hasSkill](/docs/server-sdks/reference/typescript/agents/skill-manager/has-skill) Check if any skill with the given name is loaded. #### [hasSkillByKey](/docs/server-sdks/reference/typescript/agents/skill-manager/has-skill-by-key) Check if a skill with the given instance key is loaded. #### [listSkillKeys](/docs/server-sdks/reference/typescript/agents/skill-manager/list-skill-keys) List instance keys of all loaded skills. #### [getSkill](/docs/server-sdks/reference/typescript/agents/skill-manager/get-skill) Get a skill instance by key or ID. #### [listSkills](/docs/server-sdks/reference/typescript/agents/skill-manager/list-skills) List all loaded skill instances. #### [getAllTools](/docs/server-sdks/reference/typescript/agents/skill-manager/get-all-tools) Aggregate tool definitions from all skills. #### [getAllPromptSections](/docs/server-sdks/reference/typescript/agents/skill-manager/get-all-prompt-sections) Aggregate prompt sections from all skills. #### [getAllHints](/docs/server-sdks/reference/typescript/agents/skill-manager/get-all-hints) Aggregate speech recognition hints. #### [getMergedGlobalData](/docs/server-sdks/reference/typescript/agents/skill-manager/get-merged-global-data) Merge global data from all skills. #### [getLoadedSkillEntries](/docs/server-sdks/reference/typescript/agents/skill-manager/get-loaded-skill-entries) Get metadata for all loaded skills. #### [clear](/docs/server-sdks/reference/typescript/agents/skill-manager/clear) Remove all skills. #### [loadedSkills](/docs/server-sdks/reference/typescript/agents/skill-manager/loaded-skills) Read-only map of loaded skill instances (getter). ## **Example** ```typescript {3,5-6} import { SkillManager, DateTimeSkill, MathSkill } from '@signalwire/sdk'; const manager = new SkillManager(); await manager.addSkill(new DateTimeSkill()); await manager.addSkill(new MathSkill()); console.log(`${manager.size} skills loaded`); console.log(manager.listSkills()); ``` > Manages the lifecycle of skills attached to an agent. ## Docs - [addSkill](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/add-skill.md): Add and initialize a skill instance. Fails closed on invalid config. - [clear](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/clear.md): Remove all skills and call cleanup on each. - [getAllHints](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/get-all-hints.md): Aggregate speech recognition hints from all loaded skills. - [getAllPromptSections](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/get-all-prompt-sections.md): Aggregate prompt sections from all loaded skills. - [getAllTools](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/get-all-tools.md): Aggregate tool definitions from all loaded skills. - [getLoadedSkillEntries](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/get-loaded-skill-entries.md): Get metadata for all loaded skills. - [getMergedGlobalData](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/get-merged-global-data.md): Merge global data from all loaded skills into a single object. - [getSkill](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/get-skill.md): Get a skill instance by key or ID. - [hasSkill](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/has-skill.md): Check if a skill is currently loaded. - [hasSkillByKey](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/has-skill-by-key.md): Check if a skill with the given instance key is loaded. - [listSkillKeys](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/list-skill-keys.md): List instance keys of all currently loaded skills. - [listSkills](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/list-skills.md): List all loaded skill instances. - [loadedSkills](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/loaded-skills.md): Read-only view of all loaded skill instances keyed by instance key. - [loadSkill](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/load-skill.md): Instantiate a skill class and add it; returns a [success, error] tuple. - [loadSkillByName](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/load-skill-by-name.md): Look up a skill class in the global registry by name and load it. - [removeSkill](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/remove-skill.md): Remove a skill by its instance key or ID. - [removeSkillByName](https://signalwire.com/docs/server-sdks/reference/typescript/agents/skill-manager/remove-skill-by-name.md): Remove all skill instances matching a given name.