gws-slides
Google Slides CLI operations via gws. Use when users need to create, read, or edit Google Slides presentations. Triggers: slides, presentation, google slides, deck.
What this skill does
# Google Slides (gws slides) `gws slides` provides CLI access to Google Slides with structured JSON output. > **Disclaimer:** `gws` is not the official Google CLI. This is an independent, open-source project not endorsed by or affiliated with Google. ## Dependency Check **Before executing any `gws` command**, verify the CLI is installed: ```bash gws version ``` If not found, install: `go install github.com/omriariav/workspace-cli/cmd/gws@latest` ## Authentication Requires OAuth2 credentials. Run `gws auth status` to check. If not authenticated: `gws auth login` (opens browser for OAuth consent). For initial setup, see the `gws-auth` skill. ## Quick Command Reference | Task | Command | |------|---------| | Get presentation info | `gws slides info <id>` | | List all slides | `gws slides list <id>` | | Read slide content | `gws slides read <id>` | | Read specific slide | `gws slides read <id> 3` | | Read with speaker notes | `gws slides read <id> --notes` | | Create presentation | `gws slides create --title "My Deck"` | | Add a slide | `gws slides add-slide <id> --title "Slide Title" --body "Content"` | | Add blank slide | `gws slides add-slide <id> --layout BLANK` | | Delete a slide | `gws slides delete-slide <id> --slide-number 3` | | Duplicate a slide | `gws slides duplicate-slide <id> --slide-number 2` | | Add a shape | `gws slides add-shape <id> --slide-number 1 --type RECTANGLE` | | Add an image | `gws slides add-image <id> --slide-number 1 --url "https://..."` | | Add text to shape | `gws slides add-text <id> --object-id <obj-id> --text "Hello"` | | Add text to table cell | `gws slides add-text <id> --table-id <tbl-id> --row 0 --col 0 --text "Cell"` | | Add speaker notes | `gws slides add-text <id> --notes --slide-number 1 --text "Notes here"` | | Clear speaker notes | `gws slides delete-text <id> --notes --slide-number 1` | | Find and replace | `gws slides replace-text <id> --find "old" --replace "new"` | | Delete any element | `gws slides delete-object <id> --object-id <obj-id>` | | Clear text from shape | `gws slides delete-text <id> --object-id <obj-id>` | | Style text | `gws slides update-text-style <id> --object-id <obj-id> --bold --color "#FF0000"` | | Move/resize element | `gws slides update-transform <id> --object-id <obj-id> --x 200 --y 100` | | Create a table | `gws slides create-table <id> --slide-number 1 --rows 3 --cols 4` | | Insert table rows | `gws slides insert-table-rows <id> --table-id <tbl-id> --at 1 --count 2` | | Delete table row | `gws slides delete-table-row <id> --table-id <tbl-id> --row 2` | | Style table cell | `gws slides update-table-cell <id> --table-id <tbl-id> --row 0 --col 0 --background-color "#FFFF00"` | | Style table border | `gws slides update-table-border <id> --table-id <tbl-id> --row 0 --col 0 --color "#000000"` | | Paragraph style | `gws slides update-paragraph-style <id> --object-id <obj-id> --alignment CENTER` | | Shape properties | `gws slides update-shape <id> --object-id <obj-id> --background-color "#0000FF"` | | Reorder slides | `gws slides reorder-slides <id> --slide-ids "slide1,slide2" --to 0` | | Set slide background color | `gws slides update-slide-background <id> --slide-number 1 --color "#005843"` | | Set slide background image | `gws slides update-slide-background <id> --slide-number 1 --image-url "https://..."` | | List available layouts | `gws slides list-layouts <id>` | | Add slide with custom layout | `gws slides add-slide <id> --layout-id <layout-id>` | | Add a line | `gws slides add-line <id> --slide-number 1 --start-x 50 --start-y 50 --end-x 300 --end-y 200` | | Group elements | `gws slides group <id> --object-ids "obj1,obj2,obj3"` | | Ungroup elements | `gws slides ungroup <id> --group-id <group-id>` | | Get slide thumbnail | `gws slides thumbnail <id> --slide <slide-id-or-number>` | ## Detailed Usage ### info — Get presentation info ```bash gws slides info <presentation-id> [--notes] ``` **Flags:** - `--notes` — Include speaker notes in output ### list — List all slides ```bash gws slides list <presentation-id> [--notes] ``` Lists all slides with their content and object IDs. **Flags:** - `--notes` — Include speaker notes in output ### read — Read slide content ```bash gws slides read <presentation-id> [slide-number] [--notes] ``` Reads text content. Omit slide number to read all slides. Slide numbers are **1-indexed**. **Flags:** - `--notes` — Include speaker notes in output ### create — Create a presentation ```bash gws slides create --title <title> ``` ### add-slide — Add a slide ```bash gws slides add-slide <presentation-id> [flags] ``` **Flags:** - `--title string` — Slide title - `--body string` — Slide body text - `--layout string` — Layout type (default: "TITLE_AND_BODY") - `--layout-id string` — Custom layout ID from presentation's masters (overrides --layout) **Available predefined layouts:** `TITLE_AND_BODY`, `TITLE_ONLY`, `BLANK`, `SECTION_HEADER`, `TITLE`, `ONE_COLUMN_TEXT`, `MAIN_POINT`, `BIG_NUMBER` For custom layouts, use `gws slides list-layouts <id>` to discover layout IDs. ### delete-slide — Delete a slide ```bash gws slides delete-slide <presentation-id> [flags] ``` **Flags:** - `--slide-number int` — Slide number (1-indexed) - `--slide-id string` — Slide object ID (alternative) ### duplicate-slide — Duplicate a slide ```bash gws slides duplicate-slide <presentation-id> [flags] ``` **Flags:** - `--slide-number int` — Slide number (1-indexed) - `--slide-id string` — Slide object ID (alternative) ### add-shape — Add a shape ```bash gws slides add-shape <presentation-id> [flags] ``` **Flags:** - `--slide-number int` — Slide number (1-indexed) - `--slide-id string` — Slide object ID - `--type string` — Shape type (default: "RECTANGLE") - `--x float` — X position in points (default: 100) - `--y float` — Y position in points (default: 100) - `--width float` — Width in points (default: 200) - `--height float` — Height in points (default: 100) **Shape types:** `RECTANGLE`, `ELLIPSE`, `TEXT_BOX`, `ROUND_RECTANGLE`, `TRIANGLE`, `ARROW`, etc. ### add-image — Add an image ```bash gws slides add-image <presentation-id> --url <image-url> [flags] ``` **Flags:** - `--url string` — Image URL (required, must be publicly accessible) - `--slide-number int` — Slide number (1-indexed) - `--slide-id string` — Slide object ID - `--x float` — X position in points (default: 100) - `--y float` — Y position in points (default: 100) - `--width float` — Width in points (default: 400) - `--height float` — Height in points (default: auto-calculated from image aspect ratio) ### add-text — Add text to shape, table cell, or speaker notes ```bash # For shapes/text boxes: gws slides add-text <presentation-id> --object-id <id> --text <text> [flags] # For table cells: gws slides add-text <presentation-id> --table-id <id> --row <n> --col <n> --text <text> [flags] # For speaker notes: gws slides add-text <presentation-id> --notes --slide-number <n> --text <text> [flags] ``` **Flags:** - `--object-id string` — Shape/text box ID (mutually exclusive with --table-id and --notes) - `--table-id string` — Table object ID (requires --row and --col) - `--row int` — Row index, 0-based (required with --table-id) - `--col int` — Column index, 0-based (required with --table-id) - `--notes` — Target speaker notes shape (mutually exclusive with --object-id and --table-id) - `--slide-id string` — Slide object ID (required with --notes) - `--slide-number int` — Slide number, 1-indexed (required with --notes) - `--text string` — Text to insert (required) - `--at int` — Position to insert at (0 = beginning) Get object IDs from `gws slides list <id>` output. For tables, find elements with `"type": "TABLE"` and use their `objectId` as the `--table-id` value. ### replace-text — Find and replace text ```bash gws slides replace-text <presentation-id> --find <text> --replace <text> [flags] ``` **Flags:** - `--find string` — Text to find (required) - `--replace string` — Replac
Related in Productivity
gitea-workflow
IncludedOrchestrate agile development workflows for Gitea repositories using the tea CLI. Use when working with Gitea-hosted repos and asking to 'run the workflow', 'continue working', 'what's next', 'complete the task cycle', 'start my day', 'end the sprint', 'implement the next task', or wanting guided step-by-step development assistance. Keywords: workflow, orchestrate, agile, task cycle, sprint, daily, implement, review, PR, standup, retrospective, gitea, tea.
microsoft-graph-gateway
IncludedRoute Microsoft Graph work in this workspace. Use when users want to read or write Outlook mail, calendar events, contacts, OneDrive or SharePoint files, Teams, Planner, To Do, users, groups, directory data, or arbitrary Microsoft Graph endpoints from VS Code. Prefer WorkIQ for common read scenarios. Use Microsoft Graph for write actions and gap-read scenarios that need exact Graph properties, filters, permissions, or endpoints.
copilotkit
IncludedUse when building with CopilotKit — setup, development, integrations, debugging, upgrading, or contributing. Routes to the appropriate specialized skill based on the task.
wordly-wisdom
IncludedProvides calibrated decision analysis using Charlie Munger-style multiple mental models, inversion, incentive mapping, circle-of-competence checks, misjudgment audits, second-order effects, and forecast updates. Use when the user asks for an oracle take, a hard call, a decision memo, a premortem, an outside view, a red-team, a sanity-check, what am I missing, think this through, or wants a strategy, hire, investment, plan, product, partnership, or major life choice analysed. Avoid for simple factual lookups or time-sensitive legal, medical, or market questions without fresh evidence.
swain-session
IncludedSession management and project status dashboard. Owns the full session lifecycle (start/work/close/resume), focus lane, bookmarks, worktree detection, and tab naming. Also serves as the project status dashboard — shows active epics, progress, actionable next steps, blocked items, tasks, GitHub issues, and recommendations. Worktree creation is deferred to swain-do task dispatch (SPEC-195). Triggers on: 'session', 'status', 'what's next', 'dashboard', 'overview', 'where are we', 'what should I work on', 'show me priorities', 'bookmark', 'focus on', 'session info'.
gandi
IncludedComprehensive Gandi domain registrar integration for domain and DNS management. Register and manage domains, create/update/delete DNS records (A, AAAA, CNAME, MX, TXT, SRV, and more), configure email forwarding and aliases, check SSL certificate status, create DNS snapshots for safe rollback, bulk update zone files, and monitor domain expiration. Supports multi-domain management, zone file import/export, and automated DNS backups. Includes both read-only and destructive operations with safety controls.