Google Workspace,
from the terminal.
A Python command-line tool that reads Gmail, Calendar, Drive, Tasks and Contacts without opening a browser. It is read-only today. The CLI core works. The scheduled-automation layer around it never did, and is paused.
This page is the build record for GWS CLI, a Python command-line tool that reads five Google Workspace APIs (Gmail, Calendar, Drive, Tasks and Contacts), so common lookups never require opening a browser tab.
Google Workspace,
from the terminal.
What It Is
GWS CLI (Google Workspace CLI) is a Python tool that puts five Google Workspace APIs behind one command-line interface. The goal: handle the most common lookups without switching to a browser, without navigating a UI, and without leaving the terminal.
$ python cli.py gmail search "invoice from:accounts@vendor.com"
The interface is intentionally thin: small wrappers over the Google APIs with clean output. No heavy abstraction. No config files beyond OAuth credentials.
Five APIs,
all read-only today.
Capabilities
Every scope the tool asks for is read-only. It reads and reports. It does not write to any Google account.
Gmail
Search messages and read one in full. A digest command scans newsletters and uses the Claude API to keep only what is relevant.
$ python cli.py gmail digest --days 2
Google Calendar
List today's events, look a few days ahead, and list calendars.
$ python cli.py cal upcoming --days 7
Drive, Tasks, Contacts
Search Drive by file name or list recent files. List open tasks. Look up a contact by email through the People API.
$ python cli.py drive recent
Built versus planned
| API | In the code today | Planned, not built |
|---|---|---|
| Gmail | search, read, newsletter scan, digest | drafts, sending, labels |
| Calendar | today, upcoming, list calendars | creating or updating events |
| Drive | search by name, recent files | none |
| Tasks | list tasks | none |
| People (Contacts) | look up by email | none |
Core built.
Automation layer paused.
Status & Roadmap
Why the automation layer is paused
The CLI commands work when run by hand. The scheduled-automation layer built around them (unattended newsletter digests, idea mining into Obsidian) never completed a single successful run and was dismantled. Reviving it means fixing the scheduling setup and re-authenticating before any of it runs unattended again.
Possible next steps
Nothing is scheduled. If the tool comes back, the first step is write scopes for drafts and calendar events, behind a confirm step. rclone for Google Drive sync is a possible extension of the CLI itself, apart from the automation question.
No async needed.
Just clean wrappers.
Tech Stack
Language
Python · synchronous (no async required for Google API calls)
APIs in use
Gmail · Calendar · Drive · Tasks · People, all read-only · OAuth 2.0 · Claude API for the digest
Planned, not built
Write scopes for Gmail drafts and Calendar events · rclone (Google Drive sync)