tasky-cli 0.2.0

A simple Rust CLI to manage to-do lists
Tasky - A Simple Rust CLI to Manage To-Do Lists
==============================================

Repository: https://github.com/MrGranday/tasky
Author: MrGranday
License: MIT License
Last Updated: August 28, 2025

About
-----
Tasky is a lightweight command-line interface (CLI) tool written in Rust for managing to-do lists. It allows users to add, list, and remove tasks with a simple, colorful interface. Tasks are stored in a JSON file, making it easy to extend. Designed with beginners in mind, Tasky is perfect for learning Rust, contributing to open-source projects, and managing daily tasks in Windows (CMD/PowerShell), Linux, or macOS.

Features
--------
- Add tasks: `tasky add "Buy milk"`
- List tasks: `tasky list` (with colorful output)
- Remove tasks: `tasky remove 0` (by index)
- Stores tasks in `tasks.json` for persistence
- Colorized terminal output (green for adds, blue for tasks, red for removes)
- Cross-platform: Works in Windows CMD/PowerShell, Linux, and macOS
- Planned features: Mark tasks as done, add due dates, priority tags, JSON output for PowerShell scripting

Installation
------------
1. Install Rust:
   - Visit https://www.rust-lang.org/ and follow the instructions.
   - Or run: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`
   - On Windows, this downloads `rustup-init.exe`. Choose the default `stable` toolchain.
   - Verify: `rustc --version` (should show ~1.70.0 or later).
2. Clone the repository:
   ```
   git clone https://github.com/MrGranday/tasky.git
   cd tasky
   ```
3. Build and run:
   ```
   cargo build
   cargo run -- add "Test task"
   cargo run -- list
   cargo run -- remove 0
   ```
4. For Windows CMD colors:
   - Enable ANSI: `reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1`
5. Optional: Install globally:
   ```
   cargo install --path .
   ```
   - This places `tasky` in `~/.cargo/bin` for use anywhere.

Usage
-----
- Add a task: `tasky add "Buy milk"`
- List all tasks: `tasky list`
- Remove a task: `tasky remove 0`
- (Planned) Mark as done: `tasky done 0`
- (Planned) JSON output: `tasky list --json` (for PowerShell: `tasky list --json | ConvertFrom-Json`)

Contributing
------------
Tasky is designed to be beginner-friendly, with a small codebase (~100-200 lines) and clear tasks. We aim for 90%+ beginner contributors, like Rust’s eza project. To get started:
- Check [CONTRIBUTING.md](CONTRIBUTING.md) for detailed steps.
- Look for `good first issue` labels on GitHub: https://github.com/MrGranday/tasky/issues
- Example tasks:
  - Add a `--done` command to mark tasks as complete
  - Support due dates (e.g., `tasky add "Buy milk" --due "2025-08-30"`)
  - Add JSON output for PowerShell
  - Fix typos in documentation
- No Rust or open-source experience? No problem! We’ll guide you through your first pull request.

Development
-----------
- Dependencies: `clap` (CLI args), `serde`/`serde_json` (JSON storage), `colored` (terminal colors)
- Code style: Run `cargo fmt` and `cargo clippy`
- Test: Run `cargo test` (add tests for new features)
- Editor: VS Code with `rust-analyzer` is recommended for beginners

Community
---------
- Ask questions on GitHub issues: https://github.com/MrGranday/tasky/issues
- Join the Rust community:
  - Rust Discord: https://discord.gg/rust-lang (beginner channels)
  - r/rust on Reddit: https://www.reddit.com/r/rust/
  - Share on X: Use #rustlang or #tasky
- Contact: Open an issue or reach out to MrGranday on GitHub

License
-------
Tasky is licensed under the MIT License. See [LICENSE](LICENSE) for details.

Footer
------
© 2025 GitHub, Inc.