Filesystem-based skill provider for the Agent Skills format (https://agentskills.io)
Project description
agentskills-fs
Local filesystem skill provider for the Agent Skills SDK.
Serves Agent Skills from a local directory tree. Each subdirectory containing a SKILL.md file is a skill.
Installation
pip install agentskills-fs
Requires Python 3.12+. Installs agentskills-core and pyyaml as dependencies.
Expected Directory Layout
skills/
├── incident-response/
│ ├── SKILL.md # YAML frontmatter + markdown body
│ ├── references/ # supplementary docs (optional)
│ ├── scripts/ # executable scripts (optional)
│ └── assets/ # diagrams, data files (optional)
└── another-skill/
└── SKILL.md
Usage
from pathlib import Path
from agentskills_core import SkillRegistry
from agentskills_fs import LocalFileSystemSkillProvider
provider = LocalFileSystemSkillProvider(Path("./skills"))
registry = SkillRegistry()
await registry.register("incident-response", provider)
skill = registry.get_skill("incident-response")
meta = await skill.get_metadata()
body = await skill.get_body()
script = await skill.get_script("page-oncall.sh")
The provider reads files synchronously (local disk I/O is fast for small skill files) but exposes an async interface to satisfy the SkillProvider contract.
Security
- Path-traversal protection - Skill IDs and resource names are validated to stay within the root directory. Attempts to escape (e.g.
../../etc/passwd) raiseSkillNotFoundErrororResourceNotFoundError. - File size limits - Files exceeding 10 MB (default) are rejected before reading into memory. Configure via the
max_file_bytesparameter. - Error-message sanitization - Error messages reference the
skill_idrather than full filesystem paths, preventing internal path leakage.
For the full security policy, see SECURITY.md.
API
LocalFileSystemSkillProvider(root, *, max_file_bytes=10_485_760)
| Parameter | Type | Default | Description |
|---|---|---|---|
root |
Path |
- | Path to the directory containing skill subdirectories |
max_file_bytes |
int |
10_485_760 (10 MB) |
Maximum allowed file size in bytes |
| Method | Returns | Description |
|---|---|---|
get_metadata(skill_id) |
dict[str, Any] |
Parsed YAML frontmatter from SKILL.md |
get_body(skill_id) |
str |
Markdown body after the frontmatter |
get_script(skill_id, name) |
bytes |
Raw content of a script file |
get_asset(skill_id, name) |
bytes |
Raw content of an asset file |
get_reference(skill_id, name) |
bytes |
Raw content of a reference file |
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentskills_fs-0.2.2.tar.gz.
File metadata
- Download URL: agentskills_fs-0.2.2.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.1 CPython/3.13.9 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5b9dd5191357379f6904d4f0928b8a9bba3834f3b1811cff9d573f055a21200
|
|
| MD5 |
71162af805984cf6bb1d618ff0c1eb9e
|
|
| BLAKE2b-256 |
1ccfbbc8a31faf7c5ba8a6b568d8aa05f695bd9af318531217ab701b696cd51c
|
File details
Details for the file agentskills_fs-0.2.2-py3-none-any.whl.
File metadata
- Download URL: agentskills_fs-0.2.2-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.1 CPython/3.13.9 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
448bb05475971beae965df0919bb1afba66fd9396cfa0b67e778f2f62cc543ce
|
|
| MD5 |
88fbc9182d3f305f1c891d04f07cd72c
|
|
| BLAKE2b-256 |
181887a17eeaabbd91d6ea7ab1c8782ccaf9fbd65d98694215ff37575c4db03a
|