TUI for Google Tasks
Project description
ggltasks - Google Tasks TUI
A lightning-fast, robust TUI for Google Tasks, built for terminal power users.
Features
- Async UI: Network requests are threaded. The app boots instantly and never freezes.
- Native Sync: Moves, completions, and deletions flawlessly sync with the official Google backend.
- Smart Timestamps: Due dates and "Last Updated" timestamps.
- Vim Navigation: Navigate entirely using
h/j/k/l.
Screenshots
Installation
Google requires you to generate a personal "Client Secret" to access your data securely.
Step 1: Get Google API Credentials
- Go to the Google Cloud Console.
- Create a New Project (e.g.,
ggltasks-cli). - Search for Google Tasks API and click Enable.
- Go to APIs & Services → Credentials.
- Click + CREATE CREDENTIALS → OAuth client ID. (Choose "Desktop app" as the Application type).
- You may need to configure the OAuth consent screen first — just set it to "External" and add your Google account as a test user.
- Download the JSON file and rename it exactly to
client_secrets.json.
Step 2: Install and Run
- Install via pip:
pip install ggltasks
- Run the app:
ggltasks
- The app will automatically create the
.ggltasksconfig folder in your home directory and give you instructions on where to place yourclient_secrets.jsonfile. - Move your
client_secrets.jsonfile into that folder and runggltasksagain!
Note: The first time it successfully connects, a browser window will pop up asking you to log in to your Google Account. A local token is saved so you only have to do this once.
Usage
| Key | Action |
|---|---|
q |
Quit |
w |
Force Sync |
↑ / k |
Navigate Up |
↓ / j |
Navigate Down |
← / h |
Back / Switch Panels |
→ / l |
Enter Subtasks |
Shift + K |
Move Task Up |
Shift + J |
Move Task Down |
o |
Add new task/list |
d |
Delete item |
r |
Rename item |
c |
Toggle task completion |
Shift + X |
Clear Completed Tasks |
a |
Set Due Date |
i |
Edit Notes |
p |
Paste deleted task |
? |
Toggle Help Menu |
Task Status Symbols
[ ]: Pending[X]: Completed*: Has text Note(N): Number of direct subtasks[Upd: MM-DD HH:MM]: Local time the task was last updated
Known Limitations (Google Tasks API)
These are inherent limitations of the official Google Tasks API backend, not this app:
- No Times on Due Dates: The API strips specific hours/minutes off due dates, forcing them to midnight UTC. You can assign a day, but not a time.
- No Recurring Tasks: The API does not allow 3rd party apps to create or manage recurring/repeating tasks.
- Subtask Display Limits: The API allows infinitely deep subtasks (and this CLI app fully supports them). However, Google's official web/mobile apps will only display 1 level deep.
License
MIT License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ggltasks-0.2.6.tar.gz.
File metadata
- Download URL: ggltasks-0.2.6.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b517336903f010ae64cfc44a719e9fa5d4f713e0f12c867b0388569ec5befbc
|
|
| MD5 |
cff90d16111bd8b70c46a0aa771d2afc
|
|
| BLAKE2b-256 |
9a85122c19226afaea16d655192330e7c852b87d0e725eb774649416899d755c
|
Provenance
The following attestation bundles were made for ggltasks-0.2.6.tar.gz:
Publisher:
publish.yml on noblemage/ggltasks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ggltasks-0.2.6.tar.gz -
Subject digest:
0b517336903f010ae64cfc44a719e9fa5d4f713e0f12c867b0388569ec5befbc - Sigstore transparency entry: 2176349430
- Sigstore integration time:
-
Permalink:
noblemage/ggltasks@b644dae9bd692eaf9bc4c049cdd37d51162f8155 -
Branch / Tag:
refs/tags/v0.2.6 - Owner: https://github.com/noblemage
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b644dae9bd692eaf9bc4c049cdd37d51162f8155 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ggltasks-0.2.6-py3-none-any.whl.
File metadata
- Download URL: ggltasks-0.2.6-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
074ead6bad956da4c91cf27d8d92bd0337d9147e1cbe638a1e0cb257af073c95
|
|
| MD5 |
ac59245f0094adf0b140385039af7e05
|
|
| BLAKE2b-256 |
2defaa23e5605aaf06941d47e3eaf9dbf3b38e8291527b17ed350420e0e9ac0b
|
Provenance
The following attestation bundles were made for ggltasks-0.2.6-py3-none-any.whl:
Publisher:
publish.yml on noblemage/ggltasks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ggltasks-0.2.6-py3-none-any.whl -
Subject digest:
074ead6bad956da4c91cf27d8d92bd0337d9147e1cbe638a1e0cb257af073c95 - Sigstore transparency entry: 2176349782
- Sigstore integration time:
-
Permalink:
noblemage/ggltasks@b644dae9bd692eaf9bc4c049cdd37d51162f8155 -
Branch / Tag:
refs/tags/v0.2.6 - Owner: https://github.com/noblemage
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b644dae9bd692eaf9bc4c049cdd37d51162f8155 -
Trigger Event:
push
-
Statement type: