A lightweight, fast Rust command-line task tracker for managing TODOs and simple tasks locally. Designed to be minimal, scriptable, and user-friendly with beautiful formatted output.
- ✅ Add, list, complete, edit, and remove tasks
- 📁 Persistent local storage (JSON)
- 🎨 Beautiful formatted table output
- 📊 Colored logging (debug, info, warn, error)
- 🚀 Fast and lightweight
- 📝 Human-readable output for piping and scripting
- Task Tracker Exercice
- Rust toolchain (rustc + cargo) — https://rustup.rs
Clone and build locally:
git clone https://github.com/nXhermane/task-tracker-cli.git
cd task-tracker-cli
cargo build --release
# optional: install to cargo bin directory
cargo install --path .cargo run -- add "Buy groceries"cargo run -- listcargo run -- mark-in-progress 1cargo run -- done 1cargo run -- remove 1cargo run -- edit 1 "Read Rust book chapter 7"cargo run -- get 1Tasks are stored in a simple local file (e.g., temp/tasks.json or a user data directory). The format is human-readable JSON to allow manual edits and easy interoperability.
cargo run -- listRUST_LOG=debug cargo run -- add "My task"RUST_LOG=trace cargo run -- list # Very detailed
RUST_LOG=debug cargo run -- list # Technical details
RUST_LOG=info cargo run -- list # Info/warn/error only (default)src/
├── lib.rs # Library root with module declarations
├── main.rs # CLI entry point and command parsing
├── models/
│ ├── mod.rs # Model traits (Serializable, Identifiable)
│ └── task_status.rs # TaskStatus enum
├── task/
│ ├── mod.rs # Task struct and Serializable impl
│ └── manager.rs # TaskManager and IdGenerator structs
├── storage/
│ ├── mod.rs # Storage trait definition
│ └── file_storage.rs # FileStorage implementation
├── ui/
│ ├── mod.rs # UI module
│ └── display.rs # display_task and display_tasks functions
└── cli/
├── mod.rs # CLI types (TaskOperation, TaskCommand)
└── commands.rs # Command execution logic
- models: Data structures and traits
- task: Core task management logic
- storage: File persistence abstraction
- ui: User interface / display formatting
- cli: Command-line interface and execution
Run tests:
cargo testFormat and lint:
cargo fmt
cargo clippy -- -D warnings- chrono - Date/time handling
- json - JSON parsing and serialization
- prettytable-rs - Beautiful table formatting
- tracing - Structured logging
- tracing-subscriber - Log filtering and formatting
- Fork the repo, create a branch, and open a pull request.
- Follow idiomatic Rust and include tests for new behavior.
- Keep changes small and focused.
Licensed MIT. See LICENSE file for details.
- 🔍 Search and filter by status or text
- 📤 Export/import tasks
- ⭐ Add priority and due-date metadata
- 🔄 Subcommands for recurring tasks
- ☁️ Sync backend (optional)
- 📱 Interactive mode (planned)
Open an issue in the repository.