gamma-presenter
Skill42 starsChanged 7 days agoMITView on GitHub
Create beautiful AI-generated presentations, documents, webpages, and social posts via the Gamma API. Supports generation from text prompts, templates, multi-page gammas, exports to PDF/PPTX/PNG, and management of existing gammas.
- Sends data out
In this repository29 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- app-creatorSkill
- bento-slidesSkill
- brochure-designerSkill
- business-card-readerSkill
- claude-designerSkill
- codebase-to-courseSkill
- daily-briefingSkill
- diagram-designSkill
- fable-modeSkill
- ffmpeg-video-processingSkill
- frontend-designSkill
- gitSkill
- hotel-finderSkill
- humanizerSkill
- in-depth-researchSkill
- jclaw-apiSkill
- jira-operationsSkill
- powerpoint-pptxSkill
- research-paper-writer-proSkill
- restaurant-recommenderSkill
- skill-creatorSkill
- ui-ux-pro-maxSkill
- visual-explainerSkill
- whatsapp-wacli-linuxSkill
- whatsapp-wacli-macSkill
- writing-standardsSkill
- youtube-transcriptSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 149
When asked to create a Gamma presentation:
- Very specific: line 155
Poll for completion: every 5 seconds using exec with curl GET /v1.0/generations/{id}
- Very specific: line 165
Use textMode: "paste" when you already have the full content written
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Gamma Presenter
Generate polished presentations, documents, webpages, and social media posts using the Gamma API.
Prerequisites
- Gamma account with Pro, Ultra, Team, or Business plan (required for API key)
- API key stored in
credentials/gamma-api-key.txt
API Key Setup
- Log in to Gamma at https://gamma.app
- Go to Settings → API Keys
- Generate a new API key (starts with
sk-gamma-) - Save it to
credentials/gamma-api-key.txtin this skill's directory
Quick Reference
| Task | Endpoint | Method |
| Generate from text | /v1.0/generations | POST |
| Generate from template | /v1.0/generations/from-template | POST |
| Check status | /v1.0/generations/{id} | GET |
| Generate image | /v1.0/images | POST |
| Check image status | /v1.0/images/{id} | GET |
| List themes | /v1.0/themes | GET |
| List folders | /v1.0/folders | GET |
| Search gammas | /v1.0/gammas/search | GET |
| Get gamma | /v1.0/gammas/{gammaId} | GET |
| Archive gamma | /v1.0/gammas/{gammaId}/archive | POST |
| Export gamma | /v1.0/gammas/{gammaId}/export | POST |
| Check export status | /v1.0/exports/{id} | GET |
| Delete gamma | /v1.0/gammas/{gammaId} | DELETE |
Base Configuration
| Setting | Value |
| Base URL | https://public-api.gamma.app |
| Version | v1.0 |
| Auth header | X-API-KEY |
| Content-Type | application/json |
Core Operations
1. Generate a Presentation from Text
curl -X POST "https://public-api.gamma.app/v1.0/generations" \
-H "Content-Type: application/json" \
-H "X-API-KEY: $(cat skills/gamma-presenter/credentials/gamma-api-key.txt)" \
-d '{
"inputText": "Your content or prompt here",
"textMode": "generate",
"format": "presentation",
"numCards": 10,
"theme": "theme-id-here",
"language": "en",
"exportAs": "pdf"
}'textMode options: generate (AI writes), assist (AI helps refine), paste (no AI, use your text as-is)
format options: presentation, document, webpage, social_post
exportAs options: pdf, pptx, png (PNG returns a ZIP with one image per card)
2. Poll for Generation Completion
curl -H "X-API-KEY: $(cat skills/gamma-presenter/credentials/gamma-api-key.txt)" \
"https://public-api.gamma.app/v1.0/generations/{generationId}"Poll every 5 seconds until status is completed or failed.
Completed response includes:
gammaUrl— live presentation linkexportUrl— downloadable file (if exportAs was specified)gammaId— ID for future management operationscredits— deduction and remaining balance
3. Generate from a Template
curl -X POST "https://public-api.gamma.app/v1.0/generations/from-template" \
-H "Content-Type: application/json" \
-H "X-API-KEY: $(cat skills/gamma-presenter/credentials/gamma-api-key.txt)" \
-d '{
"templateGammaId": "template-id-here",
"textMode": "generate",
"inputText": "New content to adapt the template to"
}'4. Export an Existing Gamma
curl -X POST "https://public-api.gamma.app/v1.0/gammas/{gammaId}/export" \
-H "Content-Type: application/json" \
-H "X-API-KEY: $(cat skills/gamma-presenter/credentials/gamma-api-key.txt)" \
-d '{
"format": "pptx"
}'Then poll: GET /v1.0/exports/{exportId}
5. Generate a Standalone Image
curl -X POST "https://public-api.gamma.app/v1.0/images" \
-H "Content-Type: application/json" \
-H "X-API-KEY: $(cat skills/gamma-presenter/credentials/gamma-api-key.txt)" \
-d '{
"prompt": "A hero image of a futuristic city skyline at sunset",
"aspectRatio": "16:9"
}'Available Themes and Folders
List Themes
curl -H "X-API-KEY: $(cat skills/gamma-presenter/credentials/gamma-api-key.txt)" \
"https://public-api.gamma.app/v1.0/themes"List Folders
curl -H "X-API-KEY: $(cat skills/gamma-presenter/credentials/gamma-api-key.txt)" \
"https://public-api.gamma.app/v1.0/folders"Workflow: Create → Poll → Download
When asked to create a Gamma presentation:
- Read the API key from
skills/gamma-presenter/credentials/gamma-api-key.txtusing thefilesystemtool - Build the request payload based on user's specifications (format, numCards, theme, exportAs, etc.)
- Start generation via
execusingcurlto POST/v1.0/generations - Parse the
generationIdfrom the response - Poll for completion every 5 seconds using
execwithcurlGET/v1.0/generations/{id} - Report results — share the
gammaUrlandexportUrl(if applicable) with the user - Save metadata (generationId, gammaId, gammaUrl, exportUrl) to a local file in
gamma-presenter/for reference, and clean up transient artifacts after use
Tips for Best Results
- Be specific: "10-slide marketing strategy covering target audience, channels, budget, and metrics"
- Describe style: "professional and minimal", "colorful and creative", "corporate and clean"
- Specify text density: "brief bullet points" vs "detailed explanations"
- Mention folders: "save to my Marketing folder" (use folder ID from
/folders) - Use
textMode: "paste"when you already have the full content written
Error Handling
| Status | Meaning | Action |
401 | Invalid API key | Check credentials/gamma-api-key.txt |
403 | Insufficient credits | Purchase more credits in Gamma settings |
429 | Rate limited | Wait and retry with exponential backoff |
422 | Invalid parameters | Check request payload against API docs |
5xx | Server error | Retry after a short delay |
Important Notes
- API calls must be server-side only — never from browser JavaScript
- Generations are async — always poll for completion
- Credits are deducted per generation; check remaining credits in the response
- Export URLs expire after a period; download files promptly
- Multi-page gammas require the
generate_multi_pagetool (via MCP) — REST API generates single gammas per call
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

