A simple, lightweight command-line task manager written in Go.
- ✨ Simple and intuitive CLI interface
- 📝 Create and manage tasks
- ✅ Mark tasks as complete/incomplete
- 🔍 Filter tasks by status
- 💾 Persistent storage using SQLite
- 🚀 No external configuration needed
- Go 1.16 or higher
- SQLite3
# Clone the repository
git clone https://github.com/atal-k/todo-cli
cd todo-cli
# Build the application
go build -o todo cmd/main.go
# Optional: Move to PATH (Linux/macOS)
sudo mv todo /usr/local/bin/go install github.com/atal-k/todo-cli@latest# Add a new task
todo add "Read notes"
# List all tasks
todo list
# List pending tasks
todo list --pending
# List completed tasks
todo list --completed
# Mark task as done
todo done 1
# Delete a task
todo delete 1
# Clear all tasks
todo clear| Command | Alias | Description |
|---|---|---|
add |
a |
Add a new task |
list |
ls |
List tasks |
done |
d |
Mark task as completed |
delete |
rm |
Delete a task |
clear |
- | Remove all tasks |
todo-cli/
├── cmd/
│ └── main.go # Entry point
├── internal/
│ ├── db/ # Database operations
│ └── todo/ # Business logic
└── README.md
# Get dependencies
go mod tidy
# Run tests
go test ./...
# Build for development
go build -o todo cmd/main.goTasks are stored in SQLite database at:
- Linux/macOS:
~/.todo.db - Windows:
%USERPROFILE%\.todo.db
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - see the LICENSE file for details
- Built with urfave/cli
- SQLite storage using mattn/go-sqlite3