> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Fetch Remote Skill Dirs • AI Agent SDK

> fetch_remote_skill_dirs: Fetch all remote skill sources and return validated cache directories.

# fetch\_remote\_skill\_dirs

<div className="flex items-center gap-2">
  <Badge color="teal">Function</Badge>
</div>

> This function is defined in the [**remote**](../modules/remote) module.

Fetch all remote skill sources and return validated cache directories.

## Signature

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
def fetch_remote_skill_dirs(sources: Any, cache_dir: Optional[Path]) -> List[Path]
```

## Parameters

<ParamField query="sources" type="Any" required={true}>
  Iterable of URL strings, `&#123;"url","ref"&#125;` dicts, or objects implementing `fetch(cache_dir)`.
</ParamField>

<ParamField query="cache_dir" type="Optional[Path]" required={false}>
  Override cache root (defaults to the shared remote cache).
</ParamField>

### Returns

<ResponseField name="Returns" type="List[Path]">
  Existing local directories holding fetched skills. Directories with no
  valid skill are dropped. Failures are logged and skipped, never raised.
</ResponseField>

## Uses

* `get_remote_cache_root`
* `root.mkdir`
* `impl.fetch`
* `Path`
* `p.exists`
* `p.is_dir`
* `logger.warning`

## Used By

* [`discover_skills`](../functions/discover_skills)

## Source

<Card title="View on GitHub" icon="github" href="https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/skills/remote.py#L182">
  `praisonaiagents/skills/remote.py` at line 182
</Card>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Skills Concept" icon="wand-magic-sparkles" href="/docs/docs/concepts/skills" />

  <Card title="Skills Feature" icon="star" href="/docs/docs/features/skills" />
</CardGroup>
