A command-line Todo List application built with Rust
Todo CLI is a lightweight, fast, and easy-to-use task manager that allows you to manage your todos directly from the terminal. Perfect for developers and terminal enthusiasts who prefer working without leaving their command line environment.
| Feature | Description |
|---|---|
| ⚡ Blazing Fast | Built with Rust for speed and efficiency |
| 📦 Small Binary Size | Lightweight and minimal |
| 📟 Terminal-based Interface | All interactions happen directly in your terminal |
| ⚙️ Dynamic Output | See changes in real-time as you run commands |
| 🎨 Colored Output | Syntax-highlighted tasks for better readability |
| 💾 Persistent Storage | Tasks are saved between sessions automatically |
| 📝 Add Tasks | Quickly add new tasks to your todo list |
| 📋 List Tasks | View all tasks with clear status indicators |
| ✅ Toggle Task Status | Mark tasks as done or undone with a single command |
| ❌ Remove Tasks | Delete individual tasks with ease |
| ♻️ Replace a Task | Update an existing task with new content |
| ➕ Insert Task at Position | Add a task at any specific index |
| 🧹 Clear All Tasks | Wipe your task list in one command |
-
To install Todo CLI using Homebrew, run the following commands:
brew tap emanuelefavero/tap brew install todo
-
Now you can run the
todocommand from anywhere in your terminal.
# Clone the repository
git clone https://github.com/emanuelefavero/todo-cli.git
cd todo-cli
# Build the project
cargo build --release
# Optional: Move the binary to a directory in your PATH so you can run it from anywhere
cp target/release/todo /usr/local/bin/
# Or release it using Homebrew (see below)How to Release Your Own Version of todo-cli
The todo command is used to manage your todo list. Below are the available commands and their usage:
todo # Display the todo list
todo add "Todo text" # Add a new todo
todo rm # Remove first todo
todo rm <number> # Remove a specific todo by number
todo done # Mark the first todo as done
todo done <number> # Mark a specific todo as done
todo replace "New text" <number> # Replace a specific todo with new text
todo insert "Todo text" <number> # Insert a new todo at a specific position
todo edit # Edit a todo (interactive mode)
todo clear # Clear all todos
todo help # Display help information# Add a new todo
todo add "Buy groceries"
# Display the todo list
todo
# Mark first todo as done
todo done 1
# Remove the first todo
todo rm 1
# Clear all todos
todo clearUse the
helpcommand to see a list of all available commands and their descriptionsYou can also find aliases for commands in the help output, such as
todo afortodo add.
All todos are stored as JSON in ~/.todo/todos.json, making it easy to back up or sync your todos between computers.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request