Create and edit native presentations with goog slides.
Use target/debug/goog from the goog-cli repository, or cargo run --, while developing the CLI.
Required workflow
- Define the audience, presentation job, central takeaway, and required evidence.
- Plan a cumulative narrative in which every slide has one primary job.
- Choose a coherent visual system before creating slide objects.
- Run
target/debug/goog auth listand record the active account before any live mutation. - Run
target/debug/goog slides --helpand the relevant nested--helpcommand before the first mutation. - Create the presentation and slides with stable object IDs for important elements.
- Add content with high-level
goog slidescommands. - Style and position objects with
goog slides objectcommands. - Inspect the live deck with
goog slides getduring authoring. - Run
goog slides deck inspectinto a task-local QA directory. - Open the montage and every full-size slide thumbnail, then fix overlap, clipping, awkward wrapping, alignment, density, and inconsistent styling.
- Repeat inspection after every layout correction until the deck is clean.
- Return the Google Slides URL and a concise summary of the finished deck.
Read references/content-and-design.md before planning or authoring a deck. Read references/commands.md for native command patterns and geometry.
Authoring rules
- Use the active account shown by
goog auth listunless the user specifies another authorized account. - Pass
--account EMAILfor every live command when account selection must remain explicit. - If authorization opens an account chooser, select only the recorded active or user-specified account.
- Never infer an account from browser order, a remembered identity, or unrelated open presentations.
- If a command fails because the account is missing required scopes, run
goog auth loginonce and retry; do not expect the original command to pause and resume on its own. - Prefer
slide create,text-box,image,shape,line,table, andobjectcommands overbatch-update. - Use
batch-updateonly when no high-level command exposes a required native feature. - Use stable, descriptive object IDs so later edits are deterministic.
- Treat positions and sizes as deliberate points on a 10 by 5.625 inch widescreen canvas unless the live presentation reports another page size.
- Keep all elements inside the slide canvas.
- Use images only from publicly reachable URLs accepted by Google Slides.
- Set alt text for meaningful images and objects.
- Never place temporary instructions, source notes, or QA commentary on audience-facing slides.
- Run the exact nested
--helpcommand before using an unfamiliar mutation. - Never hide a failed mutation with
|| trueor continue as if it succeeded. - Use true newline characters for multiline text and verify the inspection report does not contain literal backslash-n sequences.
- Use
slides get --fieldsto request only slide IDs, object IDs, text, transforms, and page size needed for the current check.
Completion gate
Do not call the presentation finished until all of these are true:
- The deck has a clear opening, coherent progression, and deliberate close.
- Every slide advances the story and has one primary claim.
- Titles communicate takeaways rather than generic topics where appropriate.
- Visuals and charts support the claim and do not invent evidence.
- No text overlaps, clips, overflows, or becomes uncomfortably small.
- Object alignment, spacing, type hierarchy, colors, and page furniture are consistent.
- Tables remain readable and do not contain paragraph-length prose.
- No placeholder or production-note text remains.
goog slides deck inspectcompleted after the last mutation.- Every final slide image was inspected at full size.
- The final URL opens the intended native Google Slides deck.