io.github.06ketan/slideshot
Convert HTML to PDF/PNG/WebP/PPTX slide carousels with 11 themes — for LinkedIn, decks, posts.
Open source Open in the app JSON README (API)
About
Convert HTML to PDF/PNG/WebP/PPTX slide carousels with 11 themes — for LinkedIn, decks, posts.
Details
- Kind
- MCP servers
- Topic
- Files & documents
- Publisher
- 06ketan
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 4.4.0
- Stars
- 2
- Forks
- 1
- Open pull requests
- 1
- Last push
- 2026-05-03T07:08:07Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-08-29 03:01:37
- Updated
- 2026-08-29 03:01:37
- Origin id
io.github.06ketan/slideshot
README
# slideshot
<!-- mcp-name: io.github.06ketan/slideshot -->
[](https://www.npmjs.com/package/slideshot)
[](https://www.npmjs.com/package/slideshot)
[](https://www.npmjs.com/package/slideshot-mcp)
[](https://github.com/06ketan/slideshot)
[](LICENSE)
[](https://modelcontextprotocol.io)
[](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.06ketan/slideshot)
[](https://github.com/06ketan/slideshot/releases/latest)
[](https://glama.ai/mcp/servers/06ketan/slideshot)
[](https://lobehub.com/mcp/06ketan-slideshot)
<a href="https://glama.ai/mcp/servers/06ketan/slideshot">
<img width="380" height="200" src="https://glama.ai/mcp/servers/06ketan/slideshot/badges/card.svg" alt="slideshot MCP server card on Glama" />
</a>
Convert AI-generated HTML carousels into high-res PNG, WebP, PDF, and PPTX — via **CLI**, **Web App**, **MCP Server**, or **REST API**.
**[Web App](https://slideshot.vercel.app)** · **[npm CLI](https://www.npmjs.com/package/slideshot)** · **[npm MCP](https://www.npmjs.com/package/slideshot-mcp)** · **[API Spec](https://slideshot.vercel.app/api/openapi.json)**
## Architecture
```
slideshot/
packages/
cli/ ← Core Puppeteer rendering engine + CLI
mcp-server/ ← MCP stdio server for AI tools
webapp/ ← Next.js web app with live preview
prompts/
generic.md ← Clean minimal
branded.md ← Ketan Slides design system
instagram-carousel.md ← Bold vibrant IG style
infographic.md ← Data-heavy charts
pitch-deck.md ← Professional presentations
dark-modern.md ← Neon glassmorphism
editorial.md ← Magazine serif
```
## Quick Start
### CLI
```bash
npx slideshot ./my-carousel.html --formats png,webp,pdf --scale 4
```
**Options:**
| Flag | Default | Description |
|------|---------|-------------|
| `-s, --selector` | `.slide` | CSS selector for slide elements |
| `-W, --width` | `540` | Slide width (CSS px) |
| `-H, --height` | `675` | Slide height (CSS px) |
| `--scale` | `4` | Device scale (4x = 2160x2700) |
| `-f, --formats` | `png,webp,pdf` | Output formats (png, webp, pdf, pptx) |
| `-q, --quality` | `95` | WebP quality (0-100) |
| `-o, --out` | `./slides` | Output directory |
### Web App
**Live:** [slideshot.vercel.app](https://slideshot.vercel.app)
Or run locally:
```bash
cd packages/webapp && npm install && npm run dev
```
Open `http://localhost:3000` — paste HTML, preview, export.
### MCP Server
Add to Claude Desktop or Cursor config:
```json
{
"mcpServers": {
"slideshot": {
"command": "npx",
"args": ["-y", "slideshot-mcp"]
}
}
}
```
**Tools:**
- `create_slides` — guided creation workflow with 7 themes and output presets
- `render_html_to_images` — render HTML to PNG/WebP/PDF/PPTX
- `get_slide_prompt` — get AI prompt template for any theme variant
- `health_check` — verify Puppeteer/Chromium availability
**Prompts (7 themes):**
- `generic-slides` — clean minimal
- `branded-slides` — Ketan Slides design system
- `instagram-carousel-slides` — bold vibrant IG style
- `infographic-slides` — data-heavy charts and stats
- `pitch-deck-slides` — professional presentations
- `dark-modern-slides` — neon glassmorphism
- `editorial-slides` — magazine serif with gold accents
### REST API (ChatGPT Actions / OpenWebUI)
The web app exposes an OpenAPI-compatible REST API at `https://slideshot.vercel.app`.
**Endpoints:**
| Method | Path | Description |
|--------|------|-------------|
| `POST` | `/api/render` | Render HTML slides to PNG/WebP/PDF (returns ZIP) |
| `GET` | `/api/prompt?variant=generic` | Get AI prompt template |
| `GET` | `/api/openapi.json` | OpenAPI 3.1.0 spec |
**Platform support:**
| Platform | Method | Setup |
|----------|--------|-------|
| Cursor | MCP | `npx slideshot-mcp` in `.cursor/mcp.json` |
| Claude Desktop | MCP | `npx slideshot-mcp` in config |
| ChatGPT | OpenAPI Action | Import `/api/openapi.json` |
| OpenWebUI | OpenAPI Tool | Import `/api/openapi.json` |
## AI Prompt Templates
7 prompt variants in `prompts/` — copy-paste or use via `get_slide_prompt` tool:
| Variant | File | Style |
|---------|------|-------|
| Generic | `prompts/generic.md` | Clean minimal, Inter font |
| Branded | `prompts/branded.md` | Space Mono, teal/coral accents |
| Instagram | `prompts/instagram-carousel.md` | Bold gradients, Poppins |
| Infographic | `prompts/infographic.md` | DM Sans, stat cards |
| Pitch Deck | `prompts/pitch-deck.md` | Professional, KPI cards |
| Dark Modern | `prompts/dark-modern.md` | Neon, glassmorphism |
| Editorial | `prompts/editorial.md` | Playfair Display, gold |
## Build All
```bash
npm install # from root — installs all workspaces
npm run build # builds cli → mcp-server
cd packages/webapp && npm run build # builds webapp separately
```
## Links
| Surface | URL |
|---------|-----|
| Web App | [slideshot.vercel.app](https://slideshot.vercel.app) |
| npm CLI | [npmjs.com/package/slideshot](https://www.npmjs.com/package/slideshot) |
| npm MCP | [npmjs.com/package/slideshot-mcp](https://www.npmjs.com/package/slideshot-mcp) |
| GitHub | [github.com/06ketan/slideshot](https://github.com/06ketan/slideshot) |
| API Spec | [slideshot.vercel.app/api/openapi.json](https://slideshot.vercel.app/api/openapi.json) |
## License
MIT