GuidesSkills

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

ExtensionDescription
.mdMarkdown files
.txtPlain text files
.jsonJSON data files
.yamlYAML configuration
.ymlYAML configuration (alternate)
.xmlXML documents

Code

ExtensionDescription
.jsJavaScript
.tsTypeScript
.pyPython
.shShell scripts

Configuration

ExtensionDescription
.tomlTOML configuration
.iniINI configuration
.env.exampleEnvironment variable templates

Templates

ExtensionDescription
.hbsHandlebars templates
.mustacheMustache templates
.ejsEJS templates
.htmlHTML files

Special Binary Files

These binary file types are explicitly allowed:

ExtensionDescription
.ttfTrueType fonts
.pdfPDF documents
.gzGzip compressed files

Size Limits

LimitValue
Individual file10 MB maximum
Total Skill size100 MB maximum

File Validation

During upload, files are validated for:

  1. Extension check - File must have an allowed extension
  2. Binary detection - Non-whitelisted files are checked for binary content
  3. Size check - File must be under 10 MB
  4. 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 binary

Invalid 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 allowed

Working 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 (.sql not 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.

On this page