# EDD > A Rust CLI Tool for Managing TODO.md Tasks ## Description EDD is a command-line tool designed for managing tasks in a `TODO.md` file. It allows users to navigate tasks using keyboard controls, mark tasks as complete/incomplete, and insert new tasks easily. ## Features - **Task Navigation**: Easily navigate through tasks. - **Complete/Uncomplete Tasks**: Mark tasks as complete or incomplete. - **Edit Tasks**: Edit the description of a task. - **Insert Tasks**: Insert a new task after the selected task. - **Level Tasks**: Make a task a subtask of the previous task. - **Move Tasks**: Move a task up or down. - **User-Friendly Interface**: Clear and intuitive CLI interface. ## Getting Started ### Prerequisites - Rust and Cargo (latest stable version) - Git (for cloning the repository) ### Installation **Option 1: Install using `cargo install`:** ```bash cargo install edd ``` **Option 2: Build from source** 1. Clone the repository: ```bash git clone https://github.com/flipflopsnrice/edd.git ``` 2. Navigate to the cloned directory: ```bash cd edd ``` 3. Build the project: ```bash cargo build --release ``` 4. Installation: - **Option 1**: Add the binary to your PATH. Copy the built binary to the chosen location. Assuming `~/bin/` is in your PATH, use the following command: ```bash # Copy the binary to the ~/bin/ directory: cp target/release/edd ~/bin/ # Ensure that the binary is executable: chmod +x ~/bin/edd ``` - **Option 2**: Run the binary directly. ```bash # Use cargo to run the binary: cargo run # or run the binary directly: ./target/release/edd ``` ### Usage Run the tool from the command line: ```bash cargo run ``` ### Keyboard Controls - `i`: Insert a new task. - `d`: Delete the selected task. - `e`: Edit the description of the selected task, hit `Enter` to save or `Esc` to cancel. - `s`: Quit & save changes to the `TODO.md` file. - `q`: Quit the program, without saving. - `Space`: Complete/Uncomplete selected task. - `Arrow Up/Down or j/k`: Navigate through tasks. - ` + Arrow Up/Down or j/k`: Move the selected task up/down. - `TAB`: Make the task a subtask of the previous task. - ` + TAB`: Make the task a main task. ## Contributing Contributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests. ## License This project is licensed under the [MIT License](LICENSE).