Skip to content

Commit 239d1a8

Browse files
committed
feat(gamma): add gamma integration for AI-powered content generation
1 parent 4ccb573 commit 239d1a8

File tree

15 files changed

+1379
-0
lines changed

15 files changed

+1379
-0
lines changed

apps/docs/components/icons.tsx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,33 @@ export function SlackMonoIcon(props: SVGProps<SVGSVGElement>) {
526526
)
527527
}
528528

529+
export function GammaIcon(props: SVGProps<SVGSVGElement>) {
530+
return (
531+
<svg {...props} viewBox='0 0 1111 192' fill='none' xmlns='http://www.w3.org/2000/svg'>
532+
<path
533+
fill='currentColor'
534+
d='M47.2,14.4c-14.4,8.2-26,19.6-34.4,33.6C4.3,62.1,0,77.7,0,94.3s4.3,32.2,12.7,46.3c8.5,14.1,20,25.4,34.4,33.6,14.4,8.2,30.4,12.4,47.7,12.4h69.8v-112.5h-81v39.1h38.2v31.8h-25.6c-9.1,0-17.6-2.3-25.2-6.9-7.6-4.6-13.8-10.8-18.3-18.4-4.5-7.7-6.7-16.2-6.7-25.3s2.3-17.7,6.7-25.3c4.5-7.7,10.6-13.9,18.3-18.4,7.6-4.6,16.1-6.9,25.2-6.9h68.5V2h-69.8c-17.3,0-33.3,4.2-47.7,12.4h0Z'
535+
/>
536+
<path
537+
fill='currentColor'
538+
d='M267.6.2c-42.7,0-77.4,34.8-77.4,77.6v108.8h42v-54.6h70.8v54.6h42v-108.8c0-42.8-34.7-77.6-77.4-77.6ZM303,93h-70.8v-15.3c0-19.6,15.9-35.5,35.4-35.5s35.4,15.9,35.4,35.5v15.3Z'
539+
/>
540+
<path
541+
fill='currentColor'
542+
d='M576.4,0c-32.1,0-58.2,26.2-58.2,58.4v74.2c0,8.7-7,15.7-15.7,15.7s-15.7-7-15.7-15.7V58.5c0-32.2-26.1-58.4-58.2-58.4s-58.2,26.2-58.2,58.4v128.2h42.6V58.5c0-8.7,7-15.7,15.7-15.7s15.7,7,15.7,15.7v74.1c0,32.2,26.1,58.4,58.2,58.4s58.2-26.2,58.2-58.4V58.4c0-8.7,7-15.7,15.7-15.7s15.7,7,15.7,15.7v128.3h42.6V58.4c0-32.2-26.1-58.4-58.2-58.4h0Z'
543+
/>
544+
<path
545+
fill='currentColor'
546+
d='M1033.1.3c-42.7,0-77.4,34.8-77.4,77.6v108.8h42v-54.6h70.8v54.6h42v-108.8c0-42.8-34.7-77.6-77.4-77.6ZM1068.5,93.2h-70.8v-15.3c0-19.6,15.9-35.5,35.4-35.5s35.4,15.9,35.4,35.5v15.3Z'
547+
/>
548+
<path
549+
fill='currentColor'
550+
d='M872,0c-32.1,0-58.2,26.2-58.2,58.4v74.2c0,8.7-7,15.7-15.7,15.7s-15.7-7-15.7-15.7V58.4c0-32.2-26.1-58.4-58.2-58.4s-58.2,26.2-58.2,58.4v128.3h42.6V58.4c0-8.7,7-15.7,15.7-15.7s15.7,7,15.7,15.7v74.2c0,32.2,26.1,58.4,58.2,58.4s58.2-26.2,58.2-58.4V58.4c0-8.7,7-15.7,15.7-15.7s15.7,7,15.7,15.7v128.3h42.6V58.4c0-32.2-26.1-58.4-58.2-58.4Z'
551+
/>
552+
</svg>
553+
)
554+
}
555+
529556
export function GithubIcon(props: SVGProps<SVGSVGElement>) {
530557
return (
531558
<svg {...props} width='26' height='26' viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'>

apps/docs/components/ui/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import {
3939
EyeIcon,
4040
FirecrawlIcon,
4141
FirefliesIcon,
42+
GammaIcon,
4243
GithubIcon,
4344
GitLabIcon,
4445
GmailIcon,
@@ -188,6 +189,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
188189
file_v3: DocumentIcon,
189190
firecrawl: FirecrawlIcon,
190191
fireflies_v2: FirefliesIcon,
192+
gamma: GammaIcon,
191193
github_v2: GithubIcon,
192194
gitlab: GitLabIcon,
193195
gmail_v2: GmailIcon,
Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
---
2+
title: Gamma
3+
description: Generate presentations, documents, and webpages with AI
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="gamma"
10+
color="#002253"
11+
/>
12+
13+
{/* MANUAL-CONTENT-START:intro */}
14+
[Gamma](https://gamma.app/) is an AI-powered platform for creating presentations, documents, webpages, and social posts. Gamma's API lets you programmatically generate polished, visually rich content from text prompts, adapt existing templates, and manage workspace assets like themes and folders.
15+
16+
With Gamma, you can:
17+
18+
- **Generate presentations and documents:** Create slide decks, documents, webpages, and social posts from text input with full control over format, tone, and image sourcing.
19+
- **Create from templates:** Adapt existing Gamma templates with custom prompts to quickly produce tailored content.
20+
- **Check generation status:** Poll for completion of async generation jobs and retrieve the final Gamma URL.
21+
- **Browse themes and folders:** List available workspace themes and folders to organize and style your generated content.
22+
23+
In Sim, the Gamma integration enables your agents to automatically generate presentations and documents, create content from templates, and manage workspace assets directly within your workflows. This allows you to automate content creation pipelines, batch-produce slide decks, and integrate AI-generated presentations into broader business automation scenarios.
24+
{/* MANUAL-CONTENT-END */}
25+
26+
27+
## Usage Instructions
28+
29+
Integrate Gamma into the workflow. Can generate presentations, documents, webpages, and social posts from text, create from templates, check generation status, and browse themes and folders.
30+
31+
32+
33+
## Tools
34+
35+
### `gamma_generate`
36+
37+
Generate a new Gamma presentation, document, webpage, or social post from text input.
38+
39+
#### Input
40+
41+
| Parameter | Type | Required | Description |
42+
| --------- | ---- | -------- | ----------- |
43+
| `apiKey` | string | Yes | Gamma API key |
44+
| `inputText` | string | Yes | Text and image URLs used to generate your gamma \(1-100,000 tokens\) |
45+
| `textMode` | string | Yes | How to handle input text: generate \(AI expands\), condense \(AI summarizes\), or preserve \(keep as-is\) |
46+
| `format` | string | No | Output format: presentation, document, webpage, or social \(default: presentation\) |
47+
| `themeId` | string | No | Custom Gamma workspace theme ID \(use List Themes to find available themes\) |
48+
| `numCards` | number | No | Number of cards/slides to generate \(1-60 for Pro, 1-75 for Ultra; default: 10\) |
49+
| `cardSplit` | string | No | How to split content into cards: auto or inputTextBreaks \(default: auto\) |
50+
| `cardDimensions` | string | No | Card aspect ratio. Presentation: fluid, 16x9, 4x3. Document: fluid, pageless, letter, a4. Social: 1x1, 4x5, 9x16 |
51+
| `additionalInstructions` | string | No | Additional instructions for the AI generation \(max 2000 chars\) |
52+
| `exportAs` | string | No | Automatically export the generated gamma as pdf or pptx |
53+
| `folderIds` | string | No | Comma-separated folder IDs to store the generated gamma in |
54+
| `textAmount` | string | No | Amount of text per card: brief, medium, detailed, or extensive |
55+
| `textTone` | string | No | Tone of the generated text, e.g. "professional", "casual" \(max 500 chars\) |
56+
| `textAudience` | string | No | Target audience for the generated text, e.g. "executives", "students" \(max 500 chars\) |
57+
| `textLanguage` | string | No | Language code for the generated text \(default: en\) |
58+
| `imageSource` | string | No | Where to source images: aiGenerated, pictographic, unsplash, webAllImages, webFreeToUse, webFreeToUseCommercially, giphy, placeholder, or noImages |
59+
| `imageModel` | string | No | AI image generation model to use when imageSource is aiGenerated |
60+
| `imageStyle` | string | No | Style directive for AI-generated images, e.g. "watercolor", "photorealistic" \(max 500 chars\) |
61+
62+
#### Output
63+
64+
| Parameter | Type | Description |
65+
| --------- | ---- | ----------- |
66+
| `generationId` | string | The ID of the generation job. Use with Check Status to poll for completion. |
67+
68+
### `gamma_generate_from_template`
69+
70+
Generate a new Gamma by adapting an existing template with a prompt.
71+
72+
#### Input
73+
74+
| Parameter | Type | Required | Description |
75+
| --------- | ---- | -------- | ----------- |
76+
| `apiKey` | string | Yes | Gamma API key |
77+
| `gammaId` | string | Yes | The ID of the template gamma to adapt |
78+
| `prompt` | string | Yes | Instructions for how to adapt the template \(1-100,000 tokens\) |
79+
| `themeId` | string | No | Custom Gamma workspace theme ID to apply |
80+
| `exportAs` | string | No | Automatically export the generated gamma as pdf or pptx |
81+
| `folderIds` | string | No | Comma-separated folder IDs to store the generated gamma in |
82+
| `imageSource` | string | No | Where to source images: aiGenerated, pictographic, unsplash, webAllImages, webFreeToUse, webFreeToUseCommercially, giphy, placeholder, or noImages |
83+
| `imageModel` | string | No | AI image generation model to use when imageSource is aiGenerated |
84+
| `imageStyle` | string | No | Style directive for AI-generated images, e.g. "watercolor", "photorealistic" \(max 500 chars\) |
85+
86+
#### Output
87+
88+
| Parameter | Type | Description |
89+
| --------- | ---- | ----------- |
90+
| `generationId` | string | The ID of the generation job. Use with Check Status to poll for completion. |
91+
92+
### `gamma_check_status`
93+
94+
Check the status of a Gamma generation job. Returns the gamma URL when completed, or error details if failed.
95+
96+
#### Input
97+
98+
| Parameter | Type | Required | Description |
99+
| --------- | ---- | -------- | ----------- |
100+
| `apiKey` | string | Yes | Gamma API key |
101+
| `generationId` | string | Yes | The generation ID returned by the Generate or Generate from Template tool |
102+
103+
#### Output
104+
105+
| Parameter | Type | Description |
106+
| --------- | ---- | ----------- |
107+
| `generationId` | string | The generation ID that was checked |
108+
| `status` | string | Generation status: pending, completed, or failed |
109+
| `gammaUrl` | string | URL of the generated gamma \(only present when status is completed\) |
110+
| `credits` | object | Credit usage information \(only present when status is completed\) |
111+
|`deducted` | number | Number of credits deducted for this generation |
112+
|`remaining` | number | Remaining credits in the account |
113+
| `error` | object | Error details \(only present when status is failed\) |
114+
|`message` | string | Human-readable error message |
115+
|`statusCode` | number | HTTP status code of the error |
116+
117+
### `gamma_list_themes`
118+
119+
List available themes in your Gamma workspace. Returns theme IDs, names, and keywords for styling.
120+
121+
#### Input
122+
123+
| Parameter | Type | Required | Description |
124+
| --------- | ---- | -------- | ----------- |
125+
| `apiKey` | string | Yes | Gamma API key |
126+
| `query` | string | No | Search query to filter themes by name \(case-insensitive\) |
127+
| `limit` | number | No | Maximum number of themes to return per page \(max 50\) |
128+
| `after` | string | No | Pagination cursor from a previous response \(nextCursor\) to fetch the next page |
129+
130+
#### Output
131+
132+
| Parameter | Type | Description |
133+
| --------- | ---- | ----------- |
134+
| `themes` | array | List of available themes |
135+
|`id` | string | Theme ID \(use with themeId parameter\) |
136+
|`name` | string | Theme display name |
137+
|`type` | string | Theme type: standard or custom |
138+
|`colorKeywords` | array | Color descriptors for this theme |
139+
|`toneKeywords` | array | Tone descriptors for this theme |
140+
| `hasMore` | boolean | Whether more results are available on the next page |
141+
| `nextCursor` | string | Pagination cursor to pass as the after parameter for the next page |
142+
143+
### `gamma_list_folders`
144+
145+
List available folders in your Gamma workspace. Returns folder IDs and names for organizing generated content.
146+
147+
#### Input
148+
149+
| Parameter | Type | Required | Description |
150+
| --------- | ---- | -------- | ----------- |
151+
| `apiKey` | string | Yes | Gamma API key |
152+
| `query` | string | No | Search query to filter folders by name \(case-sensitive\) |
153+
| `limit` | number | No | Maximum number of folders to return per page \(max 50\) |
154+
| `after` | string | No | Pagination cursor from a previous response \(nextCursor\) to fetch the next page |
155+
156+
#### Output
157+
158+
| Parameter | Type | Description |
159+
| --------- | ---- | ----------- |
160+
| `folders` | array | List of available folders |
161+
|`id` | string | Folder ID \(use with folderIds parameter\) |
162+
|`name` | string | Folder display name |
163+
| `hasMore` | boolean | Whether more results are available on the next page |
164+
| `nextCursor` | string | Pagination cursor to pass as the after parameter for the next page |
165+
166+

apps/docs/content/docs/en/tools/meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"file",
3535
"firecrawl",
3636
"fireflies",
37+
"gamma",
3738
"github",
3839
"gitlab",
3940
"gmail",

0 commit comments

Comments
 (0)