opencode-skills-collection 3.0.37 → 3.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +13 -1
  2. package/bundled-skills/2slides-ppt-generator/SKILL.md +786 -0
  3. package/bundled-skills/2slides-ppt-generator/references/api-reference.md +499 -0
  4. package/bundled-skills/2slides-ppt-generator/references/mcp-integration.md +282 -0
  5. package/bundled-skills/2slides-ppt-generator/references/pricing.md +195 -0
  6. package/bundled-skills/2slides-ppt-generator/scripts/api_constants.py +87 -0
  7. package/bundled-skills/2slides-ppt-generator/scripts/create_pdf_slides.py +159 -0
  8. package/bundled-skills/2slides-ppt-generator/scripts/download_slides_pages_voices.py +157 -0
  9. package/bundled-skills/2slides-ppt-generator/scripts/generate_narration.py +197 -0
  10. package/bundled-skills/2slides-ppt-generator/scripts/generate_slides.py +247 -0
  11. package/bundled-skills/2slides-ppt-generator/scripts/get_job_status.py +106 -0
  12. package/bundled-skills/2slides-ppt-generator/scripts/search_themes.py +137 -0
  13. package/bundled-skills/anti-sycophancy/README.md +86 -0
  14. package/bundled-skills/anti-sycophancy/SKILL.md +40 -0
  15. package/bundled-skills/antigravity-agent-manager/SKILL.md +112 -0
  16. package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
  17. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
  18. package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
  19. package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
  20. package/bundled-skills/docs/sources/sources.md +1 -0
  21. package/bundled-skills/docs/users/bundles.md +1 -1
  22. package/bundled-skills/docs/users/claude-code-skills.md +1 -1
  23. package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
  24. package/bundled-skills/docs/users/getting-started.md +1 -1
  25. package/bundled-skills/docs/users/kiro-integration.md +1 -1
  26. package/bundled-skills/docs/users/usage.md +4 -4
  27. package/bundled-skills/docs/users/visual-guide.md +4 -4
  28. package/bundled-skills/event-staffing-compliance/SKILL.md +91 -0
  29. package/bundled-skills/event-staffing-ordering/SKILL.md +119 -0
  30. package/bundled-skills/examprep-ai/SKILL.md +446 -0
  31. package/bundled-skills/hasdata/SKILL.md +107 -0
  32. package/bundled-skills/hasdata/references/code-recipes.md +150 -0
  33. package/bundled-skills/hasdata/references/ecommerce.md +116 -0
  34. package/bundled-skills/hasdata/references/jobs.md +111 -0
  35. package/bundled-skills/hasdata/references/local-business.md +145 -0
  36. package/bundled-skills/hasdata/references/real-estate.md +84 -0
  37. package/bundled-skills/hasdata/references/scraper-jobs.md +252 -0
  38. package/bundled-skills/hasdata/references/search.md +154 -0
  39. package/bundled-skills/hasdata/references/travel.md +202 -0
  40. package/bundled-skills/hasdata/references/web-scraping.md +159 -0
  41. package/bundled-skills/hasdata/references/youtube.md +186 -0
  42. package/bundled-skills/hasdata-cli/SKILL.md +169 -0
  43. package/bundled-skills/hasdata-cli/references/all-commands.md +107 -0
  44. package/bundled-skills/hasdata-cli/references/ecommerce.md +106 -0
  45. package/bundled-skills/hasdata-cli/references/enrichment.md +227 -0
  46. package/bundled-skills/hasdata-cli/references/jobs.md +84 -0
  47. package/bundled-skills/hasdata-cli/references/local-business.md +123 -0
  48. package/bundled-skills/hasdata-cli/references/real-estate.md +126 -0
  49. package/bundled-skills/hasdata-cli/references/search.md +122 -0
  50. package/bundled-skills/hasdata-cli/references/travel.md +102 -0
  51. package/bundled-skills/hasdata-cli/references/web-scraping.md +181 -0
  52. package/bundled-skills/hasdata-cli/references/youtube.md +145 -0
  53. package/bundled-skills/linkedin-content-generator/SKILL.md +492 -0
  54. package/bundled-skills/linkedin-content-generator/scripts/generate_calendar.py +82 -0
  55. package/bundled-skills/linkedin-content-generator/scripts/generate_carousel.py +69 -0
  56. package/bundled-skills/linkedin-content-generator/scripts/generate_newsletter.py +64 -0
  57. package/bundled-skills/linkedin-content-generator/scripts/generate_post.py +77 -0
  58. package/bundled-skills/linkedin-content-generator/scripts/memory.md +49 -0
  59. package/bundled-skills/linkedin-content-generator/scripts/memory_manager.py +134 -0
  60. package/bundled-skills/linkedin-content-generator/scripts/utils.py +96 -0
  61. package/bundled-skills/permission-manager/README.md +22 -0
  62. package/bundled-skills/permission-manager/SKILL.md +54 -0
  63. package/bundled-skills/skill-suggester/README.md +14 -0
  64. package/bundled-skills/skill-suggester/SKILL.md +69 -0
  65. package/bundled-skills/smart-git-automation/README.md +31 -0
  66. package/bundled-skills/smart-git-automation/SKILL.md +96 -0
  67. package/bundled-skills/vercel-optimize/lib/cost-coverage.mjs +3 -1
  68. package/bundled-skills/vercel-optimize/lib/render-report.mjs +2 -2
  69. package/bundled-skills/vercel-optimize/lib/util.mjs +7 -0
  70. package/bundled-skills/vercel-optimize/lib/verify-claim.mjs +2 -7
  71. package/bundled-skills/vercel-optimize/lib/workspace-resolver.mjs +2 -1
  72. package/package.json +1 -1
  73. package/skills_index.json +268 -0
