mograder
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.
Quick start
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/
Live demo
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.
Documentation
| 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 |
For students
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.toml
For real courses, your instructor will provide the config URL. Or open in GitHub Codespaces — one click, no install needed.
License
MIT
Metadata
Release files for mograder 0.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mograder-0.3.3.tar.gz | 2.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mograder-0.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.5 MB
Release files / mograder-0.3.3.tar.gz
| Download URL | mograder-0.3.3.tar.gz |
|---|---|
| Size | 2.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ee77c9d451000800b709aed8bae7d3c3725b3e5388cc17983d653a34c3814942
|
|
BLAKE2b-256 checksum How to use checksums |
8e0a99217d57d3a43714250f036b6c9a09217115e6223907e7b9281d3de12506
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.
Transparency logRelease files / mograder-0.3.3-py3-none-any.whl
| Download URL | mograder-0.3.3-py3-none-any.whl |
|---|---|
| Size | 194.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d6807737f0b09db93990835310144f1540c6aa0793ae17bbc025fb8031982f7
|
|
BLAKE2b-256 checksum How to use checksums |
1786051078a99ac0fa8ec7d2329a7b30f7651a47a815f92538d3a64f6e247085
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.
Transparency log