{"skill":{"slug":"hml-google-slides","displayName":"HML Google Slides","summary":"Create, edit, and export Google Slides presentations. Use when creating new presentations, adding or updating slides, reading slide content, exporting to PDF...","description":"---\nname: google-slides\ndescription: \"Create, edit, and export Google Slides presentations. Use when creating new presentations, adding or updating slides, reading slide content, exporting to PDF/PPTX, or building a deck from scratch. Requires gog auth to be working.\"\n---\n\n# Google Slides\n\nUses the `gog` CLI for basic operations and `scripts/slides.py` for advanced edits (adding/editing slide content via the Slides API).\n\n## Auth Check\n\nBefore any Slides operation, verify auth is working:\n```bash\ngog slides info <any-presentation-id> --account david@hml.tech\n```\nIf it fails, re-auth: `gog auth add david@hml.tech --services gmail,calendar,drive,docs,sheets,contacts,tasks,people`\n\n## Core Commands (via gog)\n\n```bash\n# Create a new blank presentation\ngog slides create \"My Presentation\" --account david@hml.tech --json\n\n# Get info about a presentation (slide count, title, etc.)\ngog slides info <presentationId> --account david@hml.tech --json\n\n# Export to PDF\ngog slides export <presentationId> --format pdf --out /tmp/deck.pdf --account david@hml.tech\n\n# Export to PPTX\ngog slides export <presentationId> --format pptx --out /tmp/deck.pptx --account david@hml.tech\n\n# Copy a presentation (e.g., to use a template)\ngog slides copy <presentationId> \"Copy Title\" --account david@hml.tech --json\n```\n\n## Adding/Editing Slide Content (via scripts/slides.py)\n\nFor adding text slides, batch updates, and reading full content, use `scripts/slides.py`.\n\n```bash\n# Add a text slide with title and bullet body\npython3 scripts/slides.py add-slide <presentationId> \\\n  --title \"Slide Title\" \\\n  --body \"• Bullet point one\\n• Bullet point two\"\n\n# Add a slide at a specific position (0-indexed)\npython3 scripts/slides.py add-slide <presentationId> --title \"Intro\" --insert-at 0\n\n# Run arbitrary batch update requests from a JSON file\npython3 scripts/slides.py batch <presentationId> requests.json\n\n# Export via script\npython3 scripts/slides.py export <presentationId> --format pdf --out /tmp/deck.pdf\n\n# List comments with their anchors (e.g. which slide they are on)\npython3 scripts/slides.py list-comments <presentationId>\n\n# Resolve a comment and optionally leave a reply message\npython3 scripts/slides.py resolve-comment <presentationId> <commentId> --reply \"Fixed!\"\n```\n\n## Building a Deck from Scratch\n\nTypical workflow:\n1. Create presentation: `gog slides create \"Title\" --json` → get `presentationId`\n2. Add slides one by one using `scripts/slides.py add-slide`\n3. For rich content (images, shapes, formatting), write batch requests to a JSON file and run `scripts/slides.py batch`\n4. Export: `gog slides export <id> --format pdf --out /tmp/deck.pdf`\n\nFor complex batch requests (images, shapes, text formatting), see `references/batch_requests.md`.\n\n## Getting Presentation ID\n\nFrom a Google Slides URL:\n`https://docs.google.com/presentation/d/**<presentationId>**/edit`\n\n## Notes\n\n- `gog slides` uses the Drive API under the hood (no separate Slides scope needed)\n- `scripts/slides.py` uses the Google Slides API directly and requires working gog auth tokens\n- Set `GOG_ACCOUNT=david@hml.tech` in env to skip `--account` flag\n","tags":{"google":"1.0.0","hml":"1.0.0","latest":"1.0.0","presentation":"1.0.0","slides":"1.0.0"},"stats":{"comments":0,"downloads":825,"installsAllTime":0,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1772509243908,"updatedAt":1779077500657},"latestVersion":{"version":"1.0.0","createdAt":1772509243908,"changelog":"HML-specific Google Slides management skill","license":null},"metadata":null,"owner":{"handle":"nethunter","userId":"s1760pdwncvywyfzyq1cwv19eh884czk","displayName":"nethunter","image":"https://avatars.githubusercontent.com/u/618947?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780089741934}}