configs/claude-code/skills/package-skill/SKILL.md
Package a Claude Code skill directory into a distributable .skill file. Use when the user wants to export, package, bundle, zip, or distribute a skill. Triggers on mentions of .skill files, packaging skills, exporting skills, or sharing skills.
npx skillsauth add poorrican/dotfiles package-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Package a Claude Code skill directory into a distributable .skill file.
A .skill file is a zip archive containing a complete skill directory. It preserves the directory structure so the recipient can install it by unzipping into their skills location.
my-skill.skill (zip archive)
└── my-skill/
├── SKILL.md # Required
├── reference/ # Optional nested docs
│ └── *.md
└── *.sh / *.py # Optional scripts
Identify the skill to package. Ask the user which skill directory to package. Check both locations:
.claude/skills/*/SKILL.md~/.claude/skills/*/SKILL.mdValidate the skill directory. Before packaging, verify:
SKILL.md exists and has valid YAML frontmatter (name: and description: fields)reference/*.md, scripts) actually existreference/guide.md).env files, or credentials are includedchmod +x)Run pre-package checks. Report to the user:
Create the .skill file. Package the skill:
cd <parent-of-skill-dir> && zip -r <output-path>/<skill-name>.skill <skill-dir-name>/
The zip must contain the skill directory as the top-level entry (not loose files).
Verify the package. After creating:
unzip -l <skill-name>.skill
Confirm the structure looks correct.
Report the result. Tell the user:
unzip <name>.skill -d ~/.claude/skills/unzip <name>.skill -d .claude/skills/The SKILL.md must have valid frontmatter with at least:
---
name: skill-name
description: When to use this skill...
---
Optional frontmatter fields:
allowed-tools: — restricts which tools the skill can useAll file references in SKILL.md must be relative to the skill directory. Flag these patterns as errors:
/Users/..., /home/..., ~/....claude/skills/skill-name/reference/...configs/..., src/...Correct pattern: reference/guide.md, create_profile.sh
Do not include in the package:
.DS_Store files__pycache__/ directories.env or credentials files.git/ directoriesUse zip exclusion flags:
zip -r <output>.skill <dir>/ -x "*.DS_Store" -x "*__pycache__/*" -x "*.env" -x "*/.git/*"
To install a .skill file:
# Personal (available in all projects):
unzip skill-name.skill -d ~/.claude/skills/
# Project-specific:
unzip skill-name.skill -d .claude/skills/
The skill is available immediately — no restart needed.
Place the .skill file in the current working directory unless the user specifies otherwise.
content-media
Create, read, edit .pptx decks, slides, notes, templates.
content-media
Create, read, edit .pptx decks, slides, notes, templates.
documentation
Extract text from PDFs/scans (pymupdf, marker-pdf).
documentation
Extract text from PDFs/scans (pymupdf, marker-pdf).