{"id":47713628,"url":"https://github.com/agentiapt/vela-slides","last_synced_at":"2026-06-01T02:00:44.535Z","repository":{"id":347622865,"uuid":"1194559640","full_name":"AgentiaPT/vela-slides","owner":"AgentiaPT","description":"Vela Slides - AI Powered presentation App and Agent Skill","archived":false,"fork":false,"pushed_at":"2026-06-01T01:52:16.000Z","size":4248,"stargazers_count":5,"open_issues_count":2,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-01T02:00:25.607Z","etag":null,"topics":["agent-skills","claude-code","presentation-slides"],"latest_commit_sha":null,"homepage":"https://agentiapt.github.io/vela-slides/","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AgentiaPT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["rquintino"]}},"created_at":"2026-03-28T14:20:56.000Z","updated_at":"2026-06-01T01:44:38.000Z","dependencies_parsed_at":"2026-04-03T19:00:55.631Z","dependency_job_id":"d7205857-5284-4a4a-8c05-6b456bea4c3c","html_url":"https://github.com/AgentiaPT/vela-slides","commit_stats":null,"previous_names":["agentiapt/vela-slides"],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/AgentiaPT/vela-slides","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgentiaPT%2Fvela-slides","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgentiaPT%2Fvela-slides/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgentiaPT%2Fvela-slides/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgentiaPT%2Fvela-slides/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AgentiaPT","download_url":"https://codeload.github.com/AgentiaPT/vela-slides/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgentiaPT%2Fvela-slides/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33756578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills","claude-code","presentation-slides"],"created_at":"2026-04-02T18:43:18.756Z","updated_at":"2026-06-01T02:00:44.526Z","avatar_url":"https://github.com/AgentiaPT.png","language":"JavaScript","funding_links":["https://github.com/sponsors/rquintino"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# ⛵ Vela Slides\n\n**Agent-native presentation engine — runs in any AI artifact host or as a desktop app driven by your local coding-agent CLI**\n\nCreate, edit, and present beautiful slide decks — entirely through conversation with the AI agent of your choice.\n\n[![License: ELv2](https://img.shields.io/badge/License-ELv2-blue.svg)](LICENSE)\n[![Agent-native](https://img.shields.io/badge/Runtime-Agent--native-orange.svg)](#how-it-works)\n[![Skill](https://img.shields.io/badge/Format-Claude%20Skill-purple.svg)](#1-use-as-a-claudeai-skill)\n[![Desktop](https://img.shields.io/badge/Desktop-Linux%20%7C%20macOS%20%7C%20Windows-2ea44f.svg)](#3-run-as-a-desktop-app)\n\n[Get Started](#get-started) · [Features](#features) · [Desktop App](#3-run-as-a-desktop-app) · [Examples](#examples) · [Architecture](docs/ARCHITECTURE.md) · [Dependencies](docs/DEPENDENCIES.md)\n\n\u003c/div\u003e\n\n### :warning: This project is 100% vibe coded\n\n\u003e **No human has reviewed the source code.**\n\u003e\n\u003e Every line of Vela — 14,000+ lines of JSX, Python CLI tools, and build scripts — was generated entirely by AI (Claude). The codebase is validated by extensive AI code reviews, 270+ automated tests, and static analysis, but no human has ever read or audited the code.\n\u003e\n\u003e **You are responsible for your own review before using this in any production or sensitive context.**\n\u003e\n\u003e Found something? We have a [security bounty program](docs/SECURITY.md#security-bounty-program).\n\n---\n\n![Vela Slides Screenshot](docs/screenshot.png)\n\n## Get Started\n\n| | Approach | Best for |\n|---|----------|----------|\n| **Try instantly** | **[▶ Browse the gallery](https://agentiapt.github.io/vela-slides/)** | View sample decks in any browser — no account needed |\n| | **[▶ Open the live demo](https://claude.ai/public/artifacts/327281d4-4331-4ff8-bdbf-a436b698fe73)** | Interactive artifact on Claude.ai with Vera AI assistant |\n| **Set up for creation** | **[Upload as a Claude.ai skill](#1-use-as-a-claudeai-skill)** | Generate decks from conversation on Claude.ai |\n| | **[Run locally with a coding-agent CLI](#2-run-locally-with-a-coding-agent-cli)** | Full CLI, live preview, file system access — works with any agent that can run shell commands |\n| | **[Install the desktop app](#3-run-as-a-desktop-app)** | Native window on Linux/macOS/Windows; Vera routes to your local coding-agent CLI |\n\n\u003e The Claude.ai artifact runs entirely in your browser. AI features (Vera chat, batch edit) use your Claude.ai subscription. Vela has no backend and no access to your data. Requires **Settings → Feature Preview → AI-powered artifacts** enabled.\n\n### 1. Use as a Claude.ai Skill\n\nUpload the skill so Claude generates Vela decks from your descriptions:\n\n1. Download **[`vela-slides-skill-v*.zip`](https://github.com/AgentiaPT/vela-slides/releases/latest)** from the latest release (or build a fresh one: `python3 skills/vela-slides/scripts/vela.py deck zip`)\n2. In Claude.ai → **Customize → Skills → \"+\" → Upload a skill** → upload the ZIP\n3. Start a conversation: *\"Create a 10-slide deck about the future of AI agents\"*\n\nClaude will generate structured slide JSON, assemble it into the Vela engine, and output an interactive artifact.\n\n### 2. Run Locally with a Coding-Agent CLI\n\nFull CLI access, live browser preview, file system integration:\n\n```bash\ngit clone https://github.com/AgentiaPT/vela-slides.git\ncd vela-slides\npython3 skills/vela-slides/scripts/vela.py server start examples/\n# → Opens browser at localhost:3030 with deck browser and live editing\n```\n\nThe `vela` CLI is plain Python with structured JSON I/O — any coding-agent CLI that can run shell commands can drive it (Claude Code, GitHub Copilot CLI, Codex CLI, Aider, Cursor's terminal agent, custom agents, etc.). Agents that load the bundled SKILL.md gain Vela's deck conventions and can generate, edit, translate, and rebrand decks while saving 80-97% of tokens vs manual JSON editing. SKILL.md follows the [Claude Skills](https://www.anthropic.com/news/claude-skills) format but is just markdown — drop it into any agent's prompt or system context.\n\n**Channel bridge** (experimental): Connect the browser UI to your coding-agent CLI for click-to-edit workflows. See [`skills/vela-slides/channel/README.md`](skills/vela-slides/channel/README.md).\n\n### 3. Run as a Desktop App\n\nVela also ships as a native desktop window built on [Neutralino.js](https://neutralino.js.org/). The shell wraps the same Vela engine and replaces the artifact's hosted LLM with a bridge to your **locally-installed coding-agent CLI** — so Vera's edits, batch ops, and chat all run on your machine via that agent's print/headless mode.\n\n**Today**: ships with a [Claude Code](https://docs.claude.com/en/docs/claude-code) adapter (`claude -p`). The backend layer is pluggable — adapters for GitHub Copilot CLI, Codex CLI, and others are tracked on the roadmap; contributions welcome. See [`vela-neutralino/resources/js/agents-bridge.js`](vela-neutralino/resources/js/agents-bridge.js) for the adapter contract.\n\nDownload the matching binary from the **[latest release](https://github.com/AgentiaPT/vela-slides/releases/latest)**:\n\n| Platform | Asset |\n|---|---|\n| Linux x64 | `vela-desktop-v*-linux_x64.zip` |\n| Linux arm64 | `vela-desktop-v*-linux_arm64.zip` |\n| macOS Intel | `vela-desktop-v*-mac_x64.zip` |\n| macOS Apple Silicon | `vela-desktop-v*-mac_arm64.zip` |\n| macOS universal | `vela-desktop-v*-mac_universal.zip` |\n| Windows x64 | `vela-desktop-v*-win_x64.zip` |\n\nUnzip, then launch the `vela-*` binary alongside the bundled `resources.neu`. On first AI action per deck, the shell prompts for consent and stores trust under `\u003cdeck-folder\u003e/.vela/trust.json`. Windows builds rely on the system [WebView2 runtime](https://developer.microsoft.com/microsoft-edge/webview2/) (shipped on Windows 10 1809+ and Windows 11).\n\n\u003e Desktop builds are **unsigned preview binaries** — macOS Gatekeeper and Windows SmartScreen will warn on first launch. Source and build scripts: [`vela-neutralino/`](vela-neutralino/).\n\n---\n\n## What is Vela?\n\nVela is an **agent-native** presentation engine. Decks are described in conversation with whatever AI agent you already use; Vela handles the structure, layout, and rendering. The same React application runs in three places — Claude.ai artifacts, a local browser server driven by a coding-agent CLI, or a native desktop window — and Vera (the in-app AI assistant) routes to whichever AI backend is available in that runtime.\n\n```\nYou: \"Create a 10-slide deck on the future of AI agents\"\nAgent: ⛵ Generates structured slides with diagrams, metrics, flows, and timelines\n```\n\nThe result is a **fully interactive React application** — complete with presenter mode, PDF export, dark/light themes, drag-and-drop reordering, and a built-in AI chat for iterating on your slides.\n\n### Why Vela?\n\n| Traditional slides | Vela |\n|---|---|\n| Click. Drag. Format. Repeat. | Describe what you want. Get it. |\n| One block type: text box | 27 semantic block types (flows, grids, metrics, timelines, matrices, funnels, SVG diagrams...) |\n| Static once created | Built-in AI assistant for live iteration |\n| Separate design step | Design patterns baked in — every slide looks considered |\n| Export to PDF requires plugins | Vector PDF export built in |\n\n---\n\n## How It Works\n\nVela ships as a **skill** — a structured prompt + reference architecture (markdown + JSON schemas + a Python CLI) that teaches an AI agent how to generate Vela-compatible decks and assemble them into runnable apps. The skill format follows the [Claude Skills](https://www.anthropic.com/news/claude-skills) spec but the content is plain markdown and a deterministic CLI, so any agent runtime can consume it.\n\n```\n┌──────────────────────────────────────────────────┐\n│  You describe your presentation to your agent    │\n│  ↓                                               │\n│  Agent generates structured slide JSON            │\n│  ↓                                               │\n│  Assembly script injects JSON into Vela engine    │\n│  ↓                                               │\n│  You get a runnable app — artifact, browser, or  │\n│  desktop window — with live AI iteration         │\n└──────────────────────────────────────────────────┘\n```\n\nThe Vela engine is a **14,000+ line React application**. The same engine renders in three runtimes — Claude.ai's artifact sandbox, a local browser server, and the Neutralino desktop window — with Vera transparently routed to whichever AI backend is available (artifact proxy, channel bridge to a local coding-agent CLI, or the desktop's bundled adapter). No servers, no deploys, no accounts; your data stays where you put it.\n\n---\n\n## Features\n\n### 27 Semantic Block Types\nHeadings, bullets, flows, grids, metrics, timelines, steps, tables, callouts, quotes, SVG diagrams, icon rows, tag groups, progress bars, badges, images, code blocks — plus comparison (A vs B), funnel, cycle, number-row, 2×2 matrix, and status-aware checklist. Each with semantic properties, not just text boxes. Two-column layouts via `cols` (left/right block arrays).\n\n### Vera — Built-in AI Assistant\nAn agentic AI chat panel inside the slide engine. Vera can search your deck, batch-edit across slides, restyle sections, add slides from descriptions, and improve designs — all through conversation. Vera is **backend-agnostic**: in Claude.ai it uses the artifact proxy; in the desktop app it routes to a locally-installed coding-agent CLI via a pluggable adapter (Claude Code shipping today, more adapters planned); the experimental channel bridge connects the browser UI to whichever coding agent is driving your terminal session.\n\n### Offline Study Notes\nSlides can embed pre-authored markdown, an inline SVG diagram, follow-up questions, and a glossary for Kindle X-Ray-style popups. Renders with zero API calls; when a live AI backend is available, authored questions become clickable Vera prompts.\n\n### Interactive Block Affordances\nCode blocks ship with a one-click copy button. Callouts can be set to `reveal: true` to start collapsed and expand on click — useful for spoiler-friendly walk-throughs.\n\n### `.vela` File Extension\nDecks use the `.vela` extension — a standard JSON file with a dedicated identity. All CLI tools, the local server, and imports recognize both `.vela` and `.json`.\n\n### Presenter Mode\nFullscreen presentation with arrow keys (Up/Down/Left/Right), Space, and Escape — PowerPoint-style navigation across slides and modules. Designed for 16:9 projection.\n\n### Vector PDF Export\nCanvas-rendered PDF output with clickable links, branding overlays, and watermarks. Every slide exports as a crisp vector page.\n\n### Dark \u0026 Light Themes\nFull dark/light mode with 7+ theme directions (midnight, warm, editorial, minimal, vibrant). Themes propagate to all block types including SVG diagrams via token injection.\n\n### Persistent Storage\nDecks save across sessions automatically — to Claude.ai's artifact storage API in the artifact runtime, and to the local filesystem in the server and desktop runtimes. No manual export needed to keep your work.\n\n### WYSIWYG Editing\nClick any text on a slide to edit it inline. Supports bold, italic, and markdown formatting.\n\n### Drag \u0026 Drop\nReorder slides and modules by dragging. Reorganize your deck structure without leaving the app.\n\n---\n\n## Examples\n\n### Generate a deck from a topic\n\n```\nCreate a 12-slide presentation on \"The Rise of Agentic AI\"\nwith sections: Introduction, Core Patterns, Architecture, Case Studies, Future\n```\n\n### Import and iterate\n\n```\nHere's my existing deck JSON. Can you:\n1. Add a new section on \"Security Considerations\"\n2. Restyle all slides to use a midnight blue theme\n3. Make sure every slide has timing estimates\n```\n\n### Use Vera inside the artifact\n\nOnce a Vela artifact is running, click the Vera button to open the chat panel. You can ask Vera to modify slides, search content, batch-edit, or generate new slides — all without leaving the artifact.\n\n### Live Demo\n\nTry the self-demonstrating deck — slides that showcase every block type, with Vera ready for hands-on editing:\n\n**[▶ Open Vela Slides v12 Live Demo](https://claude.ai/public/artifacts/327281d4-4331-4ff8-bdbf-a436b698fe73)** · [`skills/vela-slides/examples/vela-demo.vela`](skills/vela-slides/examples/vela-demo.vela)\n\nSee [`examples/`](examples/) for themed sample decks (startup pitch, tech talk, course, business report).\n\n---\n\n## Repository Structure\n\n```\nvela-slides/\n├── skills/\n│   └── vela-slides/          ← Installable skill folder (ZIP for Claude.ai)\n│       ├── SKILL.md           ← Skill prompt + workflows\n│       ├── app/\n│       │   ├── parts/         ← Modular source (13 part-files)\n│       │   └── vela.jsx ← Assembled monolith (auto-generated)\n│       ├── scripts/\n│       │   ├── vela.py        ← CLI: deck/slide operations + zip\n│       │   ├── assemble.py    ← Inject deck JSON → final .jsx\n│       │   ├── concat.py      ← Parts → monolith builder\n│       │   ├── validate.py    ← Deck JSON quality checks\n│       │   ├── serve.py       ← Local dev server with live reload\n│       │   ├── lint.py        ← Code linting checks\n│       │   └── sync-skill-docs.py ← Sync CLI reference into SKILL.md\n│       ├── references/        ← Block schema, design patterns, themes, formats\n│       ├── examples/          ← vela-demo.vela (bundled demo deck)\n│       └── evals/             ← Skill quality test cases\n├── vela-neutralino/           ← Desktop app shell (Neutralino.js + pluggable coding-agent bridge)\n│   ├── neutralino.config.json\n│   ├── resources/             ← index.html, vela.jsx (synced from skills/), vendored deps\n│   └── scripts/               ← setup.sh, run.sh, build.sh, sync-vela.py\n├── docs/\n│   ├── ARCHITECTURE.md        ← Technical deep dive\n│   └── SECURITY.md            ← Security model + audit\n├── examples/\n│   ├── vela-demo.vela         ← Demo deck\n│   └── *.vela                 ← Themed example decks\n├── evals/                     ← Version benchmarking infrastructure\n├── tests/\n│   ├── test_vela.py           ← Core engine tests (198 tests)\n│   └── test_serve.py          ← Server endpoint \u0026 security tests (72 tests)\n├── LICENSE                    ← Elastic License v2\n├── CONTRIBUTING.md\n└── README.md\n```\n\n---\n\n## Security\n\nVela's artifact runtime is fully sandboxed inside Claude.ai; the local server and desktop runtimes apply additional defenses (CSP, native API allowlists, per-deck AI trust gate). See [docs/SECURITY.md](docs/SECURITY.md) for the full security model, including:\n\n- SVG sanitization (defense-in-depth against XSS)\n- Import validation and block-type whitelisting\n- Content-length limits on all string inputs\n- Stored XSS prevention in the local development server\n- Supply chain security: `ignore-scripts`, 7-day release cooldown, lockfile integrity (SHA-512)\n- No credentials or secrets in the codebase\n\nFound something? We have a [security bounty program](docs/SECURITY.md#security-bounty-program).\n\n---\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. The modular part-file architecture makes it straightforward to contribute to specific subsystems without touching the entire codebase.\n\n---\n\n## License \u0026 Commercial Use\n\nVela Slides is source-available under the [Elastic License 2.0 (ELv2)](LICENSE) — © Rui Quintino.\n\n**You can freely use Vela to create, present, and export slide decks for any purpose — personal, commercial, client work, workshops, conferences.** Your content is yours. No attribution required on your decks.\n\nELv2 restricts three things: offering Vela itself as a hosted service, removing or obscuring the Vela Slides branding, and removing the copyright notice (© Rui Quintino). These must remain visible in the software.\n\n**Enterprise \u0026 White-Label Licensing** — If you want to embed Vela into your own product, rebrand it, or need IP indemnification, reach out: info@agentia.pt\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Built for the agent-native era**\n\n*Vela is Latin for \"sail\" — because presentations should carry your ideas forward.*\n\n⛵\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagentiapt%2Fvela-slides","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagentiapt%2Fvela-slides","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagentiapt%2Fvela-slides/lists"}