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 shape types and how to use them effectively.
Google Slides provides a wide variety of predefined shapes that can be inserted into slides. Shapes can be used for:
# Rectangle
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type RECTANGLE \
--x 100 --y 100 --width 300 --height 150
# Square (equal width and height)
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type RECTANGLE \
--x 100 --y 100 --width 200 --height 200
# Rounded rectangle
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type ROUND_RECTANGLE \
--x 100 --y 100 --width 300 --height 150Use cases:
# Circle (equal width and height)
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type ELLIPSE \
--x 100 --y 100 --width 200 --height 200
# Ellipse
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type ELLIPSE \
--x 100 --y 100 --width 300 --height 150Use cases:
# Triangle
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type TRIANGLE \
--x 100 --y 100 --width 200 --height 200
# Right triangle
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type RIGHT_TRIANGLE \
--x 100 --y 100 --width 200 --height 200Use cases:
# Pentagon (5 sides)
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type PENTAGON \
--x 100 --y 100 --width 200 --height 200
# Hexagon (6 sides)
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type HEXAGON \
--x 100 --y 100 --width 200 --height 200
# Octagon (8 sides)
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type OCTAGON \
--x 100 --y 100 --width 200 --height 200Use cases:
Google Slides offers multiple star variations:
# 5-point star
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type STAR_5 \
--x 100 --y 100 --width 200 --height 200
# 8-point star
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type STAR_8 \
--x 100 --y 100 --width 200 --height 200
# 24-point star (sunburst)
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type STAR_24 \
--x 100 --y 100 --width 200 --height 200
# 32-point star
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type STAR_32 \
--x 100 --y 100 --width 200 --height 200Available star types:
STAR_4STAR_5STAR_6STAR_7STAR_8STAR_10STAR_12STAR_16STAR_24STAR_32Use cases:
# Arrow pointing north
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type ARROW_NORTH \
--x 100 --y 100 --width 100 --height 150
# Arrow pointing east
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type ARROW_EAST \
--x 100 --y 100 --width 150 --height 100
# Arrow pointing south
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type ARROW_SOUTH \
--x 100 --y 100 --width 100 --height 150
# Arrow pointing west
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type ARROW_WEST \
--x 100 --y 100 --width 150 --height 100# Left-right arrow
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type LEFT_RIGHT_ARROW \
--x 100 --y 100 --width 200 --height 80
# Up-down arrow
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type UP_DOWN_ARROW \
--x 100 --y 100 --width 80 --height 200
# Notched right arrow
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type NOTCHED_RIGHT_ARROW \
--x 100 --y 100 --width 200 --height 100
# Bent arrow
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type BENT_ARROW \
--x 100 --y 100 --width 200 --height 200
# U-turn arrow
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type UTURN_ARROW \
--x 100 --y 100 --width 150 --height 200Use cases:
# Rectangular callout
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type RECTANGULAR_CALLOUT \
--x 100 --y 100 --width 200 --height 100
# Rounded rectangular callout
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type ROUNDED_RECTANGULAR_CALLOUT \
--x 100 --y 100 --width 200 --height 100
# Oval callout
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type OVAL_CALLOUT \
--x 100 --y 100 --width 200 --height 100
# Cloud callout
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type CLOUD_CALLOUT \
--x 100 --y 100 --width 200 --height 100Use cases:
# Wave (ribbon-like)
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type WAVE \
--x 100 --y 100 --width 300 --height 80
# Double wave
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type DOUBLE_WAVE \
--x 100 --y 100 --width 300 --height 80
# Ribbon
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type RIBBON \
--x 100 --y 100 --width 200 --height 100
# Ribbon 2
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type RIBBON_2 \
--x 100 --y 100 --width 200 --height 100Use cases:
# Flowchart: Process
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type FLOWCHART_PROCESS \
--x 100 --y 100 --width 200 --height 100
# Flowchart: Decision (diamond)
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type FLOWCHART_DECISION \
--x 100 --y 100 --width 200 --height 200
# Flowchart: Terminator (start/end)
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type FLOWCHART_TERMINATOR \
--x 100 --y 100 --width 200 --height 100
# Flowchart: Document
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type FLOWCHART_DOCUMENT \
--x 100 --y 100 --width 200 --height 150
# Flowchart: Data
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type FLOWCHART_DATA \
--x 100 --y 100 --width 200 --height 150# Flowchart: Input/Output
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type FLOWCHART_INPUT_OUTPUT \
--x 100 --y 100 --width 200 --height 100
# Flowchart: Manual operation
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type FLOWCHART_MANUAL_OPERATION \
--x 100 --y 100 --width 200 --height 100
# Flowchart: Preparation
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type FLOWCHART_PREPARATION \
--x 100 --y 100 --width 200 --height 100
# Flowchart: Connector
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type FLOWCHART_CONNECTOR \
--x 100 --y 100 --width 100 --height 100Use cases:
# Cloud
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type CLOUD \
--x 100 --y 100 --width 250 --height 150
# Heart
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type HEART \
--x 100 --y 100 --width 200 --height 200
# Lightning bolt
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type LIGHTNING_BOLT \
--x 100 --y 100 --width 120 --height 200
# Moon
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type MOON \
--x 100 --y 100 --width 200 --height 200
# Sun
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type SUN \
--x 100 --y 100 --width 200 --height 200Use cases:
# Smiley face
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type SMILEY_FACE \
--x 100 --y 100 --width 200 --height 200
# No symbol (prohibition)
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type NO_SMOKING_SIGN \
--x 100 --y 100 --width 200 --height 200
# Plus sign
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type PLUS \
--x 100 --y 100 --width 150 --height 150Use cases:
# Plus
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type PLUS \
--x 100 --y 100 --width 100 --height 100
# Minus (horizontal line)
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type MINUS \
--x 100 --y 100 --width 100 --height 50
# Multiply
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type MULTIPLY \
--x 100 --y 100 --width 100 --height 100
# Divide
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type DIVIDE \
--x 100 --y 100 --width 100 --height 100Use cases:
# Left bracket
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type LEFT_BRACKET \
--x 100 --y 100 --width 50 --height 200
# Right bracket
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type RIGHT_BRACKET \
--x 100 --y 100 --width 50 --height 200
# Left brace
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type LEFT_BRACE \
--x 100 --y 100 --width 80 --height 200
# Right brace
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type RIGHT_BRACE \
--x 100 --y 100 --width 80 --height 200Use cases:
Different shapes work best with specific aspect ratios:
Square shapes (1:1):
Wide shapes (2:1 or 3:1):
Tall shapes (1:2 or 1:3):
Custom ratios:
# Icon size (small decorative)
--width 60 --height 60
# Small shape (accent)
--width 100 --height 100
# Medium shape (standard)
--width 200 --height 200
# Large shape (focal point)
--width 400 --height 400
# Banner (horizontal)
--width 600 --height 80
# Sidebar (vertical)
--width 100 --height 500# Create 3x3 grid of shapes
for row in 0 1 2; do
for col in 0 1 2; do
x=$((100 + col * 200))
y=$((100 + row * 150))
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type ELLIPSE \
--x $x --y $y --width 150 --height 100
done
done# Create diagonal line of shapes
for i in 0 1 2 3 4; do
pos=$((50 + i * 120))
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type STAR_5 \
--x $pos --y $pos --width 80 --height 80
doneMathematical approach for circular layouts (pseudo-code):
# Place shapes in circle
radius=200
center_x=360
center_y=270
num_shapes=6
for i in $(seq 0 $((num_shapes - 1))); do
angle=$(echo "scale=4; $i * 2 * 3.14159 / $num_shapes" | bc)
x=$(echo "scale=0; $center_x + $radius * c($angle)" | bc -l)
y=$(echo "scale=0; $center_y + $radius * s($angle)" | bc -l)
python scripts/google-slides.py shapes create $PRES_ID \
--slide-id $SLIDE_ID \
--shape-type PENTAGON \
--x $x --y $y --width 100 --height 100
doneBasic:
Polygons:
Stars:
Arrows:
Callouts:
Ribbons:
Flowchart:
Decorative:
Math:
Brackets:
Misc:
Match shape to purpose - Use flowchart shapes for processes, stars for highlights
Consistent sizing - Use similar sizes for related shapes
Spacing - Leave 20-30 points between shapes for clarity
Color and fill - Shapes can be colored (requires additional API calls for formatting)
Layering - Shapes are added in order; later shapes appear on top
Visibility - Ensure shapes fit within slide boundaries (0-720 x 0-540)
Check that shape fits within slide:
x + width <= 720y + height <= 540Some shapes have optimal aspect ratios:
Verify:
For complete shape details:
Install with Tessl CLI
npx tessl i odyssey4me/google-slides@0.1.3