
google-slides
Markdown-driven presentation builder with Google Slides upload. Write Markdown, build .pptx locally, review in LibreOffice, upload to Google Slides.
- Installs
- 195
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/odyssey4me/agent-skills --skill google-slides- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads google-slides automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Google Slides
Build presentations from Markdown files with YAML frontmatter. The skill generates .pptx files locally using python-pptx, with optional upload to Google Slides via the Drive API. A round-trip workflow lets you download an existing presentation as Markdown, edit it, rebuild, and re-upload.
Installation
Required Python packages:
pip install --user google-auth google-auth-oauthlib google-api-python-client keyring pyyaml
For local .pptx building:
pip install --user python-pptx cairosvg
Optional system dependency: LibreOffice (for preview command). The
skill auto-detects libreoffice, soffice, Flatpak, or the path set in
the LIBREOFFICE_PATH environment variable.
Setup Verification
After installation, verify the skill is properly configured:
$SKILL_DIR/scripts/google-slides.py check
This will check:
- Python dependencies (google-auth, google-auth-oauthlib, google-api-python-client, keyring, pyyaml, python-pptx, cairosvg)
- Authentication configuration
- Connectivity to Google APIs
- LibreOffice availability (optional)
If anything is missing, the check command will provide setup instructions.
Authentication
Google Slides uses OAuth 2.0 for authentication. For complete setup instructions, see:
- GCP Project Setup Guide - Create project, enable Drive API
- Google OAuth Setup Guide - Configure credentials
Quick Start
-
Create
~/.config/agent-skills/google.yaml:oauth_client: client_id: your-client-id.apps.googleusercontent.com client_secret: your-client-secret -
Run
$SKILL_DIR/scripts/google-slides.py checkto trigger OAuth flow and verify setup.
On scope or authentication errors, see the OAuth troubleshooting guide.
Script Usage
See permissions.md for read/write classification of each command.
# Setup and auth
$SKILL_DIR/scripts/google-slides.py check
$SKILL_DIR/scripts/google-slides.py auth setup --client-id ID --client-secret SECRET
$SKILL_DIR/scripts/google-slides.py auth reset
$SKILL_DIR/scripts/google-slides.py auth status
# Build a presentation from Markdown
$SKILL_DIR/scripts/google-slides.py create --file deck.md
$SKILL_DIR/scripts/google-slides.py create --file deck.md --output deck.pptx --palette redhat-brand
$SKILL_DIR/scripts/google-slides.py create --file deck.md --title "My Deck" # build and upload
# Download a presentation as Markdown
$SKILL_DIR/scripts/google-slides.py get PRESENTATION_ID
$SKILL_DIR/scripts/google-slides.py get PRESENTATION_ID -o deck.md
# Upload or replace slides in an existing presentation
$SKILL_DIR/scripts/google-slides.py update PRESENTATION_ID --file deck.pptx
$SKILL_DIR/scripts/google-slides.py update PRESENTATION_ID --file deck.pptx --mode append
# Preview and verify
$SKILL_DIR/scripts/google-slides.py preview --file deck.pptx
$SKILL_DIR/scripts/google-slides.py preview --file deck.pptx --format summary
$SKILL_DIR/scripts/google-slides.py verify --file deck.pptx
# List available color palettes
$SKILL_DIR/scripts/google-slides.py palettes
See command-reference.md for full argument details and examples.
Markdown Format
Presentations are written as Markdown files with YAML frontmatter. Slides
are separated by --- on its own line. Slide types are set with HTML
comment directives.
---
title: Team Update
subtitle: Q2 2026
author: Jane Smith
date: 2026-06-23
palette: redhat-brand
---
# Team Update
## Q2 2026
> Speaker notes go in blockquotes.
---
<!-- type: section -->
# Progress Review
---
## Key Metrics
- Revenue: $1.2M (up 15%)
- Active users: 50,000
- NPS: 72
::icon:trending-up::
> Mention the NPS improvement from last quarter.
---
<!-- type: two-column -->
## Comparison
<!-- left -->
### Before
- Manual process
- 3-day turnaround
- Error-prone
<!-- right -->
### After
- Fully automated
- 15-minute turnaround
- 99.9% accuracy
---
<!-- type: image -->
# Architecture

