> For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

# loadedSkills

> Read-only view of all loaded skill instances keyed by instance key.

[ref-listskillkeys]: /docs/server-sdks/reference/typescript/agents/skill-manager/list-skill-keys

[ref-getskill]: /docs/server-sdks/reference/typescript/agents/skill-manager/get-skill

Read-only getter exposing every loaded skill instance keyed by its instance
key (e.g., `"weather"` or `"weather#main_tool"` for multi-instance skills).
Use this to iterate or inspect loaded skills without mutating the internal
map.

Python equivalent: `self.loaded_skills` (public `Dict[str, SkillBase]`).

<Note>
  The returned `ReadonlyMap` is a live view of the internal map, not a copy.
  Iterating concurrently with `addSkill()` / `removeSkill()` can see updates
  as they happen. For a snapshot of skill keys, use
  [`listSkillKeys()`][ref-listskillkeys]; for a single lookup, use
  [`getSkill()`][ref-getskill].
</Note>

## **Type**

`ReadonlyMap<string, SkillBase>`

## **Example**

```typescript {5}
import { AgentBase } from '@signalwire/sdk';

const agent = new AgentBase({ name: 'demo' });
await agent.addSkillByName('weather');
await agent.addSkillByName('datetime');

const manager = agent.getSkillManager();
for (const [key, skill] of manager.loadedSkills) {
  console.log(`${key} -> ${(skill.constructor as typeof skill).SKILL_NAME}`);
}
```