An Agent Skill that generates a complete, auto-graded course on your machine — then tutors you through it.
Chapters · real exercises with tests · a capstone project · playgrounds · progress tracking · a browser Studio · any human language
npx learn-anything-skill/learn go
/learn kubernetes lang=fr
/learn flutter level=beginner goal="an ordering app for my restaurant"
/learn postgresql lang=es
/learn docker yes
Type one line in your coding agent and you get a real course folder: lessons that explain why things work, exercises that are graded automatically (native unit tests for code, live state checks for infrastructure), a capstone project that grows with every module, a local playground to experiment safely, a tutor that gives hints instead of answers and keeps track of your progress — and, if you want, a browser Studio where you do the whole course without opening an editor.
It works with Claude Code, OpenAI Codex, OpenCode, Gemini CLI, Google Antigravity, Cursor, Windsurf, GitHub Copilot, Kiro, Goose, Amp, Roo Code and any agent that reads SKILL.md files.
- Why
- What you get
- Install
- Usage
- Examples by technology
- How it works
- Supported agents
- FAQ
- Contributing
Tutorials are read once and forgotten. What makes a technology stick is building something real, getting objective feedback, and understanding the mental model behind it. That's what a good bootcamp gives you — and what this skill generates, for any technology, in your language, adapted to your level and goal.
It started from a hand-made Go course (lessons + TODO exercises + go test auto-grading + a final REST API project). This skill generalizes that recipe to everything: languages, frameworks, DevOps tools, clouds, databases, dev tools, data/ML.
learn-kubernetes/
├── README.md # roadmap, how to work, how grading works
├── SETUP.md # tools to install for YOUR OS, verification commands
├── PROGRESS.md # your checklist with progress bars
├── .learn/ # course manifest, progress, results log
├── tools/check.sh # ./tools/check.sh <exercise|module|capstone NN>
├── playground/ # kind cluster config, demo app, sample data
├── 00-introduction/
│ ├── lessons/ # 01-why-kubernetes.md, 02-cluster-anatomy.md, ...
│ ├── exercises/ # stubs + tests / check scripts — you edit these
│ ├── solutions/ # reference solutions + NOTES.md (why, alternatives)
│ └── quiz.md
├── 01-pods/ ... 13-troubleshooting/
├── capstone/ # the project you build across the whole course
│ ├── milestones/ # one per module, with acceptance criteria
│ └── tests/ # automated acceptance checks
├── studio/ # optional: the browser Studio (studio=yes)
└── studio.sh # ./studio.sh → http://localhost:4242
| 📚 Lessons that build understanding | Why it exists → mental model → step-by-step runnable examples → predict, then run → common mistakes (with the real error messages) → real-world usage → self-check. |
| ✅ Auto-graded exercises | Implement, fix-the-bug, refactor, predict, build-from-spec, break-and-repair, write-the-tests. Stubs fail, solutions pass — verified before the course is handed to you. |
| 🏗️ A capstone (fil rouge) | One real project built module after module — an API, a mobile app, a deployed 3-tier platform — with cumulative acceptance tests. |
| 🧪 Playgrounds & tools | Local, disposable, free by default: Docker, kind/k3d, emulators, LocalStack, seeded databases. Install commands for your OS, run only with your approval. |
| 📈 Progress tracking | Based on real check results (.learn/results.log), not on "I read it". Weak concepts are detected and revisited. |
| 🧑🏫 A tutor | /learn hint gives graduated hints, /learn explain teaches with your own code, /learn review reviews like a senior engineer, /learn quiz adapts to your answers. |
| 🖥️ A browser Studio (optional) | The whole course in one local web page: lessons, a real terminal, a file editor, one-click Set up / Check / Solution, hints that unfold one by one, interactive quizzes, capstone milestones and your progress. The agent asks whether you want it; /learn studio adds it to an existing course. |
| 🌍 Any language | The whole course — lessons, comments, test messages, quizzes — in the language you choose. |
| 🐙 GitHub-ready | git init by default; github=yes creates a private repo with a CI workflow that grades on every push. |
npx learn-anything-skillThe installer detects the agents installed on your machine, lets you pick them (space to toggle, enter to confirm), and asks global vs. project scope:
Agent harnesses on this machine
● Claude Code claude-code ~/.claude, claude (PATH)
● OpenAI Codex codex ~/.codex, codex (PATH)
● OpenCode opencode ~/.config/opencode, opencode (PATH)
● Google Antigravity antigravity ~/.gemini/antigravity
○ Cursor cursor not detected
...
Non-interactive variants:
npx learn-anything-skill -y # every detected agent, global
npx learn-anything-skill --agent claude-code,codex,opencode # specific agents
npx learn-anything-skill --all # every supported agent
npx learn-anything-skill --project --agent cursor # into ./.cursor/skills
npx learn-anything-skill --dir ~/my/skills # any custom skills directory
npx learn-anything-skill list # where is it installed?
npx learn-anything-skill@latest -y # update
npx learn-anything-skill uninstall # remove everywhereRequires Node.js ≥ 18. Zero dependencies.
npx skills add codeByDarknet/learn-anything-skillCopy skills/learn into your agent's skills directory (see Supported agents):
git clone https://github.com/codeByDarknet/learn-anything-skill
cp -r learn-anything-skill/skills/learn ~/.claude/skills/Restart your agent (or open a new session) after installing.
/learn <technology> [lang=<language>] [level=beginner|intermediate|advanced]
[goal="..."] [project="..."] [path=./dir] [time=1h/day]
[studio=yes|no] [github=yes] [yes]
| Parameter | Default | |
|---|---|---|
<technology> |
— | Anything: go, rust, flutter, react + typescript, kubernetes, terraform, aws lambda, postgresql, git, pandas... |
lang |
the language you write in | fr, es, pt-BR, de, ar, zh, ja, wolof... — the whole course is written in it. |
level |
asked | Adapts depth, pace and the number of worked examples. |
goal |
asked | What you want to be able to build — drives the capstone. |
project |
proposed | Your own capstone idea. |
path |
./learn-<tech> |
Where to create the course. |
time |
1h/day |
Used for sizing and the schedule estimate. |
studio |
asked | yes → install the browser Studio (needs Node.js ≥ 20). no → editor + terminal only. |
github |
no |
yes → private GitHub repo + CI grading (asks before creating anything). |
yes |
off | Skip the intake questions, use defaults. |
Without yes, the agent asks up to 6 quick questions (level, goal, experience, time, capstone, browser or editor), shows you the outline, then generates the entire course in one go and verifies every exercise.
| Command | |
|---|---|
/learn status |
Progress per module, streak, weak concepts, what's next |
/learn next |
The exact next step (lesson, exercise or milestone) |
/learn check [exercise] |
Runs the checks and explains failures without giving the answer |
/learn hint [exercise] |
Graduated hints: direction → approach → near-solution |
/learn explain <concept> |
Mental model + an experiment to run in the playground |
/learn quiz [module] |
Adaptive quiz, one question at a time |
/learn review |
Senior-engineer review of your code |
/learn studio [start|stop|service|remove] |
Install, start or auto-start the browser Studio |
/learn add <topic> |
Add a module or extra exercises |
/learn resume |
Continue an interrupted generation |
The course is plain files: you can also work without any AI, just with your editor and ./tools/check.sh — or with the Studio in your browser (./studio.sh, or .\studio.ps1 on Windows).
A small local web app (Node.js, listening on 127.0.0.1 only) copied into the course as studio/. The dashboard's Continue button always takes you to the next step; each exercise opens a workspace with a terminal in the exercise folder, an editor with autosave and the check output; quizzes are clickable and scored; PROGRESS.md and .learn/progress.json update by themselves, so the tutor commands see the same progress. ./studio.sh --service (Linux/macOS) or .\studio.ps1 -Service (Windows) starts it at every login. The interface is in English and French; the agent translates it for other languages.
Agents without slash commands: ask in plain words — "use the learn skill to teach me Rust, in Spanish". In Codex:
$learn rust lang=es.
Go — /learn go goal="a production REST API"
Modules from toolchain to concurrency, HTTP and databases. Each exercise is a Go package with solution.go (TODOs) and solution_test.go (table-driven tests with explanatory failure messages). Graded with go test, race detector on concurrency exercises. Capstone: a REST API with SQLite, JWT auth, middleware, integration tests and a Dockerfile.
Kubernetes — /learn kubernetes lang=fr
A local kind cluster in playground/. Exercises are real: write manifests, fix a broken deployment set up by setup.sh, and check.sh asserts live state (kubectl ... -o jsonpath, curl through the Service). Break-and-repair scenarios for troubleshooting. Capstone: deploy and operate a 3-tier app with rollouts, probes, ingress, RBAC, Helm and monitoring.
Flutter — /learn flutter goal="a shop app"
Dart essentials first, then you build one real app across the course: widgets, layout, state management, navigation, forms, networking, persistence, testing and release builds. Small exercises are graded with flutter test (widget tests); each module adds a feature to the app, validated by widget/integration tests.
Docker — /learn docker level=beginner
Images and layers, Dockerfile best practices, volumes, networks, Compose, multi-stage builds, security. Checks use docker inspect, image size limits, hadolint, and HTTP probes. Capstone: containerize a full app and ship it through CI.
PostgreSQL — /learn postgresql
A seeded database in Docker Compose. You write query.sql; the check runs it and compares with the expected result, verifies constraints, and asserts that EXPLAIN uses your index. Capstone: design and optimize the database of a real product.
Git & GitHub — /learn git github=yes
setup.sh builds real repositories in tricky states (conflicts, lost commits, messy history); checks inspect git log, refs and status. GitHub modules (PRs, Actions, releases) use gh on your own private repo — only with your consent.
The skill is a set of instructions for your agent (in skills/learn):
| File | Role |
|---|---|
SKILL.md |
Entry point: parameters, subcommands, quality rules, the generation workflow |
references/tech-profiles.md |
Playbooks for 8 families of technologies: tooling, playground, grading, module arc, capstone ideas |
references/pedagogy.md |
The lesson template and teaching principles |
references/exercises.md |
Exercise types, test and check-script design, authoring verification |
references/capstone.md |
Designing the project and its milestones |
references/progress.md |
Manifest and progress schemas |
references/tutoring.md |
Tutor behaviour for every subcommand |
references/i18n.md |
Writing the course in any language |
references/studio.md |
Installing and checking the browser Studio, the course contract it reads |
assets/studio/ |
The browser Studio (server, UI, launchers), copied into the course when you want it |
assets/templates/ |
Portable grading scripts (check.sh for bash 3.2+, check.ps1 for Windows), README/PROGRESS templates, CI workflow |
Generation flow: discover your environment → short intake → design the curriculum (.learn/course.json) → generate everything module by module → install tools (with approval) → verify every exercise (stubs fail, solutions pass) → optional browser Studio (--check must pass) → git init → hand-off. If the agent runs out of context, /learn resume continues from the manifest.
Only the lightweight description is loaded until you invoke the skill; references are read on demand (progressive disclosure), so it costs nothing when you're not using it.
| Agent | id | Global skills directory | Project directory |
|---|---|---|---|
| Claude Code | claude-code |
~/.claude/skills (or $CLAUDE_CONFIG_DIR/skills) |
.claude/skills |
| OpenAI Codex | codex |
~/.codex/skills (or $CODEX_HOME/skills) |
.agents/skills |
| OpenCode | opencode |
~/.config/opencode/skills |
.opencode/skills |
| Gemini CLI | gemini-cli |
~/.gemini/skills |
.gemini/skills |
| Google Antigravity | antigravity |
~/.gemini/antigravity/skills |
.agent/skills |
| Cursor | cursor |
~/.cursor/skills |
.cursor/skills |
| Windsurf | windsurf |
~/.codeium/windsurf/skills |
.windsurf/skills |
| GitHub Copilot | github-copilot |
~/.copilot/skills |
.github/skills |
| Kiro | kiro |
~/.kiro/skills |
.kiro/skills |
| Goose | goose |
~/.config/goose/skills |
.goose/skills |
| Amp | amp |
~/.config/agents/skills |
.agents/skills |
| Roo Code | roo |
~/.roo/skills |
.roo/skills |
| Universal | agents |
~/.agents/skills |
.agents/skills |
Detection looks for each agent's config directory and its binary on PATH. Your agent isn't listed or a path changed? Use --dir <path> and please open an issue or PR — the table lives in src/harnesses.js.
Does it need internet or a paid API? No extra service — it runs inside the agent you already use. Internet is only needed to install toolchains, and helps the agent check current versions.
How big is a course? How long does generation take?
A full language course is typically 10–15 modules, 50–80 exercises and a capstone. Generating and verifying everything takes a while and a good amount of tokens; agents with subagents parallelize modules. If a session is cut, run /learn resume.
Will it install things on my machine? Only after showing you the exact command and getting your approval. Playgrounds are local and disposable; nothing touching the cloud or costing money is done without explicit consent.
Can I do the course without an editor?
Yes: answer "in the browser" (or pass studio=yes) and everything — reading, terminal, editing, grading, quizzes, progress — happens on http://localhost:4242. It needs Node.js 20+; on Linux the terminal module compiles once (python3, make, g++).
Windows?
Yes: tools/check.ps1 for PowerShell, studio.ps1 for the Studio, file names are Windows/NTFS-safe, SETUP.md covers Windows (native and WSL).
The same skill shows up twice in my agent.
Some agents read several directories (e.g. ~/.agents/skills and their own). Install to only one of them: npx learn-anything-skill uninstall --agent agents.
Can I share a generated course? Yes, it's just a folder / git repo. Learners can use it without any AI.
Ideas, new technology playbooks, harness paths and translations of the examples are very welcome. See CONTRIBUTING.md.
git clone https://github.com/codeByDarknet/learn-anything-skill && cd learn-anything-skill
npm test # installer + grading-script tests (no dependencies)
npm run validate # SKILL.md spec checks
node bin/cli.js --dir /tmp/skills -yMIT © Abdoul Razack Ouedraogo