From hive
Access any Google Workspace API via gws CLI or MCP tools. Use for Sheets, Tasks, Chat, Slides, People, Forms, Meet, and as fallback for Drive/Gmail/Calendar/Docs when existing handlers lack a feature. Use existing Python handlers first for Gmail (send-blocking), Drive (domain allowlist), Calendar, Docs.
npx claudepluginhub skywalking-dev/hiveThis skill is limited to using the following tools:
Unified CLI for all Google Workspace APIs. Dynamically discovers API methods from Google Discovery Documents.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Unified CLI for all Google Workspace APIs. Dynamically discovers API methods from Google Discovery Documents.
| Need | Use |
|---|---|
| Gmail read/draft/labels/filters | scripts/gmail_handler.py (has send-blocking guardrail) |
| Drive list/search/upload/share | scripts/google_drive_handler.py (has domain allowlist) |
| Calendar events/freebusy | scripts/google_calendar_handler.py |
| Docs get/create/update/export | scripts/google_docs_handler.py (has Markdown conversion) |
| Sheets, Tasks, Chat, Slides, People, Forms, Meet, Admin | gws |
| Any API not covered by existing handlers | gws |
| Bulk operations with auto-pagination | gws --page-all |
When MCP server is running, tools are available as mcp__google-workspace__*. Use compact mode — one tool per service + discover.
gws <service> <resource> <method> [--params '{}'] [--json '{}']
Always check schema before executing unfamiliar methods:
gws schema <service.resource.method>
# e.g.
gws schema sheets.spreadsheets.values.get
gws schema tasks.tasklists.list
# Read spreadsheet values
gws sheets spreadsheets.values get --params '{"spreadsheetId": "ID", "range": "Sheet1!A1:D10"}'
# Write values
gws sheets spreadsheets.values update --params '{"spreadsheetId": "ID", "range": "Sheet1!A1", "valueInputOption": "USER_ENTERED"}' --json '{"values": [["a","b"],["c","d"]]}'
# Get spreadsheet metadata
gws sheets spreadsheets get --params '{"spreadsheetId": "ID"}'
# List task lists
gws tasks tasklists list
# List tasks in a list
gws tasks tasks list --params '{"tasklist": "LIST_ID"}'
# Create task
gws tasks tasks insert --params '{"tasklist": "LIST_ID"}' --json '{"title": "Do something", "notes": "Details"}'
# Complete task
gws tasks tasks patch --params '{"tasklist": "LIST_ID", "task": "TASK_ID"}' --json '{"status": "completed"}'
# List spaces
gws chat spaces list
# Send message
gws chat spaces.messages create --params '{"parent": "spaces/SPACE_ID"}' --json '{"text": "Hello"}'
# List contacts
gws people people.connections list --params '{"resourceName": "people/me", "personFields": "names,emailAddresses"}'
# Search
gws people people searchContacts --params '{"query": "John", "readMask": "names,emailAddresses"}'
# Get presentation
gws slides presentations get --params '{"presentationId": "ID"}'
| Flag | Purpose |
|---|---|
--params '{}' | URL/query parameters |
--json '{}' | Request body (POST/PATCH/PUT) |
--upload <path> | File upload (multipart) |
--output <path> | Save binary response to file |
--format table | Table output instead of JSON |
--page-all | Auto-paginate (NDJSON) |
--page-limit N | Max pages (default 10) |
--api-version v2 | Override API version |
# First-time setup (needs gcloud)
gws auth setup
# Login (opens browser)
gws auth login -s drive,gmail,calendar,docs,sheets,tasks,chat
# Check status
gws auth status
# Multi-account
gws auth login --account work@publica.la
gws auth login --account personal@gmail.com
gws auth default --account work@publica.la
All commands return JSON by default. Use --format table for human-readable output.
scripts/gmail_handler.py which blocks send/draft-sendscripts/google_drive_handler.py which enforces domain allowlistgws schema before executing unfamiliar methods to verify required params