plugins/sjawhar/skills/google-workspace/SKILL.md
Use when reading, searching, uploading, downloading, sharing, or organizing files on Google Drive. Also for Google Docs, Sheets, Gmail, or Calendar access. Triggers on "google drive", "gdrive", "workspace", Drive/Docs URLs (drive.google.com, docs.google.com), file IDs, or requests to find, list, export, share, or manage cloud documents and spreadsheets.
npx skillsauth add sjawhar/dotfiles 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.
Manage Google Drive (and other Workspace APIs) via MCP tools or the gws CLI. All output is structured JSON.
Use skill_mcp(mcp_name="gws", ...) to invoke Drive operations. Discover available tools:
skill_mcp(mcp_name="gws")
Tool names match CLI structure. Example MCP calls:
skill_mcp(mcp_name="gws", tool_name="drive_files_list", arguments='{"pageSize": 10}')
skill_mcp(mcp_name="gws", tool_name="drive_files_list", arguments='{"q": "name contains \"report\""}')
If tool names don't match expectations, discover via CLI: gws drive --help.
# List files
gws drive files list --params '{"pageSize": 10}'
# Search files
gws drive files list --params '{"q": "name contains \"report\"", "pageSize": 10}'
# Download a file
gws drive files get --params '{"fileId": "FILE_ID", "alt": "media"}' -o ./output.pdf
# Upload a file
gws drive files create --json '{"name": "report.pdf"}' --upload ./report.pdf
# Share a file
gws drive permissions create \
--params '{"fileId": "FILE_ID"}' \
--json '{"role": "reader", "type": "user", "emailAddress": "[email protected]"}'
gws <service> <resource> <method> [flags]
| Flag | Description |
|------|-------------|
| --params '{...}' | URL/query parameters |
| --json '{...}' | Request body |
| --upload <PATH> | Upload file (multipart) |
| -o, --output <PATH> | Save response to file |
| --page-all | Auto-paginate (NDJSON) |
| --dry-run | Preview without calling API |
gws drive --help # List all resources
gws schema drive.files.list # Inspect params/types for a method
Use gws schema output to build --params and --json flags.
name contains 'budget' # Name search
mimeType = 'application/pdf' # By type
modifiedTime > '2025-01-01T00:00:00' # Recently modified
'FOLDER_ID' in parents # Files in folder
trashed = false # Exclude trash
sharedWithMe = true # Shared with me
Combine with and: name contains 'report' and mimeType = 'application/pdf'
# Interactive (needs browser)
gws auth login -s drive
# Headless: export from authenticated machine, then use on server
gws auth export --unmasked > ~/.config/gws/credentials.json
export GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE=~/.config/gws/credentials.json
# Service account
export GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE=/path/to/service-account.json
Add services to the MCP args (edit this skill's frontmatter) and auth scope:
gws auth login -s drive,gmail,sheets
gws mcp -s drive,gmail,sheets
fields parameter required for some methods (about.get, comments.*). Check gws schema if you get empty responses.! which bash interprets as history expansion. Always single-quote: 'Sheet1!A1:C10'-s drive not -s all for personal use.files.export with a target MIME type (application/pdf, text/csv), not files.get.gws is under active development. Expect occasional breaking changes in flags or MCP tool names.For complete API coverage, see the upstream skills:
# Fetch any upstream skill for detailed reference
curl -sL https://raw.githubusercontent.com/googleworkspace/cli/main/skills/gws-drive/SKILL.md
development
Use when searching flights, hotels, or rental cars; comparing fares across flexible dates; discovering cheap destinations from a fixed origin; or hunting hidden-city ticketing deals. Trigger on multi-city itineraries, fare calendars, "where can I fly cheaply", price-sensitive trip planning, or any time the user wants a sanity-check against Google Flights pricing — Skiplagged surfaces hidden-city deals other engines deliberately hide.
development
Search the web via Ceramic Search (lexical/keyword-based). Use when looking up current events, recent news, time-sensitive facts, specific people/products/companies, technical docs, or any topic requiring fresh web results. Triggers on "search the web", "look up", "find recent", "latest news", "current", or when built-in knowledge is likely stale.
tools
Use when reading WhatsApp messages, searching conversations, sending messages, listing chats, or interacting with WhatsApp workspaces
tools
Watch CI status, fix failures, and merge when green