Skip to content
Conduit

skill

codelabgen

AI skills and agents that research technologies and generate structured learning paths with runnable code labs, detailed explanations, and guided walkthroughs.

cheyuriy/codelabgencommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/cheyuriy/codelabgen itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 25, 2026

codelabgen

A Claude Code plugin that generates hands-on courses for a technology, language, framework or library. Every lesson is built around a runnable, tested code example and has three parts: the code, a read-along walkthrough of the code, and book-style notes.

Layout

PathWhat it holds
.claude-plugin/plugin.jsonPlugin manifest
commands/Slash commands (/codelabgen:status, …)
skills/Procedural knowledge loaded by the orchestrator and the agents
agents/Subagent definitions (leaf workers)
hooks/Plugin hooks: state-file guard, subagent log
src/codelabgen/, tests/The codelabgen CLI with every deterministic step; the repo root is its uv project
src/codelabgen/templates/Templates for generated course files
schemas/JSON Schemas of the data files, generated from src/codelabgen/models.py

Setup

The repo root is a uv project with a single virtual environment in .venv. uv sync installs the codelabgen CLI into it in editable mode, so changes to src/ take effect immediately. Always work with that environment activated: Claude Code started from an activated shell passes it on to every command it runs, so agents find codelabgen on PATH.

uv sync
source .venv/bin/activate
codelabgen doctor        # which external tools are present, and what a missing one disables
claude --plugin-dir .    # load the plugin from this checkout

Optional tools, each enabling one feature (codelabgen doctor shows what is missing):

ToolFeatureInstall (Ubuntu)
Dockerservices such as Postgres in lessonsdocs.docker.com/engine/install
asciinema 3.x, aggterminal recordingsbinaries from the GitHub releases of asciinema/asciinema and asciinema/agg (apt's asciinema 2.x is too old)
d2D2 diagramscurl -fsSL https://d2lang.com/install.sh | sh -s --
Graphviz (dot)Graphviz diagramssudo apt install graphviz
ghGitHub source discoverysudo apt install gh, then gh auth login
yt-dlptalk transcriptsuv tool install yt-dlp

Runtimes

runtime.kindLessonsNeeds
python-uvuv workspace per module; ruff, pytestuv
nodenpm workspace per module; TypeScript (tsx, tsc), Biome, vitestnode, npm (Node 24 LTS or later)
gogo.work per module, one Go module per lesson; go vet, gofmt, go testgo
rustCargo workspace per module, one package per lesson; clippy, rustfmt, cargo testcargo with clippy and rustfmt (rustup's default profile), a C linker (cc)

Making a course

In Claude Code started with the plugin:

/codelabgen:new LangGraph --target ~/courses/langgraph --lang en

/codelabgen:new builds the course in one session: research, the source review, topics and the curriculum, the plan review, every lesson, assembly and the evaluation. The reviews and other questions (LLM provider, keys) are asked in the chat. Useful options: --version pins the technology version, --source <url> adds sources you want included, --source-type and --sources-per-type narrow the research, and --wishes "…" sets scope or size ("at most 3 lessons").

Other commands:

CommandWhat it does
/codelabgen:resume <dir>Continue a course from wherever it stopped, including work interrupted in an earlier session
/codelabgen:status <dir>Phase, lesson stages and blocked lessons
/codelabgen:sources, /codelabgen:planReview sources or the plan of a course stopped at that review, then continue to the end
/codelabgen:lesson <id|all>Produce (or redo, with --redo <stage>) single lessons
/codelabgen:buildAssemble the course: glossary, READMEs, run.sh, checks, the MkDocs site, a git commit
/codelabgen:extend <dir> "<request>"Deepen a topic or add new ones to a finished course

Evaluating generated courses

codelabgen eval --course <dir> [--reverify] [--site] scores a course (.codelabgen/eval.md, eval.json):

DimensionWeightWhat it measures
completion20%lessons done; blocked lessons
verification25%latest (or, with --reverify, fresh) verify runs pass
consistency15%check all problems; strict site build with --site
content25%per lesson: snippets, real output, experiments, diagrams, self-check, further reading, tests, comment density
process15%review rounds and fix attempts

The automatic score catches broken and incomplete courses; quality needs a reader. eval writes .codelabgen/eval-human.md, a checklist for two sampled lessons (the first, and the most reworked one). Fill it in and run eval again.

Development

With the environment activated:

pytest
ruff check . && ruff format --check .
codelabgen schema export   # after changing models.py
↑↓ navigate openesc close