Skip to content
Back to skills

Gws

ASecurity

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

  • 158 stars
  • 0 votes
  • 0 copies
  • 8 views
  • Added May 27, 2026
data-aigogcpapi

Works with

  • terminal
  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned October 7, 2026

npx -y skills add HybridAIOne/hybridclaw --skill gws --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gws?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Gws
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hybridaione-gws/badge)](https://www.skillsdirectory.com/skills/hybridaione-gws)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: gws
description: Use the gws CLI for Google Calendar, Gmail, Drive, Sheets, Docs, Tasks, and cross-service Workspace workflows.
user-invocable: true
requires:
  bins:
    - gws
metadata:
  hybridclaw:
    category: productivity
    short_description: "Google Workspace via gws CLI."
    tags:
      - google
      - workspace
      - calendar
      - gmail
      - drive
      - sheets
      - docs
      - tasks
    related_skills:
      - google-workspace
    install:
      - id: gws
        kind: npm
        package: "@googleworkspace/cli"
        bins: ["gws"]
        label: Install Google Workspace CLI (npm)
---

# 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 keywords the user mentioned
- Sheets → search Drive first if user gave a name, not an ID

Only ask for clarification when there are genuinely ambiguous results (e.g.,
multiple spreadsheets matching a search).

## Step 3: Pick the right commands

**Calendar**: See [references/calendar.md](references/calendar.md)
**Gmail**: See [references/gmail.md](references/gmail.md)
**Drive & Sheets & Docs**: See [references/drive-docs-sheets.md](references/drive-docs-sheets.md)
**Cross-service workflows**: See [references/workflows.md](references/workflows.md)

For any service not covered above, use `gws <service> --help` to discover
available resources and methods. The raw syntax is:

```
gws <service> <resource> <method> --params '{"key": "val"}' --json '{"body": "data"}'
```

## Confirmation rules

Confirm before actions that **affect other people**:
- Sending email
- Inviting attendees to events
- Sharing files or folders

Do **not** confirm for actions that only affect the user:
- Blocking time on their own calendar
- Creating personal reminders or tasks
- Creating a private document or spreadsheet

The reason: asking "are you sure you want to block 2-4pm?" when the user
just told you to block 2-4pm is friction, not safety.

## Presenting results

Format JSON output into readable summaries. Group calendar events by day.
Show email as sender + subject + snippet. Render sheets data as Markdown
tables. Never dump raw JSON unless the user asks for it.

Files in this skill

  • SKILL.md3.5 KB
  • references/calendar.md1 KB
  • references/drive-docs-sheets.md1.5 KB
  • references/gmail.md948 B
  • references/workflows.md1.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.