You have 3 options to upload the .zip file:
# Set your API key (one-time setup)
export ANTHROPIC_API_KEY=sk-ant-...
# Package and upload automatically
python3 cli/package_skill.py output/react/ --upload
# OR upload existing .zip
python3 cli/upload_skill.py output/react.zip
✅ Fully automatic | No manual steps | Requires API key
# Package the skill
python3 cli/package_skill.py output/react/
# This will:
# 1. Create output/react.zip
# 2. Open output/ folder automatically
# 3. Show clear upload instructions
# Then upload manually to https://claude.ai/skills
✅ No API key needed | Works for everyone | Simple
In Claude Code, just say:
"Package and upload the React skill"
# Automatically packages and uploads!
✅ Natural language | Fully automatic | Best UX
The .zip file contains:
steam-economy.zip
├── SKILL.md ← Main skill file (Claude reads this first)
└── references/ ← Reference documentation
├── index.md ← Category index
├── api_reference.md ← API docs
├── pricing.md ← Pricing docs
├── trading.md ← Trading docs
└── ... ← Other categorized docs
Note: The zip only includes what Claude needs. It excludes:
.backup filesThe package script:
output/steam-economy/)output/ directoryExample:
python3 cli/package_skill.py output/steam-economy/
📦 Packaging skill: steam-economy
Source: output/steam-economy
Output: output/steam-economy.zip
+ SKILL.md
+ references/api_reference.md
+ references/pricing.md
+ references/trading.md
+ ...
✅ Package created: output/steam-economy.zip
Size: 14,290 bytes (14.0 KB)
python3 cli/doc_scraper.py --config configs/steam-economy.json
Output:
output/steam-economy_data/ (raw scraped data)output/steam-economy/ (skill directory)python3 cli/enhance_skill_local.py output/steam-economy/
What it does:
Output:
output/steam-economy/SKILL.md (enhanced)output/steam-economy/SKILL.md.backup (original)python3 cli/package_skill.py output/steam-economy/
Output:
output/steam-economy.zip ← THIS IS WHAT YOU UPLOADoutput/steam-economy.zipMinimum required structure:
your-skill/
└── SKILL.md ← Required! Claude reads this first
Recommended structure:
your-skill/
├── SKILL.md ← Main skill file (required)
└── references/ ← Reference docs (highly recommended)
├── index.md
└── *.md ← Category files
Optional (can add manually):
your-skill/
├── SKILL.md
├── references/
├── scripts/ ← Helper scripts
│ └── *.py
└── assets/ ← Templates, examples
└── *.txt
The package script shows size after packaging:
✅ Package created: output/steam-economy.zip
Size: 14,290 bytes (14.0 KB)
Typical sizes:
Claude has generous size limits, so most documentation-based skills fit easily.
python3 cli/package_skill.py output/steam-economy/
# Package all skills in output/
for dir in output/*/; do
if [ -f "$dir/SKILL.md" ]; then
python3 cli/package_skill.py "$dir"
fi
done
unzip -l output/steam-economy.zip
# Extract to temp directory
mkdir temp-test
unzip output/steam-economy.zip -d temp-test/
cat temp-test/SKILL.md
# Make sure you scraped and built first
python3 cli/doc_scraper.py --config configs/steam-economy.json
# Then package
python3 cli/package_skill.py output/steam-economy/
# Check what skills are available
ls output/
# Use correct path
python3 cli/package_skill.py output/YOUR-SKILL-NAME/
Most skills are small, but if yours is large:
# Check size
ls -lh output/steam-economy.zip
# If needed, check what's taking space
unzip -l output/steam-economy.zip | sort -k1 -rn | head -20
Reference files are usually small. Large sizes often mean:
When you upload a skill zip:
references/*.md filesAfter uploading steam-economy.zip:
You ask: "How do I implement microtransactions in my Steam game?"
Claude:
# Get your API key from https://console.anthropic.com/
export ANTHROPIC_API_KEY=sk-ant-...
# Add to your shell profile to persist
echo 'export ANTHROPIC_API_KEY=sk-ant-...' >> ~/.bashrc # or ~/.zshrc
# Upload existing .zip
python3 cli/upload_skill.py output/react.zip
# OR package and upload in one command
python3 cli/package_skill.py output/react/ --upload
The upload tool uses the Anthropic /v1/skills API endpoint to:
"ANTHROPIC_API_KEY not set"
# Check if set
echo $ANTHROPIC_API_KEY
# If empty, set it
export ANTHROPIC_API_KEY=sk-ant-...
"Authentication failed"
"Upload timed out"
Upload fails with error
What you need to do:
python3 cli/doc_scraper.py --config configs/YOUR-CONFIG.jsonpython3 cli/enhance_skill_local.py output/YOUR-SKILL/python3 cli/package_skill.py output/YOUR-SKILL/ --uploadpython3 cli/doc_scraper.py --config configs/YOUR-CONFIG.jsonpython3 cli/enhance_skill_local.py output/YOUR-SKILL/python3 cli/package_skill.py output/YOUR-SKILL/.zipWhat you upload:
.zip file from output/ directoryoutput/steam-economy.zipWhat's in the zip:
SKILL.md (required)references/*.md (recommended)That's it! 🚀