_____ _____ _ ____
/ ____/ ____| | /\ | _ \
| | | | | | / \ | |_) |
| | | | | | / /\ \ | _ < cclab: learn Claude Code inside Claude Code
| |___| |____| |____ / ____ \| |_) | v0.2.1 · 2 tracks · 16 exercises
\_____\_____|______/_/ \_\____/ thanhtt@fibonax.dev
An interactive tutorial system that teaches Claude Code — directly inside Claude Code. Learn through progressive, validated exercises with setup, instructions, validation, and hints.
When I started using Claude Code, I tried to find tutorials online but almost all of them were blogs or instructional videos, even the official course from Anthropic. At that time, I was also learning Rust and Rustlings is a pretty neat CLI learning tool. It inspired me to create ClaudeLab (cclab).
ClaudeLab is a Claude Code plugin. Each exercise is self-contained with:
- Metadata — ID (
cc-NNN/wf-NNN), track, difficulty - Setup — scaffolds a workspace at
~/.cclab/workspace/<exercise-id>/ - Instructions — what to do (markdown)
- Validation — programmatic (deterministic) checks for correctness
- Hints — progressive: gentle → specific → near-answer
Use these skills inside Claude Code:
| Skill | Description |
|---|---|
/cclab:start |
Begin or resume the next exercise |
/cclab:check |
Validate your current exercise |
/cclab:hint |
Get a progressive hint (up to 3 levels) |
/cclab:status |
View your progress dashboard |
/cclab:reset |
Restart the current exercise from scratch |
/cclab:setup |
Configure permissions for fewer prompts |
| # | Exercise | Difficulty | What You'll Learn |
|---|---|---|---|
| cc-001 | Hello Claude Code | Beginner | Your first prompt — verify setup and get comfortable |
| cc-002 | Your First CLAUDE.md | Beginner | Create a CLAUDE.md briefing document for a project |
| cc-003 | Convention Enforcer | Beginner | Use CLAUDE.md directives to enforce code style automatically |
| cc-004 | Code Detective | Beginner | Explore codebases by reading files and searching patterns |
| cc-005 | The Great Refactor | Intermediate | Coordinated multi-file edits (rename, restructure) |
| cc-006 | Git Like a Pro | Intermediate | Git workflow — branches, staging, conventional commits |
| cc-007 | Command Center | Beginner | Discover and document built-in slash commands |
| cc-008 | Prompt Architect | Intermediate | Structured prompt patterns for better results (capstone) |
| # | Exercise | Difficulty | What You'll Learn |
|---|---|---|---|
| wf-001 | Hook Line | Beginner | Configure hooks that automate tasks on file edits |
| wf-002 | Guard Rails | Beginner | Set up permissions to allow/deny tools and protect secrets |
| wf-003 | Command Crafter | Beginner | Create a custom slash command with a SKILL.md file |
| wf-004 | Skill Surgeon | Intermediate | Skills with arguments, hints, and manual-only invocation |
| wf-005 | Agent Assembler | Intermediate | Create a specialized subagent with restricted tools |
| wf-006 | Plan & Conquer | Intermediate | Combine a planning skill + implementation subagents (capstone) |
| wf-007 | Plug It In | Intermediate | Configure an MCP server to extend Claude Code with tools |
| wf-008 | Branch Out | Intermediate | Use git worktrees for parallel isolated work |
More tracks planned: Advanced.
Known issue: After installing, you may see additional developer-only skills (e.g.,
/create-exercise,/prd-create,/task-planning). These are internal tools for exercise authors — learners can safely ignore them. Only use the 6 skills listed above.
# 1. Launch Claude Code
claude
# 2. Add the plugin marketplace
/plugin marketplace add fibonax/claudelab
# 3. Install the plugin
/plugin install cclab@fibonax-claudelab
# 4. Start learning
/startIf you prefer to install from a local clone:
# 1. Clone the repository
git clone https://github.com/fibonax/claudelab.git
# 2. Launch Claude Code from the cloned directory
cd claudelab
claude
# 3. Start learning — the plugin loads automatically from the local project
/startNote: Your exercise files are created in
~/.cclab/workspace/, not in the cloned repository. The plugin source directory stays clean.
Once installed, use these commands inside Claude Code to work through exercises:
# Begin or resume the next exercise
/cclab:start
# Check your solution
/cclab:check
# Stuck? Get a progressive hint (up to 3 levels)
/cclab:hint
# See your overall progress
/cclab:status
# Restart the current exercise from scratch
/cclab:resetEach exercise builds on the last — just run /cclab:start after completing one to move to the next.
cclab-validator is a Rust CLI tool (in tools/cclab-validator/) that tests exercise solvability end-to-end. It spawns Claude Code to solve each exercise as a real learner would — running /start, solving the exercise, then running /check — and reports pass/fail.
If an exercise fails, its instructions or validation are broken.
cd tools/cclab-validator
cargo build --release# Test a single exercise
cclab-validator --exercise cc-001
# Test an entire track
cclab-validator --track fundamentals
# Test all exercises
cclab-validator --all
# Use a specific model (default: sonnet)
cclab-validator --model opus --exercise cc-001
# Show Claude's full output for debugging
cclab-validator --exercise cc-001 --verbose
# Keep going after a failure
cclab-validator --all --continue-on-fail| Flag | Description |
|---|---|
-e, --exercise <id> |
Run a specific exercise (e.g., cc-001, wf-003) |
-t, --track <name> |
Run all exercises in a track (e.g., fundamentals) |
-a, --all |
Run all exercises |
-m, --model <model> |
Model to use (default: sonnet) |
--max-budget <usd> |
Max budget per exercise in USD (default: 0.50) |
-v, --verbose |
Show Claude's full output stream |
-c, --continue-on-fail |
Continue running after a failure |
--plugin-dir <path> |
Path to cclab plugin root (auto-detected if not set) |
- Resets the exercise workspace and
progress.jsonto a clean state - Spawns
claude -pwith a prompt that instructs Claude to run/cclab:start, solve the exercise, and run/cclab:check - Parses the output for
PASSorFAILmarkers - Reports results with timing and cost data
This tool is meant for exercise authors to validate that exercises are solvable before shipping them.
See CLAUDE.md for project conventions and the development pipeline.
AGPL-3.0