---
<!-- type: closing -->
# Thank You
## Questions?
Slide Types
| Type | Directive | Description |
|---|---|---|
| Title | (first slide, auto-detected) | Presentation title and subtitle |
| Section | <!-- type: section --> | Section divider with large heading |
| Content | (default) | Standard slide with heading and bullets |
| Two-column | <!-- type: two-column --> | Side-by-side content with <!-- left --> / <!-- right --> markers |
| Image | <!-- type: image --> | Full-slide image with optional heading |
| Closing | <!-- type: closing --> | Closing slide (e.g., "Thank You") |
Formatting
# H1-- slide title## H2-- slide subtitle- bullets-- bullet points (nested supported)> blockquote-- speaker notes (not rendered on slide)-- image::icon:name::-- icon from the Red Hat icons repository
See presentations-guide.md for the full Markdown format specification, icon categories, and color palettes.
Color Palettes
Seven built-in palettes are available -- four Red Hat brand palettes and
three general-purpose palettes. Use palettes to list them.
Set the palette in frontmatter (palette: name) or on the command line
(--palette name). The command-line flag overrides frontmatter.
Examples
Build and preview a deck
# Create .pptx from Markdown
$SKILL_DIR/scripts/google-slides.py create --file deck.md --output deck.pptx
# Preview as images (requires LibreOffice)
$SKILL_DIR/scripts/google-slides.py preview --file deck.pptx --format images
# Get a text summary instead
$SKILL_DIR/scripts/google-slides.py preview --file deck.pptx --format summary
Build and upload in one step
$SKILL_DIR/scripts/google-slides.py create --file deck.md --title "Q2 Team Update"
# Builds .pptx, uploads to Google Drive, returns the presentation URL
Round-trip workflow
# Download existing presentation as Markdown
$SKILL_DIR/scripts/google-slides.py get 1abc...xyz -o deck.md
# Edit deck.md in your editor...
# Rebuild
$SKILL_DIR/scripts/google-slides.py create --file deck.md --output deck.pptx
# Verify quality and accessibility
$SKILL_DIR/scripts/google-slides.py verify --file deck.pptx
# Replace slides in the original presentation
$SKILL_DIR/scripts/google-slides.py update 1abc...xyz --file deck.pptx --mode replace
Verify against a cloud version
$SKILL_DIR/scripts/google-slides.py verify --file deck.pptx --presentation-id 1abc...xyz
Error Handling
Authentication and scope errors are not retryable. If a command fails with an authentication error, insufficient scope error, or permission denied error (exit code 1), stop and inform the user. Do not retry or attempt to fix the issue autonomously -- these errors require user interaction (browser-based OAuth consent). Point the user to the OAuth troubleshooting guide.
Retryable errors: Rate limiting (HTTP 429) and temporary server errors (HTTP 5xx) may succeed on retry after a brief wait. All other errors should be reported to the user.
Model Guidance
This skill makes API calls requiring structured input/output. A standard-capability model is recommended.
Troubleshooting
Cannot find presentation
Make sure you are using the correct presentation ID from the URL:
- URL:
https://docs.google.com/presentation/d/1abc...xyz/edit - Presentation ID:
1abc...xyz
LibreOffice not found
The preview command requires LibreOffice. Install it via your package
manager, or set LIBREOFFICE_PATH to the binary location. The skill checks
for libreoffice, soffice, and Flatpak installations automatically.
Reference
- Command reference -- full argument details
- Permissions -- read/write classification
- Presentations guide -- Markdown format, palettes, icons
FAQ
What does the google-slides skill do?
Markdown-driven presentation builder with Google Slides upload. Write Markdown, build .pptx locally, review in LibreOffice, upload to Google Slides.
How do I install google-slides?
Run npx skills add https://github.com/odyssey4me/agent-skills --skill google-slides in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/google-slides/ (personal) or .claude/skills/google-slides/ (project).
Which AI agents can use google-slides?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is google-slides safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains google-slides?
It is published by odyssey4me in odyssey4me/agent-skills. It has 195 recorded installs.
More from odyssey4me/agent-skills
google-calendar
odyssey4me/agent-skills
Create, update, and organize Google Calendar events and schedules. Check availability, book time, and manage calendars. Use when asked to schedule a meeting, set up an appointment, book a call, check gcal, or manage calendar events.
odyssey4me/agent-skills
Google Workspace CLI for Gmail, Calendar, Drive, Docs, Sheets, and Slides using gogcli. Use when asked to search email, schedule meetings, manage files, edit documents, update spreadsheets, or create presentations.
gitlab
odyssey4me/agent-skills
Open the skill to read its SKILL.md instructions.
google-drive
odyssey4me/agent-skills
Open the skill to read its SKILL.md instructions.
gmail
odyssey4me/agent-skills
Send, search, and organize Gmail messages, drafts, and labels. Read full threads and get shareable Google Groups permalinks. Use when asked to compose an email, reply to mail, forward a message, search inbox, manage attachments, organize Gmail, read a thread, or find a Google Groups discussion link.
google-docs
odyssey4me/agent-skills
Open the skill to read its SKILL.md instructions.
Popular docs & writing skills
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
lark-markdown
open.feishu.cn
飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。
writing-beats
mattpocock/skills
Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.
writing-shape
mattpocock/skills
Writing, exploit: shape raw material into an article, paragraph by paragraph.
writing-fragments
mattpocock/skills
Writing, explore: mine raw fragments, no structure yet.
writing-for-agents
mattpocock/skills
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.