Semi-automated grading for Marimo notebooks.
How it works: Instructors author source notebooks with solution blocks and automated checks. mograder generate strips solutions to create release versions. Students complete the notebooks and get instant formative feedback from check() calls. mograder autograde executes submissions in sandboxed subprocesses, parses results, and stores grades in an SQLite gradebook. Markers review and add manual marks via the grader dashboard. mograder feedback exports annotated HTML for students.
pip install mograder # or: uv add mograder
mograder generate hw1 # strip solutions → release/
mograder autograde hw1 # grade submissions → autograded/
mograder feedback hw1 # export HTML → feedback/Try the student dashboard — a WASM app running entirely in your browser. See also the hub (student notebook editing), the grader (instructor view with pre-populated demo data), and a demo workshop with encrypted solutions (workshop key: mograder, instructor dashboard). Deep links open assignments and lectures directly: edit demo-assignment | run demo-lecture.
| Full Documentation | Overview, installation, and all guides |
| Instructor Guide | Step-by-step setup and grading walkthrough |
| Student Guide | Setup instructions to share with students |
| Usage Reference | All commands: generate, autograde, feedback, moodle, ... |
| API Reference | check(), Grader, CLI, and module docs |
| Configuration | Full mograder.toml reference |
| Security | Threat model and sandboxing options |
Easiest: download the desktop app — no terminal needed.
Or via the command line:
curl -LsSf https://astral.sh/uv/install.sh | sh
uvx mograder student https://mograder-demo.jrkermode.uk/mograder.tomlFor real courses, your instructor will provide the config URL. Or open in GitHub Codespaces — one click, no install needed.
MIT
