A minimal, fast, and persistent command-line To-Do manager written in pure Java.
No frameworks, no GUIs, just clean Java 11+ code.
- ➕ Add tasks with optional due date, priority, and tags
- 📋 List tasks (all, open, done) with sorting options
- ✅ Mark tasks as done/undone
- 📝 Edit tasks inline (title, due date, tags, priority)
- ❌ Delete tasks or clear all completed ones
- 🔍 Search by title or tags
- 💾 Persistent storage in a simple
tasks.tsv
file
javac TodoApp.java
java TodoApp
Storage: tasks.tsv
Commands:
add <title> [/due yyyy-mm-dd] [/p low|med|high] [/tags tag1,tag2]
list [all|open|done] [/sort id|due|prio] [/rev]
done <id> — mark complete
undone <id> — mark incomplete
edit <id> [/t new title] [/due yyyy-mm-dd|none] [/p low|med|high] [/tags list|none]
del <id> — delete task
search <text> — find in titles or tags
clear — remove all completed tasks
save — persist now (auto-saves on exit)
exit — save & quit
> add Buy milk /due 2025-08-30 /p high /tags shopping,urgent
Added #1: Buy milk
> list all
ID ✔ Due Prio Title Tags
-------------------------------------------------------------
1 2025-08-30 HIGH Buy milk shopping,urgent
### Storage Format
tasks are stored in a simple TSV file tasks.tsv for easy reading/editing:
```shell
# id done priority due title tags
1 0 HIGH 2025-08-30 Buy milk shopping,urgent
-
Java 11+
-
Pure CLI (no GUI, no Maven)
-
Data persistence via plain text files
-
Fork this repo 🍴
-
Create your feature branch 🔨
git checkout -b feature/new-feature
- Commit changes 🎉
git commit -m "Add new feature"
- Push branch 🚀
git push origin feature/new-feature
- Open a Pull Request ✅
This project is licensed under the MIT License – feel free to use, modify, and share.
💡 “Organize today, achieve tomorrow.”