Create and edit Google Slides presentations. Add or delete slides, insert text, shapes, and images. Use when asked to build a deck, create a slideshow, update a Google presentation, or edit slides.
94
Quality
94%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
This guide covers available slide layouts and when to use them.
Google Slides provides predefined layouts that automatically position placeholder elements. When you create a slide with a layout, it sets up the structure for content.
Empty slide with no predefined elements.
Use when:
Example:
python scripts/google-slides.py slides create $PRES_ID --layout BLANKTypical structure:
┌─────────────────────────────────────┐
│ │
│ │
│ (Empty canvas) │
│ │
│ │
└─────────────────────────────────────┘Title slide layout with centered title and subtitle.
Use when:
Example:
python scripts/google-slides.py slides create $PRES_ID --layout TITLE
# Add title and subtitle
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "Presentation Title" \
--x 50 --y 150 --width 620 --height 100
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "Subtitle or Date" \
--x 50 --y 280 --width 620 --height 60Typical structure:
┌─────────────────────────────────────┐
│ │
│ │
│ [TITLE PLACEHOLDER] │
│ [SUBTITLE PLACEHOLDER] │
│ │
└─────────────────────────────────────┘Standard content slide with title and body text area.
Use when:
Example:
python scripts/google-slides.py slides create $PRES_ID --layout TITLE_AND_BODY
# Add title
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "Key Points" \
--x 50 --y 30 --width 620 --height 60
# Add body content
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "• First point\n• Second point\n• Third point" \
--x 50 --y 120 --width 620 --height 350Typical structure:
┌─────────────────────────────────────┐
│ [TITLE PLACEHOLDER] │
│ │
│ [BODY PLACEHOLDER] │
│ • Bullet point │
│ • Bullet point │
│ • Bullet point │
└─────────────────────────────────────┘Slide with only a title placeholder.
Use when:
Example:
python scripts/google-slides.py slides create $PRES_ID --layout TITLE_ONLY
# Add title
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "Sales Chart" \
--x 50 --y 30 --width 620 --height 60
# Add chart below
python scripts/google-slides.py images create $PRES_ID \
--slide-id $SLIDE_ID \
--image-url "https://example.com/chart.png" \
--x 100 --y 120 --width 520 --height 380Typical structure:
┌─────────────────────────────────────┐
│ [TITLE PLACEHOLDER] │
│ │
│ │
│ (Empty content area) │
│ │
└─────────────────────────────────────┘Section divider with large centered title.
Use when:
Example:
python scripts/google-slides.py slides create $PRES_ID --layout SECTION_HEADER
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "Part 2: Analysis" \
--x 50 --y 200 --width 620 --height 100Typical structure:
┌─────────────────────────────────────┐
│ │
│ │
│ [LARGE SECTION TITLE] │
│ │
│ │
└─────────────────────────────────────┘Section divider with title and description.
Use when:
Example:
python scripts/google-slides.py slides create $PRES_ID \
--layout SECTION_TITLE_AND_DESCRIPTION
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "Financial Overview" \
--x 50 --y 150 --width 620 --height 80
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "Quarterly results and projections" \
--x 50 --y 260 --width 620 --height 60Typical structure:
┌─────────────────────────────────────┐
│ │
│ [SECTION TITLE] │
│ [DESCRIPTION] │
│ │
│ │
└─────────────────────────────────────┘Single column of text, optimized for reading.
Use when:
Example:
python scripts/google-slides.py slides create $PRES_ID --layout ONE_COLUMN_TEXT
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "Mission Statement" \
--x 50 --y 30 --width 620 --height 50
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "Our mission is to empower teams..." \
--x 100 --y 100 --width 520 --height 400Typical structure:
┌─────────────────────────────────────┐
│ [TITLE] │
│ │
│ [TEXT COLUMN] │
│ Lorem ipsum dolor sit amet, │
│ consectetur adipiscing elit. │
│ Sed do eiusmod tempor... │
└─────────────────────────────────────┘Large centered text for emphasis.
Use when:
Example:
python scripts/google-slides.py slides create $PRES_ID --layout MAIN_POINT
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "Revenue Up 45%" \
--x 100 --y 200 --width 520 --height 150Typical structure:
┌─────────────────────────────────────┐
│ │
│ │
│ [LARGE CENTERED TEXT] │
│ │
│ │
└─────────────────────────────────────┘Layout optimized for displaying a large number or metric.
Use when:
Example:
python scripts/google-slides.py slides create $PRES_ID --layout BIG_NUMBER
# Big number
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "1,234" \
--x 200 --y 150 --width 320 --height 150
# Label below
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "New Customers" \
--x 200 --y 330 --width 320 --height 60Typical structure:
┌─────────────────────────────────────┐
│ │
│ [BIG NUMBER] │
│ 1,234 │
│ [Label Text] │
│ │
└─────────────────────────────────────┘When working with layouts, typical placeholder positions are:
Title placeholders:
Body placeholders:
Centered content:
Text and bullets → TITLE_AND_BODY
Visuals and images → TITLE_ONLY or BLANK
Impact and emphasis → MAIN_POINT or BIG_NUMBER
Organization → SECTION_HEADER
If predefined layouts don't fit your needs, use BLANK and manually position elements:
# Create blank slide
python scripts/google-slides.py slides create $PRES_ID --layout BLANK
# Custom header
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "Custom Header" \
--x 30 --y 20 --width 660 --height 40
# Left column
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "Left content..." \
--x 30 --y 80 --width 300 --height 430
# Right column
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID \
--text "Right content..." \
--x 360 --y 80 --width 330 --height 430You can insert elements on any layout - the layout just provides initial placeholders:
# Start with TITLE_AND_BODY
python scripts/google-slides.py slides create $PRES_ID --layout TITLE_AND_BODY
# Add title
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID --text "Overview" \
--x 50 --y 30 --width 620 --height 60
# Add custom shape (not part of layout)
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID --shape-type STAR_5 \
--x 600 --y 30 --width 60 --height 60
# Add body text
python scripts/google-slides.py text insert $PRES_ID \
--slide-id $SLIDE_ID --text "Content..." \
--x 50 --y 120 --width 620 --height 350Use consistent layouts - Stick to 2-3 layout types per presentation for visual consistency
Match layout to content - Don't force text-heavy content into MAIN_POINT layout
BLANK for complex slides - When mixing many element types, BLANK gives most control
Section headers for structure - Use SECTION_HEADER every 5-10 slides to mark transitions
Test visibility - Ensure text is readable and elements don't overlap
Increase the height or use a different layout:
# Instead of default height (60)
--height 100Check positions and sizes:
Layouts provide structure but don't auto-populate content. You must explicitly insert text/images into the placeholder areas.
For complete layout details:
Install with Tessl CLI
npx tessl i odyssey4me/google-slides@0.1.3