atrislabs/atris/slides
Claude Code and agent skill by atrislabs/atris
- community
Checking that the SKILL.md file is still in the repository.
Google Slides integration via AtrisOS API. List, create, read, and update presentations. Add slides, text, shapes, images. Export to PDF. Use when user asks about slides, presentations, decks, or pitch decks.
Install
npx vskill@latest install atrislabs/atris/slidesSKILL.md
Google Slides Agent
Drop this in~/.claude/skills/slides/SKILL.mdand Claude Code becomes your presentation assistant.
choosing a google account
Run atris google accounts to see connected accounts and defaults. Use atris google connect [name] for one sign-in, and add --only mail,calendar,drive to choose products. Use atris google use <name-or-email> to save a default, or add --business <slug> to choose the account for a business. Use atris google disconnect <name-or-email> --approved to disconnect after confirmation, with --only to remove selected products.
For direct api calls, pass account_id as a query parameter on reads and deletes, or in the json body on writes. Pass the business id or slug in the X-Business-Id header when working for a business. Calendar reads without an account include all accounts; account_id=all also requests all calendars. Calendar writes need one account. The old sign-in and api examples below still work on older servers.
Prerequisites
Google Slides shares OAuth with Google Drive. If Drive is connected, Slides works automatically. If not:
API Reference
Base: https://api.atris.ai/api/integrations/google-slides
All requests require: -H "Authorization: Bearer $TOKEN"
Get Token
Presentations
List Presentations
Get a Presentation (with all slides)
Create a Presentation
Updating Slides (batch-update)
All slide mutations use the batch-update endpoint. This is the most powerful endpoint: it can add slides, insert text, add shapes, images, change formatting, and more.
Add a Blank Slide
Available layouts: BLANK, TITLE, TITLE_AND_BODY, TITLE_AND_TWO_COLUMNS, TITLE_ONLY, SECTION_HEADER, SECTION_TITLE_AND_DESCRIPTION, ONE_COLUMN_TEXT, MAIN_POINT, BIG_NUMBER
Add a Title Slide
Insert Text into an Element
Add a Text Box
Add an Image
Replace All Text (find & replace)
Delete a Slide or Element
Style Text
Pages (Individual Slides)
Get a Single Slide
Get Slide Thumbnail
Export
Export as PDF
Returns {"pdf_base64": "...", "content_type": "application/pdf"}.
Workflows
"Create a pitch deck"
- Create presentation:
POST /presentationswith title - Get the presentation to find the first slide ID
- Batch update: add title slide, content slides, closing slide
- Each slide: createSlide + insertText for content
- Return the presentation URL:
https://docs.google.com/presentation/d/{id}
"List my presentations"
GET /presentations- Display: name, last modified, link
"Add a slide to an existing deck"
GET /presentations/{id}to see current slides- Batch update: createSlide at the desired index
- Add content with insertText, createShape, createImage
"Export deck to PDF"
GET /presentations/{id}/export- Decode base64 and save to file
"Update text in a deck"
GET /presentations/{id}to find element IDs- Batch update with replaceAllText for template variables
- Or insertText/deleteText for specific elements
Important Notes
- Shares Drive OAuth: no separate connection needed. If Drive is connected, Slides works
- Batch update is everything: all slide mutations (add, edit, delete, style) go through batch-update
- Object IDs: every slide, shape, text box, image has an ID. Get them from
GET /presentations/{id} - Slide size: default is 10x5.63 inches (720x406.5 PT). Position elements accordingly
- Images: must be publicly accessible URLs. For private images, upload to Drive first
- Templates: use replaceAllText with
{{placeholder}}patterns for template-based decks
Error Handling
| Error | Meaning | Solution | |
|---|---|---|---|
Drive not connected | No Drive OAuth token | Connect Google Drive first | |
403 insufficient_scope | Token missing presentations scope | Reconnect Drive to get updated scopes | |
404 not_found | Presentation doesn't exist | Check presentation ID | |
400 invalid_request | Bad batch update request | Check request format against API docs |
Quick Reference
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingatris/skills/slides/SKILL.md
Popularity
- Repository stars
- 58
- Repository forks
- 2
- Repository npm downloads, 7 days
- 256
- 7-day trend score
- 36
Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 20 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/atrislabs/atris/slides)