An Advanced, Portable, Feature-Rich, Zero-Dependency, CLI TODO List Manager built entirely in Bash.
Tip
“A problem well stated is a problem half solved.”
tdlist
helps you to outline, remember, and track your progress with those problems — wherever you are.
We all love a good todo list. A proper list helps you:
- Keep track of what needs to be done
- Monitor ongoing progress
- Review completed tasks
- Improve focus, memory, and learning efficiency
- Maintain momentum on long-term projects
But productivity takes a hit when you switch environments, and leave your old todo list manager behind — due to missing dependencies, platform incompatibility, or simply bloated software that doesn’t work in minimalist setups.
That’s where tdlist
comes in.
-
✅ Pure Bash Implementation Works on any POSIX-compliant system with Bash and basic coreutils.
-
📦 Zero Dependencies (Optional Enhancements with Plugins) Advanced features are conditionally enabled based on the host system.
-
📁 Portable by Design Just download a single shell script and run — no installation, no config files, no dependencies.
-
🧠 Feature-Rich Yet Lightweight Offers many powerful features without sacrificing simplicity.
-
⏱️ Efficient Task Tracking Designed to manage long-term task tracking, progress, and retrospectives.
You just need to download tdlist
and place it somewhere you can execute it.
-
Clone the repository
git clone https://github.com/jorexdeveloper/tdlist.git
-
Make it executable
chmod +x tdlist/tdlist
-
Optionally move it somewhere in your $PATH
sudo mv tdlist/tdlist /usr/local/bin/tdlist
-
Run it
tdlist --help
That’s it. No external packages, no fluff. Just your tasks, managed efficiently.
-
Add, remove, complete, and edit tasks
-
Grouping and tagging support
-
Deadlines and time tracking
-
Search and filter functionality
-
Progress visualization
-
Pretty output including multiple output formats i.e markdown.
-
History and archival
-
Conditional support for extra features via plugins i.e:
fzf
for fuzzy selectionjq
for JSON-based export/importcurl
for syncing tasks remotely
More features are likely to be added, see ROADMAP.md
for a full list of current and upcoming features.
- Developers working across multiple machines
- Users in minimal or restricted environments (e.g. WSL, remote SSH, embedded systems)
- Sysadmins and terminal enthusiasts
- Anyone who wants reliable, fast task management without the bloat
tdlist
runs wherever Bash does — Linux, macOS, BSD, WSL, Termux, even inside containers.
Feature requests, bug reports, and pull requests are welcome. See CONTRIBUTING.md
for details.
Copyright (C) 2025 Jore
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.