The open-source Claude skill that turns any content into installable Claude skills — no code, no CLI, no setup.
An open-source alternative to manual skill creation. Drop in any file and get a production-ready skill back.
# 1. Install via the Skills CLI (works with Claude Code, Cursor, Codex, and 40+ agents)
npx skills add skillforgeai-dev/content-to-skill
# 2. Use — just talk to Claude
"Turn this PDF into a skill" # attach any file
"万物皆可skill,转成skill" # works in Chinese tooThat's it. No API keys, no config, no dependencies. It runs natively inside Claude.
Prefer a manual install? See Installation below for
git cloneoptions.
You have knowledge scattered everywhere — podcast transcripts, PDF whitepapers, team playbooks, Excel workflows, tutorial videos. You want Claude to use that knowledge, not just read it once.
content-to-skill bridges the gap: any content in → structured, reusable Claude skill out.
What makes it different:
- Zero friction — runs inside Claude (Claude Code, Cowork, Claude.ai). No terminal, no Python, no setup.
- Smart classification — auto-detects whether your content should become a Knowledge-type skill (analysis frameworks, reference guides) or an Action-type skill (executable workflows). You can override anytime.
- Full skill structure — generates not just SKILL.md, but also
commands/,scripts/,references/,hooks/, andagents/when the content warrants it. - 10+ input formats — text, PDF, DOCX, PPTX, XLSX, CSV, audio, video, URLs, images, social media posts, mixed batches.
- Truly multilingual — detects input language, writes the skill body in that language. Non-English skills get bilingual descriptions automatically.
- Quality-checked — every generated skill passes a 12-point checklist before delivery.
flowchart LR
subgraph input [Your Content]
PDF["PDF"]
Video["Video"]
Audio["Audio"]
PPTX["PPTX"]
XLSX["XLSX"]
URL["URL"]
Text["Text"]
Image["Image"]
end
subgraph pipeline [6-Step Pipeline]
Intent["0. Parse Intent"]
Ingest["1. Ingest"]
Classify["2. Classify"]
Lang["3. Language"]
Generate["4. Generate"]
QC["5. Quality Check"]
end
subgraph output [Claude Skill]
SKILL["SKILL.md"]
Refs["references/"]
Scripts["scripts/"]
Cmds["commands/"]
end
input --> Intent --> Ingest --> Classify --> Lang --> Generate --> QC --> output
Detailed pipeline (click to expand)
| Step | What happens | Tools used |
|---|---|---|
| 0. Parse Intent | Detect user instructions vs. raw content | — |
| 1. Ingest | Extract text from any format | pypdf, pandoc, markitdown, whisper, openpyxl, vision |
| 2. Classify | Knowledge-type or Action-type? | Auto-detect with user override |
| 3. Language | Match input language, bilingual description if non-English | — |
| 4. Generate | Create SKILL.md + optional references/, scripts/, commands/ | Templates A (Knowledge) / B (Action) |
| 5. Quality Check | 12-point checklist validation | kebab-case, examples, bilingual desc, etc. |
| 6. Package | Deliver skill ready to install | package_skill.py |
This is what sets content-to-skill apart from every other tool. Instead of dumping content into a single template, it classifies your content and generates the right structure:
| Knowledge-type | Action-type | |
|---|---|---|
| Purpose | Structured reference for analysis | Executable workflow that produces output |
| Best for | Articles, research, opinions, frameworks | Tutorials, how-tos, templates, processes |
| Structure | Framework → Concepts → Analysis → Output Template | Prerequisites → Steps → I/O → Verification |
| Example | "Analyze risks using Dalio's Big Cycle" | "Deploy staging step by step" |
Most tools output a single SKILL.md file. content-to-skill generates a full skill structure when the content warrants it:
<skill-name>/
├── SKILL.md # Core instructions (required, always generated)
├── references/ # Detailed docs, lookup tables (when content > 500 lines)
│ ├── setup-guide.md
│ └── api-reference.md
├── scripts/ # Helper scripts for deterministic tasks
│ └── health_check.py
├── commands/ # Slash commands for distinct sub-workflows
│ ├── deploy-staging.md
│ └── rollback.md
├── hooks/ # Auto-triggers on file edits or tool use
└── agents/ # Sub-agent definitions for complex workflows
When does each component get generated?
| Component | Generated when... | Example |
|---|---|---|
SKILL.md |
Always | Every skill |
references/ |
Content > 500 lines or multiple sub-topics | Large tutorials, multi-chapter guides |
scripts/ |
Deterministic tasks that benefit from code | Data processing, API calls, calculations |
commands/ |
Distinct sub-workflows users invoke independently | Deploy skill with /deploy-staging and /deploy-prod |
hooks/ |
Skill should auto-trigger on file edits or tool use | Lint skill that runs on every file save |
agents/ |
Workflow complex enough for role separation | Review skill with architect + security agents |
See examples/api-deploy-workflow/ for a complete multi-file example with commands, scripts, and references.
Example 1: Podcast Transcript → Prompt Engineering Skill (Knowledge-type)
Input: 45-min podcast transcript — expert discusses prompt engineering (interview format, lots of chit-chat).
Command: "turn this podcast transcript into a skill"
What happens: Detects English, conversational content → classifies as Knowledge-type → extracts actionable techniques, removes chit-chat → organizes by theme, attributes ideas to speaker.
Output — prompt-engineering-best-practices/:
prompt-engineering-best-practices/
├── SKILL.md # Core techniques + decision framework
└── references/
├── prompt-templates.md # 6 reusable templates
└── evaluation-framework.md # How to test prompt quality
Generated SKILL.md covers: context-setting over raw instructions, chain-of-thought vs. direct prompting, few-shot "diversity > quantity" rule, prompt decomposition, 3 anti-patterns, 2 worked before/after examples.
Example 2: Chinese Learning Guide → Pomodoro Study Skill (Action-type, bilingual)
Input: 2000-word Chinese article about using Pomodoro Technique for studying.
Command: "帮我把这个番茄工作法指南转成skill"
What happens: Detects Chinese, tutorial content → classifies as Action-type → writes body in Chinese, frontmatter in English → bilingual description.
Output — pomodoro-learning/:
---
name: pomodoro-learning
description: >
Guide students through Pomodoro Technique study sessions with
科学时间管理方法指导,帮助学生使用番茄工作法高效学习。
---Generated SKILL.md covers: 5-step workflow (plan → timer → execute → short break → long break), difficulty adaptation (15min hard / 40min easy), Anki integration, common mistakes, 2 scenario examples.
Example 3: Excel Budget Template → Financial Planning Skill (Action-type with scripts)
Input: .xlsx quarterly budget template with revenue forecasting formulas.
Command: "This Excel template has a great budgeting workflow. Convert it into a skill."
What happens: Reads sheet structure, headers, formulas → classifies as Action-type → extracts formula chain as steps → converts conditional formatting into decision points.
Output — quarterly-budget-planning/:
quarterly-budget-planning/
├── SKILL.md # Budget planning workflow
└── scripts/
└── budget_calculator.py # Automated calculations from formulas
Generated SKILL.md covers: prerequisites, 6-step workflow (revenue → expenses → margins → variance → forecast → report), decision tree, verification steps, 2 scenario examples (SaaS + retail).
Browse examples/ for 5 real generated skills showcasing diverse input formats: text article, multi-file PDF workflow, Twitter/X URL, podcast audio, and video interview.
8 slash commands give you granular control over the pipeline:
| Command | Description |
|---|---|
/to-skill |
One-click convert — the main entry point |
/skill-ingest |
Extract content only (no classification) |
/skill-classify |
Analyze and recommend Knowledge vs Action |
/skill-generate |
Generate skill with custom instructions |
/skill-knowledge |
Force Knowledge-type |
/skill-action |
Force Action-type |
/skill-batch |
Batch process multiple inputs |
/skill-package |
Package into installable .skill file |
Most users only need /to-skill — it chains the full pipeline automatically. The other commands exist for power users who want step-by-step control.
Most tooling in this space falls into one of two camps: standalone CLIs that scrape docs/repos (great for batch ingestion, but you leave the chat) or repo-to-skill converters (great for GitHub code, but only for code). content-to-skill lives in a third spot:
- Runs natively inside Claude — no
pip install, no API keys, no CLI context-switch. Drop a file into the chat and ask. - Knowledge/Action auto-classification — the only converter that picks a structural template instead of dumping content into a single shape.
- Broadest input surface — PDF, DOCX, PPTX, XLSX, audio, video, URLs, images, social posts, and mixed batches, not just code repos.
- Multi-file output — generates
commands/,scripts/,references/,hooks/, andagents/when the content warrants it, not just a loneSKILL.md. - Bilingual by default — detects input language, writes the body in that language, and auto-generates a bilingual frontmatter description for non-English skills.
Sweet spot: You already use Claude and want to turn any content — not just repos — into skills without leaving the conversation.
npx skills add skillforgeai-dev/content-to-skillThe skills CLI (vercel-labs/skills) symlinks the skill into the agent directory of whatever Claude-compatible tool you're using.
git clone https://github.com/skillforgeai-dev/content-to-skill.git ~/.claude/skills/content-to-skillgit clone https://github.com/skillforgeai-dev/content-to-skill.git .claude/skills/content-to-skillAfter installing, just talk to Claude: "Turn this PDF into a skill" or /to-skill.
content-to-skill/
├── SKILL.md # Core skill instructions
├── commands/ # 8 slash commands
│ ├── to-skill.md # One-click entry point
│ ├── skill-ingest.md # Content extraction
│ ├── skill-classify.md # Knowledge vs Action
│ ├── skill-generate.md # Generation with instructions
│ ├── skill-knowledge.md # Force knowledge-type
│ ├── skill-action.md # Force action-type
│ ├── skill-batch.md # Batch processing
│ └── skill-package.md # Package .skill file
├── scripts/
│ └── transcribe.py # Whisper-based audio/video transcription
├── examples/ # 5 example skills
│ ├── git-rebase-workflow/ # Text input → Action skill (end-to-end demo)
│ ├── api-deploy-workflow/ # PDF input → Action skill (multi-file output)
│ ├── context-engineering-guide/ # Twitter/X URL → Knowledge skill
│ ├── optimal-study-protocols/# Audio input → Action skill
│ └── ai-industry-insights/ # Video input → Knowledge skill
├── assets/
│ └── demo.svg # Animated demo
├── .github/
│ ├── scripts/
│ │ └── validate_skill.py # Skill quality validator
│ └── workflows/
│ └── validate-skill.yml # CI: validates all SKILL.md files
├── docs/
│ └── README-zh.md # Chinese documentation
├── CLAUDE.md # AI agent guidance
├── CONTRIBUTING.md
├── LICENSE (MIT)
└── .gitignore
- Claude power users building a personal skill library from their reading, watching, and learning
- Team leads encoding team knowledge (onboarding docs, playbooks, runbooks) into reusable skills
- Non-developers who want skill power without touching a terminal
- Content creators shipping tutorials, courses, or guides as installable skills
- Multilingual users — especially Chinese speakers — who need native language support
We'd love your help! See CONTRIBUTING.md for guidelines.
Good first issues:
- Add a new input format handler (Notion export, Obsidian vault, RSS feed)
- Add an example skill to
examples/ - Improve classification heuristics for edge cases
- Translate a command file to a new language
- Report a skill quality issue with a test case
MIT — see LICENSE for details.