Hyprtask
A simple CLI tool for Google Tasks, built with Rust for fast and efficient task management from your terminal.
✨ Features
- 🚀 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
📦 Installation
Download from Releases (Recommended)
Visit Releases to download the latest version
Build from Source
Requires Rust 1.70 or newer:
The compiled binary will be at target/release/hyprtask
🚀 Quick Start
1. Login with Google Account
Your browser will open automatically for Google account authentication.
2. Manage Tasks
# List tasks
# Add a task
# Complete a task
That's it!
📖 Usage
Authentication
List Tasks
Add Tasks
Complete Tasks
Get Help
📸 Examples
List Tasks
Add Task
Complete Task
)
🔐 Privacy & Security
- ✅ 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
🛠️ Developer Information
Tech Stack
- 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
Project Structure
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
Local Development
# Build development version
# Run tests
# Build release version
Testing
Run comprehensive integration tests:
Tests cover:
- Basic functionality of all commands
- Edge case handling
- Error handling
- OAuth authentication flow
- Task synchronization
Contributing
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
❓ FAQ
Can't open browser for login?
If automatic browser opening fails, manually copy the URL displayed in the terminal to your browser.
Getting "Not logged in" error?
Run hyprtask login to re-authenticate.
What if token expires?
The program automatically refreshes the token, no manual action needed.
Can I use multiple Google accounts?
Currently supports one account at a time. To switch accounts, logout first then login again.
📄 License
MIT License - see LICENSE file for details
🙏 Acknowledgments
- Google Tasks API
- Rust community and all dependency maintainers
If this project helps you, please give it a ⭐ Star!