| name | gsuite |
| description | Google Suite integration for Sheets, Docs, Slides, Gmail, Calendar, Tasks with multi-account support. Orchestrates operations via CLI tools. |
| project-agnostic | true |
| allowed-tools | ["Bash","Read","Write","Glob","Skill","Task","AskUserQuestion"] |
GSuite Skill
GSuite integration with multi-account support (work + personal).
Capabilities
- Sheets: Read/write cells, create spreadsheets, append rows, manage sheets (list/add/rename/delete tabs)
- Docs: Read/write documents, create docs, export to PDF/DOCX, manage tabs (list/create/rename/delete)
- Slides: Read presentations, create slides, add content
- Drive: List files, share, manage permissions, create folders
- Gmail: Read/send/draft messages, search, manage labels
- Calendar: List/create/update/delete events, manage calendars
- Tasks: List/create/complete/delete tasks
- People: Search contacts, resolve names to emails before operations
- Comments: List/reply/resolve comments on any file type (Docs, Sheets, Slides) via Drive API,
@ac convention for agent-directed comments
- Auth: Multi-account management with account switching
Execution Mode
Use platform-native subagents when available (Task() / subagent tool). Legacy spawn-command flows are not supported.
Fallback: if subagent tooling is unavailable in the current runtime, execute GSuite tools directly via Bash.
| Complexity | Model Tier | Use For |
|---|
| Simple reads | Low-tier (haiku/flash-lite) | auth.py status, gmail.py list, single API calls |
| Moderate | Medium-tier (sonnet/flash) | Multi-step operations, data processing, summarization |
| Complex | High-tier (opus/pro) | Cross-service operations, analysis requiring judgment |
Execution patterns and examples are in cookbook/orchestration.md. Use direct CLI calls with explicit inputs/outputs.
Conventions
Tools: All PEP 723 uv scripts in tools/ (skill-relative). All support --help and --account/-a <email>. Verify exact tool names first (ls tools/) - naming is inconsistent (e.g., gcalendar vs docs).
Cookbook: <tool>.py -> cookbook/<tool>.md (MANDATORY read before executing). If cookbook missing, check <tool>.py --help directly.
Customization: <tool>.py -> ~/.agents/customization/gsuite/<tool>.md
Comment Loop Workflow: For agent-directed comment workflows, see cookbook/comments.md. Default filter: @ac (agent-directed comments).
Large Content Strategy: For multi-line or complex content (e.g.: docs, emails, slides):
- Write content to temp file first (e.g.,
/tmp/content.md)
- Pipe/cat file to CLI tool:
cat /tmp/content.md | uv run <tool>.py write ...
- Benefits: Avoids shell escaping issues, handles large content reliably, easier to debug
Workflow
1. Initialize
- Get date context:
date "+%Y-%m-%dT%H:%M:%S %Z"
- Check auth:
uv run auth.py status --json
- Resolve account (ask if ambiguous, remember for session)
2. Load Preferences (BLOCKING)
STOP. Check customization BEFORE any tool execution or API search.
Check ~/.agents/customization/gsuite/ for:
index.md (always)
<tool>.md (if exists)
people.md (if name mentioned)
3. Resolve People (BLOCKING)
NEVER search People API before checking customization.
If name (not email) mentioned:
- FIRST: Check
~/.agents/customization/gsuite/people.md
- ONLY IF NOT FOUND: Fall back to People API via
cookbook/people.md
- Handle ambiguous matches via AskUserQuestion
4. Read Cookbook (BLOCKING)
STOP. Read cookbook before executing any tool.
- Verify exact tool name:
ls tools/ (e.g., docs.py not gdocs.py)
- Check
cookbook/<tool>.md (exact match)
- If no cookbook:
<tool>.py --help
5. Execute & Report
Run tool, report results (status, data, errors).
6. Learn Preferences (Post-Execution)
On user correction -> read cookbook/preferences.md for storage flow.
Anti-Patterns (NEVER DO)
- NEVER create public assets - All Drive files, Docs, Sheets, Slides must remain private. Never use
role: anyone, type: anyone, or public visibility settings unless user explicitly requests AND confirms.
- Assuming tool names without verifying (
ls tools/ first)
- Searching People API before reading
people.md customization
- Executing tools before reading their cookbook
- Skipping
index.md preferences check
Configuration
Config directory: ~/.agents/gsuite/
~/.agents/gsuite/
credentials.json # OAuth client credentials
service-account.json # Enterprise service account (optional)
config.yml # Confirmation settings (optional)
active_account # Current active account
accounts/<email>/token.json
Confirmation Settings
Write operations require confirmation by default. Configure in config.yml:
confirmation:
default: true
gmail: true
tasks: false
Use --yes or -y flag to bypass confirmation.
Customization Framework
User-side behavior customizations live in ~/.agents/customization/:
~/.agents/customization/
<skill-name>/ # Per-skill customizations
<tool>.md # Tool-specific output format
- NOT tracked in git - user-local configuration
- Skills check for customizations before execution
- Example:
~/.agents/customization/gsuite/gcalendar.md for calendar output format
Extended API Access
For --extra parameter usage (recurring events, CC/BCC, subtasks, etc.), see cookbook/extra.md.
Deprecated
comments.py is deprecated. Use drive.py comments, drive.py reply, drive.py resolve instead.
Error Handling
- No credentials: Read
cookbook/auth.md for interactive setup
- Token expired: Auto-refresh via google-auth library
- Rate limit (429): Exponential backoff with retry
- Permission denied: Verify account has access to resource