google-slides
# Google Slides
Uses the `gog` CLI for basic operations and `scripts/slides.py` for advanced edits (adding/editing slide content via the Slides API).
## Auth Check
Before any Slides operation, verify auth is working:
```bash
gog slides info <any-presentation-id> --account david@hml.tech
```
If it fails, re-auth: `gog auth add david@hml.tech --services gmail,calendar,drive,docs,sheets,contacts,tasks,people`
## Core Commands (via gog)
```bash
# Create a new blank presentation
gog slides create "My Presentation" --account david@hml.tech --json
# Get info about a presentation (slide count, title, etc.)
gog slides info <presentationId> --account david@hml.tech --json
# Export to PDF
gog slides export <presentationId> --format pdf --out /tmp/deck.pdf --account david@hml.tech
# Export to PPTX
gog slides export <presentationId> --format pptx --out /tmp/deck.pptx --account david@hml.tech
# Copy a presentation (e.g., to use a template)
gog slides copy <presentationId> "Copy Title" --account david@hml.tech --json
```
## Adding/Editing Slide Content (via scripts/slides.py)
For adding text slides, batch updates, and reading full content, use `scripts/slides.py`.
```bash
# Add a text slide with title and bullet body
python3 scripts/slides.py add-slide <presentationId> \
--title "Slide Title" \
--body "• Bullet point one\n• Bullet point two"
# Add a slide at a specific position (0-indexed)
python3 scripts/slides.py add-slide <presentationId> --title "Intro" --insert-at 0
# Run arbitrary batch update requests from a JSON file
python3 scripts/slides.py batch <presentationId> requests.json
# Export via script
python3 scripts/slides.py export <presentationId> --format pdf --out /tmp/deck.pdf
# List comments with their anchors (e.g. which slide they are on)
python3 scripts/slides.py list-comments <presentationId>
# Resolve a comment and optionally leave a reply message
python3 scripts/slides.py resolve-comment <presentationId> <commentId> --reply "Fixed!"
```
## Building a Deck from Scratch
Typical workflow:
1. Create presentation: `gog slides create "Title" --json` → get `presentationId`
2. Add slides one by one using `scripts/slides.py add-slide`
3. For rich content (images, shapes, formatting), write batch requests to a JSON file and run `scripts/slides.py batch`
4. Export: `gog slides export <id> --format pdf --out /tmp/deck.pdf`
For complex batch requests (images, shapes, text formatting), see `references/batch_requests.md`.
## Getting Presentation ID
From a Google Slides URL:
`https://docs.google.com/presentation/d/**<presentationId>**/edit`
## Notes
- `gog slides` uses the Drive API under the hood (no separate Slides scope needed)
- `scripts/slides.py` uses the Google Slides API directly and requires working gog auth tokens
- Set `GOG_ACCOUNT=david@hml.tech` in env to skip `--account` flag
标签
skill
ai