skills/gws-best-practices/SKILL.md
Best practices for using the gws CLI with supported Google Workspace services (Drive, Docs, Sheets, Slides). Use when performing any operation with the gws CLI.
npx skillsauth add garrettroi/open-manus gws-best-practicesInstall 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.
Critical guidelines for using the gws command-line interface. Follow these rules to prevent common errors and protect user data.
Only the following services are currently available and pre-configured:
All other services (Gmail, Calendar, Tasks, Chat, etc.) are not available. Do NOT attempt to use them.
Do NOT use the browser to open Google Drive, Docs, Sheets, or Slides links (e.g., https://docs.google.com/...). The browser environment may not be logged into the correct Google account and will likely fail to access the file.
Instead, use gws commands to interact with these resources. To view content, use the appropriate get or export command (e.g., gws drive export).
\n vs. \vWhen inserting text into Google Slides via gws slides presentations batchUpdate, the API interprets newline characters in specific ways. Using the correct character is critical for proper formatting.
| Input String | API Interpretation | Visual Result in Slides |
| :--- | :--- | :--- |
| First\nSecond | Two separate paragraphs | First<br/>Second (like pressing Enter) |
| First\vSecond | A single paragraph with a vertical tab (\x0b) character | First<br/>Second (like pressing Shift+Enter) |
| First\n\nSecond| Three paragraphs, with the middle one being empty | First<br/><br/>Second (a blank line between paragraphs) |
\n (Newline): The API translates each \n into a new paragraphMarker. Therefore, AAA\nBBB results in two distinct paragraphs. AAA\n\nBBB results in three paragraphs, with the middle one being empty, creating a visible blank line.\v (Vertical Tab, or \u000b): The API treats this as a special character within a single textRun. It does not create a new paragraph. It renders as a soft line break, which is useful for multi-line text that should belong to the same bullet point or paragraph block.Rule: Use \n for new paragraphs/bullet points. Use \v for line breaks within a single paragraph/bullet point.
CRITICAL: Do NOT execute any gws command that permanently deletes user data — ever.
This includes permanently deleting files, slides, presentations, emails, calendar events, or any other resource. Always use trash/archive operations instead. Permanent deletion is irreversible and can cause catastrophic data loss. Even if the user asks for deletion, prefer moving to trash first and confirm explicitly before proceeding. Never use permanent deletion.
On first use or after updating the CLI, run the following once to generate local skill documentation:
gws generate-skills
This produces skill directories under skills/ and an index at docs/skills.md. Read the generated index and individual skill files to learn about available commands, services, recipes, and workflows.
To update the gws CLI to the latest version:
pnpm update -g @googleworkspace/cli
development
# Voice Sanitizer This skill cleans up text before it is sent to the Text-to-Speech (TTS) engine. It removes technical jargon, code blocks, and long URLs to ensure the agent sounds natural and conversational in voice chat. ## Usage To sanitize text for speech, run the following command in the terminal: ```bash python3 /app/skills/voice_sanitizer/sanitizer.py "Your long, technical text with `code` and https://links.com/long-url" ``` ### Example Output ```text Your long, technical text with a
tools
Professional AI video production workflow. Use when creating videos, short films, commercials, or any video content using AI generation tools.
tools
Secure API key access from the centralized vault. Fetch keys on-demand without storing them in environment variables.
testing
# Task Board — Persistent Task Tracking for Open Manus This skill provides a shared task board backed by Redis. Harmony uses it to track delegated work across all agents, and agents use it to report progress and completion. ## When to Use - **Harmony**: Use this whenever you delegate a task to an agent. Add the task to the board, then check the board periodically to follow up. - **Worker Agents**: Use this to update your task status or mark tasks as complete. ## Commands ### Add a new task