A terminal-based todo application with hierarchical tasks, inspired by Workflowy.
- Multiple Baskets: Organize tasks into Inbox, Monday-Sunday, and Later
- Hierarchical Tasks: Nest tasks infinitely for better organization
- Inline Editing: Create and edit tasks directly in the list without popups
- Collapsible Trees: Collapse/expand task groups
- Task Completion: Complete tasks with 5-second strikethrough grace period
- Undo: Full undo support (up to 50 actions)
- Persistent Storage: Data saved to
~/.tltd/tasks.json
pipx install git+https://github.com/rsedykh/tltd.gitThen run with:
tltd- Clone and create a virtual environment:
git clone https://github.com/rsedykh/tltd.git
cd tltd
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install in editable mode:
pip install -e ".[dev]"- Run tests:
pytest tests/ -vtltdAdd tasks directly from your terminal without opening the app:
td "Buy groceries" # Add task to Inbox
td "Buy groceries \\ milk, eggs" # Add task with descriptionTLTD includes Raycast script commands for quick access.
-
Copy scripts to Raycast:
cp raycast/*.sh ~/.config/raycast/script-commands/
-
Open Raycast Settings (Cmd+,) → Extensions → Script Commands → Add the directory if needed
- td: Quick-add task to Inbox. Type
tdthen entertask title \\ optional description - tltd: Opens Terminal and launches the app
The tltd.sh script uses macOS Terminal by default. To use a different terminal, edit the script:
iTerm2:
osascript -e 'tell application "iTerm"
create window with default profile command "~/.local/bin/tltd"
activate
end tell'Warp:
open -a Warp && sleep 0.5 && osascript -e 'tell application "System Events" to keystroke "~/.local/bin/tltd\n"'Kitty:
kitty --single-instance ~/.local/bin/tltd←/→: Switch between baskets and tasks panels
↑/↓: Navigate in current panel (baskets or tasks)
c: Create new task below current (inline editor, same nesting level)Enter: Edit selected task (inline editor)v: Edit task details (Ctrl+S to save, ESC to cancel)x: Toggle task completionBackspace: Delete task and all childrenr: Move task to different basketz: Toggle "show completed tasks"Esc: Cancel inline editing
a: Collapse task (hide children)d: Expand task (show children)
e: Nest task under previous siblingq: Unnest task one level up
w: Move task up in lists: Move task down in list
\: Undo last action (up to 50 actions)
b: Mark/unmark current taskEsc: Clear all marks- When tasks are marked,
x/r/Backspaceapply to all marked tasks
`: Jump to Inbox1-7: Jump to Monday through Sunday0: Jump to Later
?: Show help screenCtrl+c: Quit application
MIT