A fast, minimalist CLI todo and task management application written in Rust.
- Todo Management: Create, search, complete, and delete todos with priorities
- Lessons/Quotes: Store and search memorable quotes and lessons learned
- Archive: Keep track of cold storage data
- Interactive Mode: Prompts for missing information when not provided via CLI
- Non-Interactive Mode: Full control via command-line arguments
- Priority System: Organize todos by priority levels
- Local Storage: All data stored locally in
~/.do-it/data/
Download the latest binary for your platform from the Releases page:
- Linux (x86_64):
DoIt-linux-x86_64 - macOS (Intel):
DoIt-macos-x86_64 - macOS (Apple Silicon):
DoIt-macos-aarch64 - Windows (x86_64):
DoIt-windows-x86_64.exe
Make the binary executable (Linux/macOS):
chmod +x DoIt-*
sudo mv DoIt-* /usr/local/bin/doitRequires Rust 1.70 or later:
git clone git@github.com:AshishAntil07/do-it.git
cd do-it
cargo build --release
sudo cp target/release/DoIt /usr/local/bin/doitInteractive mode (prompts for missing fields):
doit addNon-interactive mode (all arguments provided):
doit add my-task-id -t "Implement login feature" -d "Add OAuth2 authentication" -p 4Aliases: new, todo
Basic search:
doit search "login"Filter by ID:
doit search -i my-task-idFilter by status and priority:
doit search -c -p 4 # Completed high-priority todos
doit search -b # Incomplete todos only
doit search -d # Todos with descriptionsAlias: find
doit check task-1,task-2,task-3Aliases: complete, done
doit delete task-1,task-2Alias: remove
Interactive:
doit lessons addNon-interactive:
doit quotes add lesson-1 -l "Always write tests first"Aliases: quotes, lessons
doit lessons search "tests"
doit quotes find -i lesson-1doit lessons delete lesson-1,lesson-2Alias: remove
Interactive:
doit archive addNon-interactive:
doit archive add archive-1 -d "Old project notes"doit archive search "project"
doit archive find -i archive-1doit archive delete archive-1,archive-2doit --debug [command] # Enable debug mode
doit --version # Show version
doit --help # Show helpAll data is stored locally in:
~/.do-it/data/
├── todo/ # Todo items
├── lessons/ # Lessons and quotes
├── archive/ # Archived data
└── config.json # Application configuration
This is a Rust workspace with 5 crates:
- cli - Command-line interface and argument parsing
- domain - Business logic for todos, lessons, and archive
- data - Data persistence layer (file I/O)
- ui - Interactive prompts and user input
- shared - Common types and constants
cargo build # Debug build
cargo build --release # Optimized buildcargo run -- add # Run with arguments
cargo run -- --help # Show helpcargo clippy # Run linter
cargo fmt # Format code (2-space indentation)
cargo fmt -- --check # Check formatting without applyingContributions are welcome! Please feel free to submit a Pull Request.