SYuan03/Skill-Anything

Any source (PDF, video, web, audio, text) to interactive learning package with quizzes, flashcards and spaced repetition. One command, 12-section study guide.

Skill‑Anything

What it is – A Python CLI / library that turns any kind of source material (PDF, video, web page, plain‑text file, audio, or a code repository) into a structured study pack. The pack contains a 12‑section learning guide, quizzes, flashcards, exercises, a glossary, a concept‑map image, and optionally an AI‑agent skill (SKILL.md) that can be consumed by tools like Claude Code, Cursor, or Codex.

Why it matters – Human learning suffers from passive reading. Skill‑Anything automates the whole pipeline that educators normally do manually: summarising, extracting key concepts, generating active‑recall items, and organising a learning path. All of this is driven by LLM calls (any OpenAI‑compatible API) and can be run entirely offline once the pack is generated.


Core features (as described in the README)

  • Source‑agnostic ingestion – PDF (outline‑aware), web pages, YouTube/video transcripts, audio (Whisper), plain text, or an entire Git repo.
  • Section‑aware map‑reduce pipeline – each section is summarised in parallel, then a global reduce step creates the final guide. Concurrency defaults to 6 and is configurable.
  • Caching – SHA‑256 hash of prompt + model + version is stored on disk; repeated runs skip identical LLM calls.
  • Two‑tier model routing – a fast model for per‑section “map” calls, a smarter model for the final “reduce”.
  • 12‑section output – summary, concept map, outline, detailed notes, key concepts, glossary, cheat sheet, takeaways, quiz, flashcards, exercises.
  • Multiple export formats –
    • --format all → study guide, YAML pack, offline web site, Anki TSV, and SKILL.md bundle.
    • --format web → single self‑contained index.html (no CDN, works offline).
    • --format anki → UTF‑8 TSV ready for Anki import, with HTML fields and tags.
    • --format skill → directory with SKILL.md, assets, references, and scripts for AI agents.
  • Citation‑aware generation (v0.4.1) – every quiz/flashcard/exercise includes a verbatim source quote that is verified against the original text.
  • CLI utilities – sa audit for CI‑style validation, sa share to zip and ship a web bundle, sa lint to validate a skill package, interactive sa quiz and sa review commands.
  • Extensible configuration – environment variables for API base, model names, concurrency, cache control, etc.

Typical workflow

# 1️⃣ Install (editable dev version or from PyPI)
pip install skill-anything[all]   # or pip install -e .[all,dev] after cloning

# 2️⃣ Set up your LLM credentials
cp .env.example .env && nano .env   # set API_KEY, API_BASE, model names

# 3️⃣ Generate a pack from any source
sa pdf textbook.pdf --format all          # PDF → full pack + web + Anki + skill
sa repo https://github.com/openai/openai-python --format study
sa video https://youtu.be/… --format web

# 4️⃣ Share or use the outputs
sa share output/textbook.yaml               # creates index.html + ZIP
sa export output/textbook.yaml --format anki # TSV for Anki import
sa export output/textbook.yaml --format skill # AI‑agent ready SKILL.md bundle

# 5️⃣ Interact locally
sa quiz output/textbook.yaml                # interactive quiz (6 types)
sa review output/textbook.yaml              # flashcard spaced‑repetition mode

Who might use it?

  • Students & self‑learners – turn a lecture video or a textbook chapter into a ready‑to‑study guide with quizzes and flashcards.
  • Team leads onboarding new hires – feed a code repository into sa repo to produce an onboarding pack (glossary, concepts, exercises) and an AI‑agent skill that can answer questions about the codebase.
  • Educators & content creators – quickly generate study material from existing resources and export to Anki or a static website for distribution.
  • AI‑tool developers – consume the SKILL.md export to give agents a structured knowledge base for a specific domain.

Installation & requirements

  • Python 3.10 or newer.
  • Optional extras for specific source types (pdf, video, web, audio).
  • An OpenAI‑compatible API key for best quality; without a key the tool falls back to rule‑based generation.
  • Install via PyPI:
    pip install skill-anything[all]
    
    or clone the repo and install in editable mode for development.

License

MIT – permissive open‑source license.

Related

  • Project
  • Project
  • Project
  • Project