gws

Solid

Use the gws CLI for Google Calendar, Gmail, Drive, Sheets, Docs, Tasks, and cross-service Workspace workflows.

AI & Automation 126 stars 11 forks Updated today MIT

Install

View on GitHub

Quality Score: 82/100

Stars 20%
70
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Google Workspace via gws CLI ## Step 1: Check auth before anything else HybridClaw injects `GOOGLE_WORKSPACE_CLI_TOKEN` into the agent runtime when Google auth is configured with `hybridclaw auth login google`. Run exactly `gws auth status` (no API call, instant) and parse the JSON output. Do not add `--json`; `gws auth status --json` is invalid because auth status already prints JSON by default. Treat auth as configured when any of these are true: - `credential_source` is `"token_env_var"` - `token_env_var` is `true` - `auth_method` is not `"none"` - `storage` is not `"none"` This matters because HybridClaw passes its Google OAuth token through `GOOGLE_WORKSPACE_CLI_TOKEN`; current `gws auth status` may still report `auth_method: "none"` for that env-token mode. Only if none of the authenticated states above are present, tell the user: > Run `hybridclaw auth login google` in your terminal to connect your Google account. If env-token auth is present, do not ask the user to log in again. Continue with the requested `gws` command immediately. That's it. Don't explain OAuth, GCP projects, scopes, or alternatives unless a later `gws` command returns an auth or scope error. The HybridClaw login flow works for both personal Gmail and Workspace accounts. ## Step 2: Act immediately Do not ask clarifying questions. Run the command with sensible defaults: - Calendar → `primary` calendar, user's timezone - Gmail → `userId: me`, unread inbox - Drive → search by name keywor...

Details

Author
HybridAIOne
Repository
HybridAIOne/hybridclaw
Created
5 months ago
Last Updated
today
Language
TypeScript
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category