@@ -0,0 +1,786 @@
1
+ ---
2
+ name: 2slides-ppt-generator
3
+ description: "AI-powered presentation generation via the 2slides API — create slides from text, match a reference image style, summarize documents into decks, add AI voice narration, and export pages/audio. Use for any \"make slides\", \"create a deck\", or \"slides from this document\" request."
4
+ category: api-integration
5
+ risk: safe
6
+ source: community
7
+ source_repo: 2slides/slides-generation-2slides-skills
8
+ source_type: community
9
+ date_added: "2026-06-05"
10
+ author: 2slides
11
+ tags: [presentations, slides, powerpoint, ai, api-integration, pdf, narration, document-summarization]
12
+ tools: [claude, cursor, gemini, codex, antigravity]
13
+ ---
14
+
15
+ # 2slides Presentation Generation
16
+
17
+ ## Overview
18
+
19
+ Generate professional presentations using the 2slides AI API. The skill supports content-based generation (theme-driven Fast PPT), style matching from a reference image, custom PDF design, document summarization, AI voice narration, and exporting pages/audio. It returns both an interactive slide URL and a downloadable PDF.
20
+
21
+ This skill is adapted from the official 2slides skill repository ([`2slides/slides-generation-2slides-skills`](https://github.com/2slides/slides-generation-2slides-skills)). It calls the hosted 2slides API and requires the user's own API key and credits.
22
+
23
+ ## When to Use This Skill
24
+
25
+ - Use when the user asks to "create a presentation", "make slides", or "generate a deck" from text or an outline.
26
+ - Use when the user wants slides that match the style of a reference image ("create slides like this image").
27
+ - Use when the user wants custom-designed PDF slides without a reference image.
28
+ - Use when the user uploads a document and asks to "create slides from this document".
29
+ - Use when the user wants to add AI voice narration to generated slides, or export slides as PNG images and narration as WAV audio.
30
+ - Use when the user asks "what themes are available?" or wants to browse/select a theme.
31
+
32
+ ## Setup Requirements
33
+
34
+ Users must have a 2slides API key and credits:
35
+
36
+ 1. **Get API Key:** Visit https://2slides.com/api to create an account and API key
37
+ - New users receive **500 free credits** (~50 Fast PPT pages)
38
+ 2. **Purchase Credits (Optional):** Visit https://2slides.com/pricing to buy additional credits
39
+ - Pay-as-you-go, no subscriptions
40
+ - Credits never expire
41
+ - Up to 20% off on larger packages
42
+ 3. **Set API Key:** Store the key in environment variable: `SLIDES_2SLIDES_API_KEY`
43
+
44
+ ```bash
45
+ export SLIDES_2SLIDES_API_KEY="your_api_key_here"
46
+ ```
47
+
48
+ **Credit Costs:**
49
+ - Fast PPT: 10 credits/page
50
+ - Nano Banana 1K/2K: 100 credits/page
51
+ - Nano Banana 4K: 200 credits/page
52
+ - Voice Narration: 210 credits/page
53
+ - Download Export: FREE
54
+
55
+ See [references/pricing.md](references/pricing.md) for detailed pricing information.
56
+
57
+ ## Workflow Decision Tree
58
+
59
+ Choose the appropriate approach based on the user's request:
60
+
61
+ ```
62
+ User Request
63
+
64
+ ├─ "Create slides from this content/text"
65
+ │ └─> Use Content-Based Generation (Section 1)
66
+
67
+ ├─ "Create slides like this image"
68
+ │ └─> Use Reference Image Generation (Section 2)
69
+
70
+ ├─ "Create custom designed slides" or "Create PDF slides"
71
+ │ └─> Use Custom PDF Generation (Section 3)
72
+
73
+ ├─ "Create slides from this document"
74
+ │ └─> Use Document Summarization (Section 4)
75
+
76
+ ├─ "Add voice narration" or "Generate audio for slides"
77
+ │ └─> Use Voice Narration (Section 5)
78
+
79
+ ├─ "Download slides as images" or "Export slides and voices"
80
+ │ └─> Use Download Export (Section 6)
81
+
82
+ └─ "Search for themes" or "What themes are available?"
83
+ └─> Use Theme Search (Section 7)
84
+ ```
85
+
86
+ ---
87
+
88
+ ## 1. Content-Based Generation
89
+
90
+ Generate slides from user-provided text content.
91
+
92
+ ### When to Use
93
+ - User provides content directly in their message
94
+ - User says "create a presentation about X"
95
+ - User provides structured outline or bullet points
96
+
97
+ ### Workflow
98
+
99
+ **Step 1: Prepare Content**
100
+
101
+ Structure the content clearly for best results:
102
+
103
+ ```
104
+ Title: [Main Topic]
105
+
106
+ Section 1: [Subtopic]
107
+ - Key point 1
108
+ - Key point 2
109
+ - Key point 3
110
+
111
+ Section 2: [Subtopic]
112
+ - Key point 1
113
+ - Key point 2
114
+ ```
115
+
116
+ **Step 2: Choose Theme (Required)**
117
+
118
+ Search for an appropriate theme (themeId is required):
119
+
120
+ ```bash
121
+ python scripts/search_themes.py --query "business"
122
+ python scripts/search_themes.py --query "professional"
123
+ python scripts/search_themes.py --query "creative"
124
+ ```
125
+
126
+ Pick a theme ID from the results.
127
+
128
+ **Step 3: Generate Slides**
129
+
130
+ Use the `generate_slides.py` script with the theme ID:
131
+
132
+ ```bash
133
+ # Basic generation (theme ID required)
134
+ python scripts/generate_slides.py --content "Your content here" --theme-id "theme123"
135
+
136
+ # In different language
137
+ python scripts/generate_slides.py --content "Your content" --theme-id "theme123" --language "Spanish"
138
+
139
+ # Async mode for longer presentations
140
+ python scripts/generate_slides.py --content "Your content" --theme-id "theme123" --mode async
141
+ ```
142
+
143
+ **Step 4: Handle Results**
144
+
145
+ **Sync mode response:**
146
+ ```json
147
+ {
148
+ "slideUrl": "https://2slides.com/slides/abc123",
149
+ "pdfUrl": "https://2slides.com/slides/abc123/download",
150
+ "status": "completed"
151
+ }
152
+ ```
153
+
154
+ Provide both URLs to the user:
155
+ - `slideUrl`: Interactive online slides
156
+ - `pdfUrl`: Downloadable PDF version
157
+
158
+ **Async mode response:**
159
+ ```json
160
+ {
161
+ "jobId": "job123",
162
+ "status": "pending"
163
+ }
164
+ ```
165
+
166
+ Poll for results:
167
+ ```bash
168
+ python scripts/get_job_status.py --job-id "job123"
169
+ ```
170
+
171
+ ---
172
+
173
+ ## 2. Reference Image Generation
174
+
175
+ Generate slides that match the style of a reference image.
176
+
177
+ ### When to Use
178
+ - User provides an image URL and says "create slides like this"
179
+ - User wants to match existing brand/design style
180
+ - User has a template image they want to emulate
181
+
182
+ ### Workflow
183
+
184
+ **Step 1: Verify Image URL**
185
+
186
+ Ensure the reference image is:
187
+ - Publicly accessible URL
188
+ - Valid image format (PNG, JPG, etc.)
189
+ - Represents the desired slide style
190
+
191
+ **Step 2: Generate Slides**
192
+
193
+ Use the `generate_slides.py` script with `--reference-image`:
194
+
195
+ ```bash
196
+ python scripts/generate_slides.py \
197
+ --content "Your presentation content" \
198
+ --reference-image "https://example.com/template.jpg" \
199
+ --language "Auto"
200
+ ```
201
+
202
+ **Optional parameters (all values from [2slides API](https://2slides.com/api.md)):**
203
+ ```bash
204
+ --language LANG # Auto, English, Spanish, Arabic, Portuguese, Indonesian,
205
+ # Japanese, Russian, Hindi, French, German, Greek, Vietnamese,
206
+ # Turkish, Polish, Italian, Korean, Simplified Chinese,
207
+ # Traditional Chinese, Thai (default: Auto)
208
+ --mode sync|async # default: sync for theme, async for reference-image
209
+ --aspect-ratio RATIO # 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 (default: 16:9)
210
+ --resolution 1K|2K|4K # default: 2K
211
+ --page N # 0=auto, 1-100 (default: 1)
212
+ --content-detail concise|standard # default: standard
213
+ ```
214
+
215
+ **Note:** This uses Nano Banana Pro mode with credit costs:
216
+ - 1K/2K: 100 credits per page
217
+ - 4K: 200 credits per page
218
+
219
+ **Step 3: Handle Results**
220
+
221
+ This mode always runs synchronously and returns:
222
+ ```json
223
+ {
224
+ "slideUrl": "https://2slides.com/workspace?jobId=...",
225
+ "pdfUrl": "https://...pdf...",
226
+ "status": "completed",
227
+ "message": "Successfully generated N slides",
228
+ "slidePageCount": N
229
+ }
230
+ ```
231
+
232
+ Provide both URLs to the user:
233
+ - `slideUrl`: View slides in 2slides workspace
234
+ - `pdfUrl`: Direct PDF download (expires in 1 hour)
235
+
236
+ **Processing time:** ~30 seconds per page (30-60 seconds typical for 1-2 pages)
237
+
238
+ ---
239
+
240
+ ## 3. Custom PDF Generation
241
+
242
+ Generate custom-designed slides from text without needing a reference image.
243
+
244
+ ### When to Use
245
+ - User wants custom design without providing a reference image
246
+ - User requests "create PDF slides"
247
+ - User wants to specify design characteristics
248
+ - Alternative to theme-based generation with more design flexibility
249
+
250
+ ### Workflow
251
+
252
+ **Step 1: Prepare Content**
253
+
254
+ Structure the content clearly:
255
+
256
+ ```
257
+ Title: [Main Topic]
258
+
259
+ Section 1: [Subtopic]
260
+ - Key point 1
261
+ - Key point 2
262
+
263
+ Section 2: [Subtopic]
264
+ - Key point 1
265
+ - Key point 2
266
+ ```
267
+
268
+ **Step 2: Generate Slides**
269
+
270
+ Use the `create_pdf_slides.py` script:
271
+
272
+ ```bash
273
+ # Basic generation
274
+ python scripts/create_pdf_slides.py --content "Your content here"
275
+
276
+ # With design style (API: designStyle)
277
+ python scripts/create_pdf_slides.py \
278
+ --content "Sales Report Q4 2025" \
279
+ --design-style "modern minimalist, blue color scheme"
280
+
281
+ # High resolution with auto page detection
282
+ python scripts/create_pdf_slides.py \
283
+ --content "Marketing Plan" \
284
+ --resolution 4K \
285
+ --page 0 \
286
+ --content-detail standard
287
+ ```
288
+
289
+ **Optional parameters:**
290
+ ```bash
291
+ --design-style "text" # Design instructions (API: designStyle)
292
+ --language LANG # Same as generate_slides (default: Auto)
293
+ --aspect-ratio RATIO # 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 (default: 16:9)
294
+ --resolution 1K|2K|4K # default: 2K
295
+ --page N # 0=auto, 1-100 (default: 1)
296
+ --content-detail concise|standard # default: standard
297
+ --mode sync|async # default: async
298
+ ```
299
+
300
+ **Step 3: Handle Results**
301
+
302
+ Returns same structure as create-like-this:
303
+ ```json
304
+ {
305
+ "slideUrl": "https://2slides.com/workspace?jobId=...",
306
+ "pdfUrl": "https://...pdf...",
307
+ "status": "completed",
308
+ "message": "Successfully generated N slides",
309
+ "slidePageCount": N
310
+ }
311
+ ```
312
+
313
+ **Notes:**
314
+ - Same credit costs as create-like-this (100 credits/page for 1K/2K, 200 for 4K)
315
+ - Processing time: ~30 seconds per page
316
+ - Automatically generates PDF
317
+ - Uses AI to create custom design based on content and specs
318
+
319
+ ---
320
+
321
+ ## 4. Document Summarization
322
+
323
+ Generate slides from document content.
324
+
325
+ ### When to Use
326
+ - User uploads a document (PDF, DOCX, TXT, etc.)
327
+ - User says "create slides from this document"
328
+ - User wants to summarize long content into presentation format
329
+
330
+ ### Workflow
331
+
332
+ **Step 1: Read Document**
333
+
334
+ Use appropriate tool to read the document content:
335
+ - PDF: Use PDF reading tools
336
+ - DOCX: Use DOCX reading tools
337
+ - TXT/MD: Use Read tool
338
+
339
+ **Step 2: Extract Key Points**
340
+
341
+ Analyze the document and extract:
342
+ - Main topics and themes
343
+ - Key points for each section
344
+ - Important data, quotes, or examples
345
+ - Logical flow and structure
346
+
347
+ **Step 3: Structure Content**
348
+
349
+ Format extracted information into presentation structure:
350
+
351
+ ```
352
+ Title: [Document Main Topic]
353
+
354
+ Introduction
355
+ - Context
356
+ - Purpose
357
+ - Overview
358
+
359
+ [Section 1 from document]
360
+ - Key point 1
361
+ - Key point 2
362
+ - Supporting detail
363
+
364
+ [Section 2 from document]
365
+ - Key point 1
366
+ - Key point 2
367
+ - Supporting detail
368
+
369
+ Conclusion
370
+ - Summary
371
+ - Key takeaways
372
+ - Next steps
373
+ ```
374
+
375
+ **Step 4: Generate Slides**
376
+
377
+ Use content-based generation workflow (Section 1). First search for a theme, then generate:
378
+
379
+ ```bash
380
+ # Search for appropriate theme
381
+ python scripts/search_themes.py --query "business"
382
+
383
+ # Generate with theme ID
384
+ python scripts/generate_slides.py --content "[Structured content from step 3]" --theme-id "theme123"
385
+ ```
386
+
387
+ **Tips:**
388
+ - Keep slides concise (3-5 points per slide)
389
+ - Focus on key insights, not full text
390
+ - Use document headings as slide titles
391
+ - Include important statistics or quotes
392
+ - Ask user if they want specific sections highlighted
393
+
394
+ ---
395
+
396
+ ## 5. Voice Narration
397
+
398
+ Add AI-generated voice narration to slides.
399
+
400
+ ### When to Use
401
+ - User wants to add audio to slides
402
+ - User requests "add voice narration" or "generate audio"
403
+ - User wants presentations with spoken content
404
+ - User needs multi-speaker narration
405
+
406
+ ### Prerequisites
407
+
408
+ **IMPORTANT:** The slide generation job must be completed before adding narration.
409
+
410
+ 1. Generate slides first using any method (Section 1, 2, 3, or 4)
411
+ 2. Get the job ID from the generation result
412
+ 3. Ensure job status is "completed" before requesting narration
413
+
414
+ ### Workflow
415
+
416
+ **Step 1: Choose Voice**
417
+
418
+ 30 voices available including:
419
+ - Puck (default)
420
+ - Aoede
421
+ - Charon
422
+ - Kore
423
+ - Fenrir
424
+ - Phoebe
425
+ - And 24 more...
426
+
427
+ List all voices:
428
+ ```bash
429
+ python scripts/generate_narration.py --list-voices
430
+ ```
431
+
432
+ **Step 2: Generate Narration**
433
+
434
+ Use the `generate_narration.py` script with the job ID:
435
+
436
+ ```bash
437
+ # Basic narration with default voice
438
+ python scripts/generate_narration.py --job-id "abc-123-def-456"
439
+
440
+ # Single speaker, specific voice
441
+ python scripts/generate_narration.py --job-id "abc-123-def-456" --voice Aoede
442
+
443
+ # No speaker intro
444
+ python scripts/generate_narration.py --job-id "abc-123-def-456" --no-intro
445
+
446
+ # Multi-speaker (names required)
447
+ python scripts/generate_narration.py --job-id "abc-123-def-456" --multi-speaker \
448
+ --speaker1-name "Alice" --speaker2-name "Bob" \
449
+ --speaker1-voice Aoede --speaker2-voice Puck
450
+ ```
451
+
452
+ **Parameters (aligned with [2slides API](https://2slides.com/api.md)):**
453
+ - `--job-id`: Job ID (required, UUID for Nano Banana)
454
+ - `--mode`: `single` or `multi` (default: single)
455
+ - `--speaker-name`: Speaker name (single mode)
456
+ - `--voice`: Voice name (default: Puck); use `--list-voices` for all 30
457
+ - `--content-mode`: `concise` or `standard` (default: standard)
458
+ - `--no-intro`: Omit speaker introduction (single mode)
459
+ - `--speaker1-name`, `--speaker2-name`: Required for multi mode
460
+ - `--speaker1-voice`, `--speaker2-voice`: Optional for multi mode
461
+ - `--multi-speaker`: Shortcut for `--mode multi`
462
+
463
+ **Step 3: Check Status**
464
+
465
+ Narration generation runs asynchronously:
466
+
467
+ ```bash
468
+ python scripts/get_job_status.py --job-id "abc-123-def-456"
469
+ ```
470
+
471
+ **Step 4: Handle Results**
472
+
473
+ Once completed, the job will include narration files. Use download endpoint (Section 6) to get audio files.
474
+
475
+ **Notes:**
476
+ - **Cost:** 210 credits per page (10 for text, 200 for audio)
477
+ - Processing time varies by slide count
478
+ - 30 voice options available
479
+ - Supports 19 languages plus auto-detection
480
+ - Multi-speaker mode uses different voices for variety
481
+
482
+ ---
483
+
484
+ ## 6. Download Export
485
+
486
+ Download slides as PNG images and voice narrations as WAV files.
487
+
488
+ ### When to Use
489
+ - User wants to download slides as images
490
+ - User needs voice files separately
491
+ - User wants transcripts
492
+ - User needs slides in image format for other tools
493
+
494
+ ### Workflow
495
+
496
+ **Step 1: Verify Job Complete**
497
+
498
+ Ensure slides (and optionally narration) are generated and job is completed.
499
+
500
+ **Step 2: Download Archive**
501
+
502
+ Use the `download_slides_pages_voices.py` script:
503
+
504
+ ```bash
505
+ # Download with default filename (<job_id>.zip)
506
+ python scripts/download_slides_pages_voices.py --job-id "abc-123-def-456"
507
+
508
+ # Download to specific path
509
+ python scripts/download_slides_pages_voices.py \
510
+ --job-id "abc-123-def-456" \
511
+ --output "my-presentation.zip"
512
+ ```
513
+
514
+ **Step 3: Extract Contents**
515
+
516
+ The ZIP archive contains:
517
+ - **Pages:** PNG files for each slide
518
+ - **Voices:** WAV audio files (if narration was generated)
519
+ - **Transcripts:** Text transcripts of narration
520
+
521
+ **Notes:**
522
+ - **Cost:** Completely FREE (no credits used)
523
+ - Download URLs valid for **1 hour only**
524
+ - Includes all pages and voice files
525
+ - High quality PNG export
526
+ - WAV format for audio
527
+
528
+ ---
529
+
530
+ ## 7. Theme Search
531
+
532
+ Find appropriate themes for presentations.
533
+
534
+ ### When to Use
535
+ - Before generating slides with specific styling
536
+ - User asks "what themes are available?"
537
+ - User wants professional or branded appearance
538
+
539
+ ### Workflow
540
+
541
+ **Search themes:**
542
+
543
+ ```bash
544
+ # Search for specific style (query is required)
545
+ python scripts/search_themes.py --query "business"
546
+ python scripts/search_themes.py --query "creative"
547
+ python scripts/search_themes.py --query "education"
548
+ python scripts/search_themes.py --query "professional"
549
+
550
+ # Get more results
551
+ python scripts/search_themes.py --query "modern" --limit 50
552
+ ```
553
+
554
+ **Theme selection:**
555
+
556
+ 1. Show user available themes with names and descriptions
557
+ 2. Ask user to choose or let them use default
558
+ 3. Use the theme ID in generation request
559
+
560
+ ---
561
+
562
+ ## Using the MCP Server
563
+
564
+ If the 2slides MCP server is configured in Claude Desktop, use the integrated tools instead of scripts.
565
+
566
+ **Two Configuration Modes:**
567
+
568
+ 1. **Streamable HTTP Protocol (Recommended)**
569
+ - Simplest setup, no local installation
570
+ - Configure: `"url": "https://2slides.com/api/mcp?apikey=YOUR_API_KEY"`
571
+
572
+ 2. **NPM Package (stdio)**
573
+ - Uses local npm package
574
+ - Configure: `"command": "npx", "args": ["2slides-mcp"]`
575
+
576
+ **Available MCP tools:**
577
+ - `slides_generate` - Generate slides from content
578
+ - `slides_create_like_this` - Generate from reference image
579
+ - `themes_search` - Search themes
580
+ - `jobs_get` - Check job status
581
+
582
+ See [mcp-integration.md](references/mcp-integration.md) for complete setup instructions and detailed tool documentation.
583
+
584
+ **When to use MCP vs scripts:**
585
+ - **Use MCP** in Claude Desktop when configured
586
+ - **Use scripts** in Claude Code CLI or when MCP not available
587
+
588
+ ---
589
+
590
+ ## Advanced Features
591
+
592
+ ### Sync vs Async Mode
593
+
594
+ **Sync Mode (default):**
595
+ - Waits for generation to complete (30-60 seconds)
596
+ - Returns results immediately
597
+ - Best for quick presentations
598
+
599
+ **Async Mode:**
600
+ - Returns job ID immediately
601
+ - Poll for results with `get_job_status.py`
602
+ - Best for large presentations or batch processing
603
+ - **Recommended polling:** Check every 20-30 seconds to avoid server strain
604
+
605
+ ### Rate Limits
606
+
607
+ Different endpoints have different rate limits:
608
+
609
+ - **Fast PPT (generate):** 10 requests per minute
610
+ - **Nano Banana (create-like-this, create-pdf-slides):** 6 requests per minute
611
+
612
+ If rate limited, wait before retrying or check plan limits.
613
+
614
+ ### Credit Costs
615
+
616
+ - **Fast PPT (generate endpoint):** 10 credits per page
617
+ - **Nano Banana 1K/2K (create-like-this, create-pdf-slides):** 100 credits per page
618
+ - **Nano Banana 4K:** 200 credits per page
619
+ - **Voice Narration:** 210 credits per page (10 for text, 200 for audio)
620
+ - **Download Export:** FREE (no credits)
621
+
622
+ ### Purchasing Credits
623
+
624
+ 2slides uses a pay-as-you-go credit system with no subscriptions required.
625
+
626
+ **Credit Packages:** (Current promotion: up to 20% off)
627
+ - 2,000 credits: $5.00
628
+ - 4,000 credits: $9.50 (5% off)
629
+ - 10,000 credits: $22.50 (10% off)
630
+ - 20,000 credits: $42.50 (15% off)
631
+ - 40,000 credits: $80.00 (20% off)
632
+
633
+ **New users receive 500 free credits** for onboarding (~50 Fast PPT pages).
634
+
635
+ **Credits never expire** - use them at your own pace.
636
+
637
+ **Purchase credits at:** https://2slides.com/pricing
638
+
639
+ ### Download URL Expiration
640
+
641
+ All download URLs (PDF, ZIP archives) are valid for **1 hour only**. Download files promptly after generation.
642
+
643
+ ### Language Support
644
+
645
+ Generate slides in multiple languages (use full language name):
646
+
647
+ ```bash
648
+ --language "Auto" # Automatic detection (default)
649
+ --language "English" # English
650
+ --language "Simplified Chinese" # 简体中文
651
+ --language "Traditional Chinese" # 繁體中文
652
+ --language "Spanish" # Español
653
+ --language "French" # Français
654
+ --language "German" # Deutsch
655
+ --language "Japanese" # 日本語
656
+ --language "Korean" # 한국어
657
+ ```
658
+
659
+ And more: Arabic, Portuguese, Indonesian, Russian, Hindi, Vietnamese, Turkish, Polish, Italian
660
+
661
+ ### Error Handling
662
+
663
+ **Common error codes:**
664
+
665
+ 1. **Missing API key**
666
+ ```
667
+ Error: API key not found
668
+ Solution: Set SLIDES_2SLIDES_API_KEY environment variable
669
+ ```
670
+
671
+ 2. **RATE_LIMIT_EXCEEDED**
672
+ ```
673
+ Error: 429 Too Many Requests
674
+ Solution: Wait 20-30 seconds before retrying
675
+ Rate limits: Fast PPT (10/min), Nano Banana (6/min)
676
+ ```
677
+
678
+ 3. **INSUFFICIENT_CREDITS**
679
+ ```
680
+ Error: Not enough credits
681
+ Solution: Add credits at https://2slides.com/api
682
+ ```
683
+
684
+ 4. **INVALID_JOB_ID**
685
+ ```
686
+ Error: Job ID not found or invalid
687
+ Solution: Verify job ID format (must be UUID for Nano Banana)
688
+ ```
689
+
690
+ 5. **Invalid content**
691
+ ```
692
+ Error: 400 Bad Request
693
+ Solution: Verify content format and parameters
694
+ ```
695
+
696
+ ---
697
+
698
+ ## Script Parameter Reference (2slides API)
699
+
700
+ All scripts accept parameters that match [2slides API](https://2slides.com/api.md). Allowed values are defined in `scripts/api_constants.py` and enforced where applicable.
701
+
702
+ | Script | Key parameters | Allowed values (see script `--help` or api_constants.py) |
703
+ |--------|----------------|----------------------------------------------------------|
704
+ | `generate_slides.py` | `--language` | Auto, English, Spanish, Arabic, Portuguese, Indonesian, Japanese, Russian, Hindi, French, German, Greek, Vietnamese, Turkish, Polish, Italian, Korean, Simplified Chinese, Traditional Chinese, Thai |
705
+ | | `--mode` | sync, async |
706
+ | | `--aspect-ratio` | 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 |
707
+ | | `--resolution` | 1K, 2K, 4K |
708
+ | | `--content-detail` | concise, standard |
709
+ | `create_pdf_slides.py` | Same as above + `--design-style` (free text), `--mode` (default async) | |
710
+ | `generate_narration.py` | `--mode` | single, multi |
711
+ | | `--voice` | 30 voices (Puck, Aoede, Charon, …); use `--list-voices` |
712
+ | | `--content-mode` | concise, standard |
713
+ | | Multi: `--speaker1-name`, `--speaker2-name`, `--speaker1-voice`, `--speaker2-voice` | |
714
+ | `search_themes.py` | `--query` (required), `--limit` (1–100) | |
715
+ | `get_job_status.py` | `--job-id` (required) | |
716
+ | `download_slides_pages_voices.py` | `--job-id` (required), `--output` (path) | |
717
+
718
+ ---
719
+
720
+ ## Additional Documentation
721
+
722
+ ### API Reference
723
+ See [api-reference.md](references/api-reference.md) for:
724
+ - All endpoints and parameters
725
+ - Request/response formats
726
+ - Authentication details
727
+ - Rate limits and best practices
728
+ - Error codes and handling
729
+
730
+ ### Pricing Information
731
+ See [pricing.md](references/pricing.md) for:
732
+ - Credit packages and pricing
733
+ - Cost examples and calculations
734
+ - Free trial details
735
+ - Refund policy
736
+ - Enterprise options
737
+
738
+ ---
739
+
740
+ ## Tips for Best Results
741
+
742
+ **Content Structure:**
743
+ - Use clear headings and subheadings
744
+ - Keep bullet points concise
745
+ - Limit to 3-5 points per section
746
+ - Include relevant examples or data
747
+
748
+ **Theme Selection:**
749
+ - Theme ID is required for standard generation
750
+ - Search with keywords matching presentation purpose
751
+ - Common searches: "business", "professional", "creative", "education", "modern"
752
+ - Each theme has unique styling and layout
753
+
754
+ **Reference Images:**
755
+ - Use high-quality images for best results
756
+ - Can use URL or base64 encoded image
757
+ - Public URL must be accessible
758
+ - Consider resolution setting (1K/2K/4K) based on quality needs
759
+ - Use page=0 for automatic slide count detection
760
+
761
+ **Document Processing:**
762
+ - Extract only key information
763
+ - Don't try to fit entire document in slides
764
+ - Focus on main insights and takeaways
765
+ - Ask user which sections to emphasize
766
+
767
+ ---
768
+
769
+ ## Security & Safety Notes
770
+
771
+ - **Credentials:** This skill reads the API key from the `SLIDES_2SLIDES_API_KEY` environment variable. Never hard-code the key in commands, commit it, or echo it back to the user. The scripts send it as a bearer/`apikey` value to `https://2slides.com` over HTTPS only.
772
+ - **Network + paid mutations:** Every generation call makes an outbound network request to the 2slides API and **spends the user's credits** (10–210 credits/page depending on mode). Treat generation, reference-image, custom-PDF, and narration calls as billable actions — confirm intent before generating large or high-resolution (4K) decks, and surface the expected page count/cost when it is non-trivial.
773
+ - **No destructive local actions:** The scripts only read content/files the user points to and write generated output (e.g. a downloaded ZIP) to the path the user specifies. They do not modify or delete unrelated files.
774
+ - **Input handling:** Reference-image and document inputs are sent to the 2slides service for processing. Do not submit confidential material the user has not authorized for third-party processing.
775
+ - **Download URLs expire in 1 hour** — fetch artifacts promptly and do not treat the URLs as durable storage.
776
+
777
+ ## Limitations
778
+
779
+ - Requires a valid 2slides account, API key, and sufficient credits; this skill does not provision or pay for credits.
780
+ - Results are AI-generated drafts intended as a starting point, not a final, fact-checked deliverable — review content before use.
781
+ - This skill does not replace environment-specific validation or expert review. Stop and ask for clarification if the API key, required inputs, or intended cost/scope are missing.
782
+ - Rate limits apply (Fast PPT 10/min, Nano Banana 6/min); poll async jobs every 20–30s rather than tight-looping.
783
+
784
+ ## Related Skills
785
+
786
+ - `@youtube-full` — fetch source material (transcripts) that can be summarized into a deck with this skill.