turn mountains into molehills (then molehills into anthills) with matryoshka,
the nested todo list that breaks complex tasks into manageable subtasks.
try it now in your browser! (physical keyboard required).
- unlimited subtask depth
- intuitive keyboard controls
- automatically saves as you edit
- installable as a Progressive Web App that works completely offline
- press the
Return/Enterkey to add subtasks to the root "todo" task - give each new subtask a meaningful name
- use
Shift + ➡️to navigate into a subtask - use
Shift + ⬅️to return to the enclosing parent task - use
Shift + Enterto quickly mark tasks as complete or incomplete
⬆️/⬇️move between tasks at the same levelShift + ➡️navigate into a subtaskShift + ⬅️return to the enclosing parent task
Enteradd a new task⬇️(on last subtask) add a new task at the bottom of the listBackspace(when task text is empty) delete selected task(s) and their subtasksShift + Entertoggle selected task(s) completion status
Shift + ⬆️/⬇️reposition selected task(s) within their current level⌘ + ⬆️/⬇️push selected task(s) into the task above or below⌘ + ⬅️pull selected task(s) out one level (to the level of their parent)- hold
Shiftwith any⌘command (push/pull) to simultaneously navigate to the task(s)' new position
Option + ⬆️/⬇️extend or contract the selection to include adjacent tasks⬆️/⬇️(without modifier) clear the selection and resume single-task navigation
⌘ + Ccopy task text (or highlighted substring)⌘ + Xcut task text (or highlighted substring)⌘ + Vpaste text from the clipboard
- press
F2to cycle through available themes
your task tree is automatically saved to your browser's local storage after each edit. this ensures your tasks will persist even if you close the browser or refresh the page.
Warning
clearing your browsing data may erase your saved tasks. to avoid losing progress, create a manual backup before clearing your browsing data.
⌘ + Sexport tasks to .txt file⌘ + Oimport tasks from .txt file
matryoshka is designed to run on modern, desktop web browsers with javascript enabled.
mobile browsers are technically supported, but a physical keyboard is required (for now).
all data is stored locally on your machine.
no data is sent to or stored on any external servers.
this project is licensed under the GNU General Public License v3.0.
the Basteleur font by Keussel (distributed by Velvetyne) is licensed under the SIL Open Font License, version 1.1.
