Practise on a real project
Turn a published Nebular programme into hands-on project work. The lume CLI scaffolds a project from your programme’s skills, coaches you Socratically as you build it, and gates procedural mastery on the code you actually ship.
@nebular-ai/lumelume is an alpha CLI coach that runs in your terminal. Install it once globally, then authenticate so lume can reach your programmes and route all LLM calls through the Nebular backend proxy — your shell never needs a model API key.
lume requires Node 22 or later. Install it globally: alpha
$npm install -g @nebular-ai/lume
~/.config/lume/credentials (mode 600). All model calls route through https://nebular.live — no model API key belongs in your shell environment. The only optional env vars are NEBULAR_API_URL and NEBULAR_PAT.Start fresh with lume scaffold — it interviews you, picks the programme, and generates the project layout. Already have a repo? Run lume init to attach it instead.
$mkdir svd-recommender && cd svd-recommender$lume scaffold
During the interview, lume asks for a project scope. Choose the one that fits your time horizon:
The scaffold creates this layout in your working directory:
After scaffolding, lume interviews you to produce README.md (your project brief) and milestones.md (a milestone-to-lesson table mapping each module’s skills to a concrete deliverable). These become the contract lume coaches against.
Each row in milestones.md links one milestone to one lesson and its skill ids. lume uses this table to decide which skills are under test at each coaching session and to route evidence to the right lesson in the learner runtime.
- 1Answer lume’s brief questions about the project goal — a few sentences is enough.
- 2Review the generated
README.mdand edit freely. lume keeps a working copy of the brief in memory while coaching. - 3Open
milestones.mdto see the milestone table. You can rename milestones or reorder them; do not rename skill ids (they link to the programme).
Run lume with no arguments in the project directory to enter coaching mode. lume works through the skills under test Socratically — it asks probing questions, you answer and write code. Per lesson the loop runs: intuition → conceptual → procedural.
Procedural evidence is read from your real project files — lume cites specific file paths and line numbers. When a deliverable validator confirms the work, lume records the evidence automatically to the learner runtime. You do not call any evidence API yourself.
- 1Run
lumeinsvd-recommender/. lume prints the active milestone and the skills under test, then opens with a Socratic question. - 2Answer and implement the milestone in
src/. lume reads your code to verify the procedural component — it does not rewrite it. - 3Once lume sees sufficient procedural evidence in your files, it records mastery and moves to the next skill. The per-lesson loop then advances: intuition → conceptual → procedural → next lesson.
Run lume validate at any point to execute each deliverable’s validator and see a pass/fail summary. Passing validators update evidence in the learner runtime automatically — mastery then appears on your /dashboard.
Validators live in the deliverables/ directory generated during scaffold. Each one is a lightweight script that checks a specific property of your output — shape, correctness, boundary conditions. The output tells you exactly which deliverable failed and why.
- 1Run
lume validatefrom the project root. Each row in the output is one deliverable with a pass (✓) or fail (✗) and a short reason. - 2Fix any failing deliverables, then re-run. There is no limit on how many times you can validate.
- 3Once all deliverables for a milestone pass, lume syncs the evidence to the learner runtime and the milestone advances. Mastery appears on
/dashboardwithin a few seconds.
nebular-learner MCP on your behalf. You never call an evidence API directly — validate your deliverables and your dashboard updates automatically.