Add todo items to Google Tasks directly from Ulauncher using OAuth2 authentication.
- Clone or download this extension to your Ulauncher extensions directory
- Install the required Python packages:
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the Google Tasks API:
- Go to "APIs & Services" > "Library"
- Search for "Tasks API" and enable it
- Create OAuth2 credentials:
- Go to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- Choose "Desktop application" as the application type
- Download the credentials.json file
- Place the credentials.json file in
~/.config/ulauncher_tasks/credentials.json
In Ulauncher preferences, configure the extension with:
- Credentials File Path: Path to your downloaded credentials.json file
- Token Storage Path: Where to store OAuth2 tokens (defaults to
~/.cache/ulauncher_tasks) - Task List ID: Optional - specify a particular task list ID (uses default list if empty)
- Open Ulauncher
- Type
task(or your configured keyword) - Type your task
- Press Enter to add it to Google Tasks
On first use, the extension will:
- Open your default web browser
- Ask you to log in to Google
- Request permission to access your Google Tasks
- Store the OAuth2 token securely for future use
- OAuth2 Authentication: Uses Google's secure OAuth2 flow instead of app passwords
- Limited Scopes: Only requests access to Google Tasks (not your entire Google account)
- Secure Token Storage: OAuth2 tokens are stored with restricted file permissions
- Input Sanitization: All user inputs are sanitized and length-limited
- Minimal Logging: No sensitive information is logged
- Add tasks directly to Google Tasks
- OAuth2 authentication (no app passwords required)
- Automatic token refresh
- Uses default task list or specify custom list
- Simple keyword-based interface
- Secure credential management
- Python 3.6+
- google-api-python-client
- google-auth-httplib2
- google-auth-oauthlib
- Google account
- Google Cloud Console project with Tasks API enabled
- "OAuth2 credentials required": Download credentials.json from Google Cloud Console
- "Google Tasks API not available": Install required packages with pip
- Authentication fails: Delete token.json and re-authenticate
- No task list available: Check that you have at least one task list in Google Tasks
This extension uses OAuth2 authentication, which is more secure than app passwords because:
- Limited scope access (only Google Tasks)
- Tokens can be revoked from Google Account settings
- No need to store passwords
- Follows Google's recommended authentication practices