skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
odyssey4me/agent-skills195 installs

google-slides

Markdown-driven presentation builder with Google Slides upload. Write Markdown, build .pptx locally, review in LibreOffice, upload to Google Slides.

How do I install this agent skill?

npx skills add https://github.com/odyssey4me/agent-skills --skill google-slides
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    This skill provides a secure integration with Google Slides using official APIs and best practices for credential management. It utilizes the system keyring for token storage and follows standard OAuth 2.0 protocols for authentication.

  • Socketpass

    No alerts

  • Snykfail

    Risk: HIGH · 2 issues

  • Runlayerwarn

    3/6 files flagged

  • ZeroLeakspass

    Score: 93/100 · 2 sections analyzed

What does this agent skill do?

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:

  1. GCP Project Setup Guide - Create project, enable Drive API
  2. Google OAuth Setup Guide - Configure credentials

Quick Start

  1. Create ~/.config/agent-skills/google.yaml:

    oauth_client:
      client_id: your-client-id.apps.googleusercontent.com
      client_secret: your-client-secret
    
  2. Run $SKILL_DIR/scripts/google-slides.py check to 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

![System architecture diagram](images/architecture.png)

---

<!-- type: closing -->

# Thank You

## Questions?

Slide Types

TypeDirectiveDescription
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)
  • ![alt](path) -- 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

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/odyssey4me/agent-skills/google-slides">View google-slides on skillZs</a>