Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Quickstart

Five minutes, one exercise, start to green.

Start

Create a workspace (once) and run cmetal from inside it:

cmetal init my-cmetal-course
cd my-cmetal-course
cmetal

(A cloned repository works exactly the same way — just run cmetal from inside the clone.)

The first run copies the pristine exercises from exercises/ into my_exercises/ — that is where you work; your edits never touch the pristine copies — and drops you on the first unsolved exercise in watch mode.

Fix your first exercise

cmetal shows you the current exercise, its status, and where its file lives:

  Exercise: 00_intro/intro1
  File:     my_exercises/00_intro/intro1.c

  ✗ Compiled and ran, but the program signalled failure.

  Commands: [n]ext [p]rev [h]int [l]ist [r]e-run [q]uit

Open that .c file under my_exercises/ in your editor — not the one in exercises/, which stays untouched. Read the comment at the top: it tells you what the exercise teaches. Find the bug or the TODO, fix it, and save.

cmetal notices the save, recompiles, and re-verifies automatically. When it passes, the screen turns green and the official solution appears in my_solutions/ so you can compare approaches.

Stuck?

Press h. Hints are progressive — the first is the gentlest nudge, and each h reveals one more, up to the near-answer. Nothing is spoiled unless you ask for it. See Hints and solutions.

Move around

KeyAction
nNext exercise
pPrevious exercise
hShow the next hint
lList all exercises
rRe-run the current one
qQuit

Progress is saved to .cmetal-state.txt and persists across sessions — quit any time and cmetal picks up where you left off.

Coming back later

cmetal                    # resume where you left off
cmetal list               # see every exercise and your progress
cmetal solution pointers2 # re-open a solution you've already earned
cmetal reset              # wipe progress, restore pristine exercises

The full command surface is in The CLI.

Next