Keep lightweight to-dos inside JupyterLab. This extension adds a persistent side panel that lets you add, check off, and delete tasks while working in notebooks. Items are cached locally and synced to a small REST endpoint so they follow you between sessions.
jupyterlab-todo-list-demo.mov
This project’s code and docs are primarily authored with AI assistance; human maintainers review and ship the resulting changes.
- JupyterLab >= 4.0.0
pip install jupyterlab_todo_listThe Python package is published on PyPI, and the labextension bundle is on npm as @xlt208/jupyterlab-todo-list for anyone integrating it into custom builds. A normal pip install brings in the Python backend plus the bundled frontend automatically—no extra npm step required.
- Launch JupyterLab.
- Open the command palette or launcher and run Open To-Do List.
- Add tasks in the left side panel. Items are saved automatically.
The panel reopens on the next Lab session and restores your last task list.
When the Show notebook TODOs setting is enabled (default), the extension scans .ipynb files for lines that match # TODO:. Each match appears in the panel as a read-only entry labeled with the originating notebook path. Use the refresh button to re-scan notebooks, and click Open on any imported task to jump directly to the source notebook. Toggle the setting off if you want the panel to show only manually entered items.
pip uninstall jupyterlab_todo_listThe jlpm command is JupyterLab's pinned version of Yarn and is already bundled with Lab. NodeJS (>=18) must be available on your PATH.
git clone https://github.com/xlt208/jupyterlab-todo-list.git
cd jupyterlab_todo_list
python -m venv .venv
source .venv/bin/activate
pip install --editable ".[test]"
jlpm install
jlpm build
jupyter labextension develop . --overwriteDuring development you can keep the TS build and Lab running in watch mode:
jlpm watch # terminal 1
jupyter lab # terminal 2To undo the editable install run pip uninstall jupyterlab_todo_list and remove the jupyterlab-todo-list symlink reported by jupyter labextension list.
jlpm test # Jest unit tests
jlpm lint:check # prettier + eslint + stylelint
jlpm playwright test # UI tests (see ui-tests/README.md for setup)See RELEASE