A Jupyter server extension that runs external web apps like RStudio or Code Server alongside a notebook server and serves them through authenticated paths.
jupyter/nbgrader
A system for creating, distributing, autograding and manually grading Jupyter notebook assignments.
- Stars
- 1,370
- Forks
- 346
- Open issues
- 294
- Last commit
- 3 days ago
What is it?
nbgrader is a tool for instructors who teach with Jupyter notebooks. It covers the full assignment lifecycle: an instructor writes a notebook with solution cells, generates a student version with those solutions removed, releases it to students, collects submissions, runs automatic grading, and then supports manual grading of the remaining answers.
It is delivered as a set of command line tools plus extensions for the classic Jupyter Notebook interface. A toolbar extension guides instructors through assignment creation, a formgrader extension provides a web UI for collecting and grading submissions, and a student assignment list extension lets students fetch, submit and validate their work.
The project is aimed at course staff who want to run notebook-based coursework on Jupyter, and it is designed to work alongside JupyterHub deployments.
Key features
- 01Generate student versions of notebooks by removing solution cells.
- 02Release, collect and autograde assignments from the command line.
- 03Formgrader web interface for manual grading of submissions.
- 04Toolbar extension for creating assignments inside Jupyter notebooks.
- 05Student extension to fetch, submit and validate assignments.
Use cases
- Running programming or data science assignments in a university course on Jupyter.
- Autograding notebook exercises with manual review for open-ended answers.
- Distributing course materials and collecting submissions through JupyterHub.
Quick start
- 1
Follow the installation guide in the nbgrader User Guide (linked from the README)
In collections
Topics
FAQ
- What is nbgrader?
- A system for creating, distributing, autograding and manually grading Jupyter notebook assignments. nbgrader is a tool for instructors who teach with Jupyter notebooks. It covers the full assignment lifecycle: an instructor writes a notebook with solution cells, generates a student version with those solutions removed, releases it to students, collects submissions, runs automatic grading, and then supports manual grading of the remaining answers.
- Is nbgrader free to use? What license does it have?
- nbgrader is open source under the BSD-3-Clause license. Check the license terms before using it in commercial products.
- Is nbgrader still maintained?
- Actively maintained. The last commit to nbgrader was on Nov 3, 2026.
- What can I use nbgrader for?
- Running programming or data science assignments in a university course on Jupyter. Autograding notebook exercises with manual review for open-ended answers. Distributing course materials and collecting submissions through JupyterHub.
- How do I install nbgrader?
- Follow the installation guide in the nbgrader User Guide (linked from the README)
- Where can I get nbgrader?
- The source code and installation instructions are on GitHub: https://github.com/jupyter/nbgrader
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
An automated exercise grader that runs students' code in Docker containers and checks it against your own tests, with LTI integration for existing LMSs.
A multi-user server that spawns and manages separate Jupyter notebook servers for many users from one Hub.
Builds a git repository into a Jupyter-enabled Docker image based on the configuration files found in that repo.
A web-based notebook environment for interactive computing, mixing live code, output and text in one document.
Ready-to-run Docker images bundling JupyterLab, Jupyter Notebook and common scientific Python tools for personal or team use.