Praxis Google Workspace
by @jfab68
Google Workspace CLI for Gmail, Calendar, and Drive. Official Google APIs wrapper for secure, direct API access without third-party proxies. Use when managin...
clawhub install praxis-gwsπ About This Skill
name: praxis-gws description: Google Workspace CLI for Gmail, Calendar, and Drive. Official Google APIs wrapper for secure, direct API access without third-party proxies. Use when managing emails, calendar events, or searching Google Drive files. Supports Gmail search operators, label management, drafts, calendar event creation, and Drive file search.
Praxis Google Workspace CLI
Official Google APIs wrapper for Gmail, Calendar, and Drive. Direct connection to Google β no third-party proxy.
Setup
1. Create Google Cloud Project
1. Go to https://console.cloud.google.com 2. Create a new project 3. Enable these APIs: - Gmail API - Google Calendar API - Google Drive API
2. Create OAuth Credentials
1. Go to APIs & Services β Credentials 2. Click Create Credentials β OAuth client ID 3. Application type: Desktop app 4. Download the JSON file
3. Configure the CLI
praxis-gws auth credentials /path/to/client_secret.json
4. Authenticate
praxis-gws gmail labels
This will output a Google OAuth URL. Open it in your browser, authorize the app, and paste the authorization code back.
Usage
Gmail Commands
Search messages:
praxis-gws gmail search "is:unread from:example.com"
praxis-gws gmail search "subject:meeting has:attachment" --max 20
Get message:
praxis-gws gmail get
Send email:
praxis-gws gmail send "recipient@example.com" "Subject" "Body text"
Create draft:
praxis-gws gmail draft "recipient@example.com" "Subject" "Draft body"
List labels:
praxis-gws gmail labels
Modify labels:
praxis-gws gmail modify --add STARRED --remove UNREAD
Calendar Commands
List events:
praxis-gws calendar list primary --max 10
praxis-gws calendar list primary --from "2026-02-22T00:00:00" --to "2026-03-01T23:59:59"
Create event:
praxis-gws calendar create primary "Meeting Title" \
--from "2026-02-25T14:00:00" \
--to "2026-02-25T15:00:00"
Drive Commands
Search files:
praxis-gws drive search "name contains 'project'"
praxis-gws drive search "mimeType = 'application/vnd.google-apps.document'"
Get file metadata:
praxis-gws drive get
Gmail Search Operators
is:unread - Unread messagesis:starred - Starred messagesfrom:email@example.com - From specific senderto:email@example.com - To specific recipientsubject:keyword - Subject contains keywordafter:2026/01/01 - After datebefore:2026/12/31 - Before datehas:attachment - Has attachmentsin:inbox - In inboxlabel:important - With specific labelCommon Labels
INBOX - InboxSENT - Sent mailDRAFT - DraftsSTARRED - StarredUNREAD - UnreadIMPORTANT - ImportantTRASH - TrashSPAM - SpamSecurity
~/.config/praxis-gws/googleapis Node.js libraryhttps://www.googleapis.com/auth/gmail.modify
- https://www.googleapis.com/auth/calendar
- https://www.googleapis.com/auth/drive.readonlyTroubleshooting
Error: credentials.json not found
β Run praxis-gws auth credentials /path/to/client_secret.json
Error: Invalid grant / Token expired
β Delete ~/.config/praxis-gws/token.json and re-run to trigger new OAuth flow
"Google hasn't verified this app" warning β Click Advanced β Go to [project name] (unsafe) to proceed
CLI Script
The CLI is available at:
scripts/praxis-gws.js
Requires Node.js and the googleapis npm package:
npm install -g googleapis
π‘ Examples
Gmail Commands
Search messages:
praxis-gws gmail search "is:unread from:example.com"
praxis-gws gmail search "subject:meeting has:attachment" --max 20
Get message:
praxis-gws gmail get
Send email:
praxis-gws gmail send "recipient@example.com" "Subject" "Body text"
Create draft:
praxis-gws gmail draft "recipient@example.com" "Subject" "Draft body"
List labels:
praxis-gws gmail labels
Modify labels:
praxis-gws gmail modify --add STARRED --remove UNREAD
Calendar Commands
List events:
praxis-gws calendar list primary --max 10
praxis-gws calendar list primary --from "2026-02-22T00:00:00" --to "2026-03-01T23:59:59"
Create event:
praxis-gws calendar create primary "Meeting Title" \
--from "2026-02-25T14:00:00" \
--to "2026-02-25T15:00:00"
Drive Commands
Search files:
praxis-gws drive search "name contains 'project'"
praxis-gws drive search "mimeType = 'application/vnd.google-apps.document'"
Get file metadata:
praxis-gws drive get
βοΈ Configuration
1. Create Google Cloud Project
1. Go to https://console.cloud.google.com 2. Create a new project 3. Enable these APIs: - Gmail API - Google Calendar API - Google Drive API
2. Create OAuth Credentials
1. Go to APIs & Services β Credentials 2. Click Create Credentials β OAuth client ID 3. Application type: Desktop app 4. Download the JSON file
3. Configure the CLI
praxis-gws auth credentials /path/to/client_secret.json
4. Authenticate
praxis-gws gmail labels
This will output a Google OAuth URL. Open it in your browser, authorize the app, and paste the authorization code back.
π Tips & Best Practices
Error: credentials.json not found
β Run praxis-gws auth credentials /path/to/client_secret.json
Error: Invalid grant / Token expired
β Delete ~/.config/praxis-gws/token.json and re-run to trigger new OAuth flow
"Google hasn't verified this app" warning β Click Advanced β Go to [project name] (unsafe) to proceed