anthropic-skilljar-extractor
Skill21 starsChanged 7 months agoMITView on GitHub
Extracts any Anthropic Academy (Skilljar) course into a structured markdown folder. Triggers when the user provides an anthropic.skilljar.com URL and asks to extract, research, download, or convert a course to markdown. Produces one markdown file per lesson organized into section folders, with course diagrams downloaded and described. Use when user says things like "extract this course", "convert to markdown", "deep research this skilljar link", or provides any anthropic.skilljar.com URL.
In this repository22 other files it gives its agents.
- 2d-pixel-assetSkill
- audio-to-midiSkill
- auto-researchSkill
- gemini-image-genSkill
- gemini-web-media-analysisSkill
- google-ai-studio-ttsSkill
- hermes-tweetSkill
- link-downloadSkill
- llama-cppSkill
- meta-muse-video-analysisSkill
- midi-synthSkill
- opencodeSkill
- seedanceSkill
- tech-product-landingSkill
- unreal-best-practicesSkill
- unreal-blueprint-codegenSkill
- unreal-gasSkill
- unreal-pcg-pythonSkill
- unreal-thirdpartySkill
- video-downloadSkill
- video-fetch-and-summarizeSkill
- video-summarizerSkill
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 5 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 34
Use the Read tool to view it visually
- Very specific: line 35
Add a detailed alt-text block and embed with !desc in the relevant lesson markdown
- Very specific: line 42
Add proper ## headings per concept
- Distinctive: line 45
Add tables for comparisons (e.g., message types, primitives)
- Distinctive: line 46
Keep the frontmatter block (Section, URL, Lesson Type)
- Distinctive: line 50
Add to the auto-generated README:
- Distinctive: line 67
If the course landing page itself requires login (script finds 0 lessons):
- Distinctive: line 68
Ask user to save the page HTML (browser → Save As → Webpage, HTML Only)
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Anthropic Skilljar Course Extractor
Step 1: Run the Extraction Script
python3 scripts/extract_course.py \
<skilljar_url> <output_dir>This produces:
<course-slug>/
├── README.md
├── 01-<section>/
│ ├── 01-<lesson>.md
│ └── ...
└── assets/images/ ← downloaded .webp diagramsStep 2: Describe Diagrams
For each full-size .webp in assets/images/ (not -medium.webp):
- Use the
Readtool to view it visually - Add a detailed alt-text block and embed with
in the relevant lesson markdown
Assign images to lessons based on topic — architecture diagrams go in intro lessons, code screenshots in hands-on lessons, summary slides in review lessons.
Step 3: Enrich Lesson Markdown
The script embeds bullet-point notes. Expand each lesson file:
- Add proper
##headings per concept - Format code examples in fenced code blocks with language tags
- Convert "Key: value" lines to
**Key:** valuebold format - Add tables for comparisons (e.g., message types, primitives)
- Keep the frontmatter block (Section, URL, Lesson Type)
Step 4: Enhance README
Add to the auto-generated README:
- Full course description paragraph
- Key concepts reference table
- Quick-reference code snippets
- Diagram index with one-line descriptions per image
How the Script Works (for debugging)
- Fetches page HTML; extracts
window.__chatData(LLM notes embedded in every Skilljar page) - Parses sidebar
<ul class="dp-curriculum">for section/lesson structure - Downloads CloudFront images from
d7juhi4i8fsw0.cloudfront.net/images/<slug>/ - Deduplicates lessons by URL (curriculum HTML appears twice in page source)
- Fuzzy-matches notes to lessons by title similarity
If Login Is Required
Individual lesson pages always require auth — do not fetch them. If the course landing page itself requires login (script finds 0 lessons):
- Ask user to save the page HTML (browser → Save As → Webpage, HTML Only)
- Modify script's
fetch()toopen(path).read()and pass the local file
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

