gws-workspace/claude/SKILL.md
Interact with all Google Workspace services via the official gws CLI — Drive, Gmail, Calendar, Docs, Sheets, Tasks, Chat, Forms, Keep, Meet, People, Classroom, and cross-service Workflows.
npx skillsauth add leprachuan/pot-o-skills gws-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.
Before using, verify gws is installed and authenticated:
which gws && gws auth status
If not installed, see Installation section in the parent SKILL.md.
When the user asks to interact with Google Workspace services, use Bash tool to run gws commands.
gws auth status 2>&1 | python3 -c "import sys,json; d=json.load(sys.stdin); print(f'User: {d.get(\"user\",\"NOT AUTH\")} | Valid: {d.get(\"token_valid\",False)}')"
# Human-readable
gws calendar events list --params '{"calendarId":"primary","maxResults":10}' --format table
# For processing with jq
gws drive files list --params '{"pageSize":20}' | jq -r '.files[] | "\(.id)\t\(.name)"'
gws calendar events insert --params '{"calendarId": "primary"}' \
--json '{
"summary": "EVENT_TITLE",
"start": {"dateTime": "2026-03-15T10:00:00-05:00", "timeZone": "America/New_York"},
"end": {"dateTime": "2026-03-15T11:00:00-05:00", "timeZone": "America/New_York"},
"description": "Optional description"
}'
gws calendar events insert --params '{"calendarId": "primary"}' \
--json '{"summary": "Holiday", "start": {"date": "2026-03-17"}, "end": {"date": "2026-03-18"}}'
gws gmail +send --to "[email protected]" --subject "Subject" --body "Body text"
# HTML email:
gws gmail +send --to "[email protected]" --body "<b>Bold</b>" --html
gws drive +upload /path/to/file.pdf --name "Custom Name.pdf"
# Upload to specific folder:
gws drive +upload /path/to/file.pdf --parent FOLDER_ID
gws sheets +read --spreadsheet SPREADSHEET_ID --range "Sheet1!A1:Z100"
gws schema calendar.events.insert
gws schema drive.files.list
gws schema gmail.users.messages.send
Check exit codes:
gws auth login to re-authenticate--params or --json argumentsIf Calendar/Drive/Gmail API is not enabled, visit the GCP Console APIs Library to enable it.
For complex tasks, chain commands using shell variables:
# Create a doc and get its ID
DOC_ID=$(gws docs documents create --json '{"title": "Report"}' | jq -r '.documentId')
# Append content to it
gws docs +write --document "$DOC_ID" --text "Content here"
# Share it with anyone
gws drive permissions create --params '{"fileId": "'"$DOC_ID"'"}' \
--json '{"role": "reader", "type": "anyone"}'
echo "https://docs.google.com/document/d/$DOC_ID"
data-ai
Interactive GitHub issues kanban board with agent assignments, due dates, and glassmorphism theming. Fully configurable for any GitHub repository.
data-ai
Interactive TODO board for Wee Canvas. Displays TODOs from both GitHub Issues (leprachuan/fosterbot-home) and flat files in two views: list and kanban. Features filtering, drag-and-drop status changes, quick-add, and auto-refresh every 30 seconds. Use when Foster asks to "show TODOs", "open TODO board", "view my tasks", or "TODO kanban".
tools
Web-based terminal tools for Wee Canvas: remote SSH terminal (WebSSH) and local bash terminal (ttyd). Embeds interactive terminal panels in Wee Canvas iframes. Use when the user asks for a 'web terminal', 'local terminal', 'browser SSH', 'webssh', or wants to interact with a host through the WebUI canvas. For browser windows, see the browser-window skill.
development
Use when you need to send WebEx notifications to flipkey-home-bot - supports markdown formatting, auto-retry with backoff, rate limiting, and message history tracking