🪆 matryoshka
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).
key features
- unlimited subtask depth
- intuitive keyboard controls
- automatically saves as you edit
- installable as a Progressive Web App that works completely offline
quickstart
- 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
controls
navigation
⬆️/⬇️move between tasks at the same levelShift + ➡️navigate into a subtaskShift + ⬅️return to the enclosing parent task
task management
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
reorganization
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
multi-select
Option + ⬆️/⬇️extend or contract the selection to include adjacent tasks⬆️/⬇️(without modifier) clear the selection and resume single-task navigation
text editing
⌘ + Ccopy task text (or highlighted substring)⌘ + Xcut task text (or highlighted substring)⌘ + Vpaste text from the clipboard
theming
- press
F2to cycle through available themes
data persistence
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
browser compatibility
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).
privacy
all data is stored locally on your machine.
no data is sent to or stored on any external servers.
licenses
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.
