skills/google-workspace/SKILL.md
Access Google Workspace (Drive, Docs, Sheets, Gmail, Calendar, Chat, Meet, Admin) via the `gws` CLI. Use this skill when the user wants to read, write, or manage Google Docs, Sheets, Drive files/folders, Gmail messages, Calendar events, or any other Google Workspace resource. Triggers on: Google Docs, Google Sheets, Google Drive, Google Calendar (via gws), Google Chat, Google Meet, spreadsheet operations, document editing, file uploads, sharing permissions, Gmail triage, or any mention of `gws` commands.
npx skillsauth add baphomet480/claude-skills google-workspaceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
gws)One CLI for all of Google Workspace. Reads Google's Discovery Service at runtime, so new API endpoints are available automatically.
gws binary on $PATH (install: pnpm add -g @googleworkspace/cli)gws auth login (OAuth via browser)gws auth statusAll gws skill files are symlinked from the upstream Gemini extension at:
./gws-skills/
Key references:
./gws-skills/gws-shared/SKILL.md - Auth, global flags, security rules./gws-skills/gws-drive/SKILL.md - Drive file/folder operations./gws-skills/gws-docs/SKILL.md - Google Docs read/write./gws-skills/gws-docs-write/SKILL.md - Append text to docs./gws-skills/gws-sheets/SKILL.md - Sheets operations./gws-skills/gws-gmail/SKILL.md - Gmail operations./gws-skills/gws-calendar/SKILL.md - Calendar operations./CONTEXT.md - Core syntax and usage patternsRead the relevant skill file before executing commands you haven't used before.
gws <service> <resource> [sub-resource] <method> [flags]
| Flag | Description |
|------|-------------|
| --params '<JSON>' | URL/query parameters |
| --json '<JSON>' | Request body (POST/PUT/PATCH) |
| --fields '<MASK>' | Limit response fields (critical for context window) |
| --page-all | Auto-paginate (NDJSON output) |
| --upload <PATH> | File for multipart uploads |
| --output <PATH> | Save binary downloads |
| --dry-run | Validate without calling the API |
If you don't know the payload structure, check the schema first:
gws schema <service>.<resource>.<method>
# Example: gws schema drive.files.list
# Example: gws schema docs.documents.batchUpdate
gws drive files list --params '{"q": "name contains \"Report\"", "pageSize": 10}' --fields "files(id,name,mimeType)"
gws drive files create --json '{"name": "My Folder", "mimeType": "application/vnd.google-apps.folder"}'
gws drive files update --params '{"fileId": "FILE_ID", "addParents": "FOLDER_ID"}'
gws drive files export --params '{"fileId": "DOC_ID", "mimeType": "text/plain"}' --output /tmp/doc.txt
gws docs documents get --params '{"documentId": "DOC_ID", "fields": "title,body"}'
For inserting/replacing text, build a JSON payload file to avoid shell escaping:
import json
payload = {
"requests": [
{"insertText": {"location": {"index": 1}, "text": "Hello world"}}
]
}
with open('/tmp/payload.json', 'w') as f:
json.dump(payload, f)
gws docs documents batchUpdate --params '{"documentId": "DOC_ID"}' --json "$(cat /tmp/payload.json)"
gws docs +write --document DOC_ID --text 'Text to append'
gws sheets spreadsheets values get --params '{"spreadsheetId": "ID", "range": "Sheet1!A1:C10"}'
gws gmail users messages list --params '{"userId": "me", "q": "from:[email protected]"}'
--dry-run flag, review the expected changes, isolate any schema errors, fix ONE field at a time, and re-test until the payload is valid before executing the actual mutation.--fields on list/get to avoid massive JSON responses--dry-run for destructive operations before executing!, use single quotes to prevent bash history expansion$(cat /tmp/file.json) instead of inlinedevelopment
Sets up, configures, and optimizes Google Analytics 4 (GA4) properties. Evaluates websites for proper GA4 implementation, tracking codes, and configuration improvements. Uses the Google Analytics Admin API for programmatic setup or provides manual integration paths via gtag.js or Next.js Third Parties.
development
Open-source intelligence on people, companies, domains, and B2B accounts. Use when the user wants to investigate, vet, research, or build a dossier on a target — phrases like "OSINT", "due diligence", "background check", "research this person", "look into [company/domain]", "vet this prospect/vendor", "what does X do", "is this account worth pursuing", "find me a contact at", "who's the buyer for", or any open-source investigation task. Disambiguates identities before reporting and grades every claim by independent source count.
development
Generate, edit, describe, restyle, restore, thumbnail, and batch-process images using xAI (Grok) or OpenAI image APIs and GPT-4o vision. Default provider is xAI ($0.02/image flat rate). Use this skill whenever the user asks to generate, create, make, draw, or design an image or picture using AI, or wants to edit, modify, transform, restyle, composite, or inpaint an existing image. Also handles image description and alt-text generation, background removal, style transfer, photo restoration, thumbnail creation, and batch generation from JSON manifests. Trigger when the user mentions DALL-E, gpt-image, Grok image, xAI image, OpenAI image generation, or wants AI-generated visuals for any purpose (logos, mockups, illustrations, thumbnails, icons, concept art, memes). Also trigger for batch image generation, generating a set or series of images, processing multiple images from a manifest, or creating consistent image collections. If the user says "make me an image of...", "generate a picture", "edit this photo to...", "describe this image", "remove the background", "make this look like watercolor", "restore this old photo", "create a thumbnail", "generate a batch of images", or "process this image manifest", this is the skill to use.
testing
Agentic OS Orchestrator. Process and execute tasks from the shared .agent/state/tasks.json queue. Use when the user asks to 'check the queue', 'process tasks', or run the heartbeat.