A simple CLI tool for Google Tasks, built with Rust for fast and efficient task management from your terminal.
- π Zero Configuration - Download and use, no API credentials needed
- β‘ High Performance - Written in Rust, single executable binary
- π Simple & Intuitive - Clean command-line interface
- π Auto Sync - Real-time sync with Google Tasks
cargo install hyprtaskRequires Rust 1.70 or newer:
git clone https://github.com/yourusername/hyprtask.git
cd hyprtask
cargo build --releaseThe compiled binary will be at target/release/hyprtask
hyprtask loginYour browser will open automatically for Google account authentication.
# List tasks
hyprtask li
# Add a task
hyprtask add "Buy milk"
# Complete a task
hyprtask done 1That's it!
hyprtask login # Login with Google account
hyprtask logout # Logouthyprtask li # List incomplete tasks
hyprtask li -d # List completed tasks
hyprtask li -a # List all taskshyprtask add "Task title"hyprtask done 1 # Complete task #1
hyprtask done 1 3 5 # Complete tasks #1, #3, #5
hyprtask done --all # Complete all incomplete taskshyprtask --help # Show all commands
hyprtask <command> --help # Show help for specific command$ hyprtask li
1. [ ] Buy milk
2. [ ] Finish report
3. [ ] Clean room$ hyprtask add "Drink water"
"Drink water" has been added to your tasks, number 4.$ hyprtask done 1
Complete "Buy milk" task? (Y/n): y
"Buy milk" has been marked as completed.- β Uses official Google OAuth 2.0 authentication
- β
Token stored locally at:
~/.config/hyprtask/token.json - β Only requests Google Tasks access permission
- β No data collection or transmission of personal information
- Language: Rust 2021 Edition
- CLI Framework: clap 4.5
- Async Runtime: tokio 1.40
- HTTP Client: reqwest 0.12
- OAuth 2.0: oauth2 4.4
- API: Google Tasks API v1
hyprtask/
βββ src/
β βββ main.rs # Main entry point
β βββ api/ # Google Tasks API integration
β βββ auth/ # OAuth 2.0 authentication logic
β βββ cli/ # Command-line interface definitions
β βββ models/ # Data models
β βββ utils/ # Utility functions
βββ Cargo.toml # Project configuration
βββ test_comprehensive.sh # Test script
# Build development version
cargo build
# Run tests
./test_comprehensive.sh
# Build release version
cargo build --releaseRun comprehensive integration tests:
./test_comprehensive.shTests cover:
- Basic functionality of all commands
- Edge case handling
- Error handling
- OAuth authentication flow
- Task synchronization
Contributions are welcome! Please:
- Fork this 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
If automatic browser opening fails, manually copy the URL displayed in the terminal to your browser.
Run hyprtask login to re-authenticate.
The program automatically refreshes the token, no manual action needed.
Currently supports one account at a time. To switch accounts, logout first then login again.
MIT License - see LICENSE file for details
- Google Tasks API
- Rust community and all dependency maintainers
If this project helps you, please give it a β Star!