Accepted Files
File types and extensions allowed in Skills.
Skills can contain various file types to support your workflows. This page documents all accepted file extensions and size limits.
Allowed File Extensions
Documents
| Extension | Description |
|---|---|
.md | Markdown files |
.txt | Plain text files |
.json | JSON data files |
.yaml | YAML configuration |
.yml | YAML configuration (alternate) |
.xml | XML documents |
Code
| Extension | Description |
|---|---|
.js | JavaScript |
.ts | TypeScript |
.py | Python |
.sh | Shell scripts |
Configuration
| Extension | Description |
|---|---|
.toml | TOML configuration |
.ini | INI configuration |
.env.example | Environment variable templates |
Templates
| Extension | Description |
|---|---|
.hbs | Handlebars templates |
.mustache | Mustache templates |
.ejs | EJS templates |
.html | HTML files |
Special Binary Files
These binary file types are explicitly allowed:
| Extension | Description |
|---|---|
.ttf | TrueType fonts |
.pdf | PDF documents |
.gz | Gzip compressed files |
Size Limits
| Limit | Value |
|---|---|
| Individual file | 10 MB maximum |
| Total Skill size | 100 MB maximum |
File Validation
During upload, files are validated for:
- Extension check - File must have an allowed extension
- Binary detection - Non-whitelisted files are checked for binary content
- Size check - File must be under 10 MB
- Path safety - No path traversal (
..) or absolute paths
Excluded Files
The following are automatically excluded:
Hidden Files
Files and directories starting with . are ignored:
.git/.env.DS_Store.gitignore
Binary Files
Most binary executables are not allowed for security reasons:
.exe,.dll,.so.png,.jpg,.gif(images).mp3,.mp4(media).zip,.tar(archives, except.gz).db,.sqlite(databases)
Examples
Valid Skill Structure
my-skill/
├── SKILL.md ✅ Required manifest
├── requirements.txt ✅ Text file
├── scripts/
│ ├── process.py ✅ Python script
│ ├── utils.js ✅ JavaScript
│ └── run.sh ✅ Shell script
├── templates/
│ └── output.hbs ✅ Handlebars template
├── reference/
│ └── guide.md ✅ Markdown
└── fonts/
└── custom.ttf ✅ Allowed binaryInvalid Files
my-skill/
├── SKILL.md ✅
├── image.png ❌ Binary image not allowed
├── data.xlsx ❌ Excel not allowed
├── archive.zip ❌ Zip not allowed
└── app.exe ❌ Executable not allowedWorking with Unsupported Files
Large Data Files
For data files over 10 MB:
- Host externally and download at runtime
- Split into smaller chunks
- Use compressed formats (
.gz)
Images and Media
For image/media assets:
- Host on external CDN
- Reference URLs in your scripts
- Use text descriptions in templates
Databases
For database files:
- Use JSON or CSV for static data
- Connect to external databases at runtime
- Export schemas as SQL files (
.sqlnot currently supported)
Requesting New Extensions
If you need a file extension that isn't currently supported, please reach out on Discord. We review requests based on:
- Security implications
- Common use cases
- Alternative solutions available
Error Messages
"File has unsupported extension"
File "image.png" has unsupported extension ".png".Solution: Remove the file or convert to a supported format.
"File appears to be binary"
File "data.bin" appears to be binary. Only text files are allowed.Solution: Rename with correct extension or remove if binary.
"File exceeds size limit"
large-file.json exceeds the 10MB file size limit.Solution: Reduce file size, split into smaller files, or host externally.
"Skill exceeds total size limit"
Skill exceeds the 100MB total size limit.Solution: Remove unnecessary files, compress where possible, or host large assets externally.