Oh My PPT: a local-first Electron workbench that turns a description into editable HTML slides
Describe what you need — a presentation, lesson, or story — and let the AI build clean, beautiful HTML slides for you. Local-first. Works offline. Works for you.
At a glance
- What is it?
- Oh My PPT generates HTML presentations from a prompt, imports and exports PPTX, and keeps sessions on your own disk. It is a desktop app first, not a hosted service, and the PPTX round trip is where the real trade-offs live.
- Who is it for?
- Adopt Oh My PPT if you want a desktop workbench where the generated artifact is editable HTML you own on disk, and you already have an API key or a local Ollama model for text generation. Skip it if you need a hosted, zero-install tool, or if your decks are chart- and table-heavy, because the README says those objects are still being improved on both the import and export paths.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 6 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The problem Oh My PPT targets, and who it is actually for
The README opens with a complaint that most people recognise: layout work eats the time you meant to spend on content. The author's second complaint is more specific. Existing AI presentation tools, in the README's words, "mostly generate fixed-format files", which makes small style changes or adding your own animation awkward.
The answer here is HTML. Each slide is an HTML page, so previewing needs only a browser, and restyling, adding motion, or embedding code is ordinary web work rather than a fight with a proprietary format. The app is an Electron desktop application written in TypeScript, so the intended user is someone willing to install software rather than open a web tab.
The second audience is people who already have decks. Oh My PPT imports existing PPTX templates and converts them into pages you can drag, adjust, and hand to the AI for edits. That matters for anyone with a corporate template they are not allowed to abandon.
The third audience is privacy-conscious users. Sessions, source documents, assets and generated results stay on your machine, and no Oh My PPT account is required. The README is careful about the boundary: when you call the AI or image service you configured, those requests go to that provider.
How generation works: outline, page budget, style skill, optional images
The pipeline the README describes is a sequence, not a single call. You supply a topic, a description, and page settings. The AI plans an outline, a colour scheme and a layout, then produces the full deck. When you upload a txt, md, csv or docx file instead, the app first condenses it into a topic, a page count and a description, and generation continues to reference the original file content.
Two mechanisms are worth calling out because they are the parts most likely to break in a naive implementation. The first is the page budget: the README states that generation organises pages according to the chosen canvas size and a content height budget, to reduce overflow. The second is document consistency: if your outline says five pages, the creation screen tries to fill in five pages.
Style is handled by a library of more than 90 style skills, with names like minimal white, cyber neon, Bauhaus, and Japanese minimal. A separate repository, arcsin1/style-generate-skill, is offered for building your own style packs from reference designs and colour requirements.
Image generation is deliberately conditional. With auto-illustration enabled and a style marked as supporting image generation, the model produces illustrations, backgrounds or visual elements only where the layout has room, keeping text safe areas. The README states plainly that it does not mechanically stuff an image onto every page. Auto-illustration lengthens generation time.
Installing Oh My PPT and running a first deck
The README points to the releases page for installers and to the project homepage at ohmyppt.cc. The repository is an Electron app, so a source build is also possible; package.json pins pnpm 10.10.0 and Node 20 or newer. A source checkout uses these scripts, which are copied from package.json:
pnpm install
pnpm devThe install step runs electron-builder install-app-deps as a postinstall hook, so native dependencies are rebuilt for Electron. pnpm dev starts electron-vite in development mode and opens the desktop window. To produce a distributable build, package.json defines build:win, build:mac and build:linux, each of which runs the electron-vite build first.
Before generating anything, configure a model. The README's usage notes begin with a blunt reminder to fill in the model configuration. Text generation and image generation are two separate configurations. Text can come from a local Ollama model; automatic illustration still needs a provider that supports image generation.
The app generates a test image at the default resolution and only lets you save the configuration after that test succeeds. Built-in providers named in the README include Jimeng 3.0 and 4.0, Agnes AI, Seedream, SiliconFlow, Gemini, and OpenAI-compatible image endpoints. The README directs you to add and verify the model under the image model settings before enabling illustration at creation time.
With a model configured, the first real run is the creation screen: enter a topic and description, choose a canvas size and a style, and submit. Multiple generation tasks can run in parallel, and the app notifies you when a background task finishes. From the editor you can drag elements, chat with the AI about a single page, insert images and video, and roll back to earlier versions.
PPTX import and export: the claim, and the asterisk attached to it
This is the most consequential part of the project and the part where the README is most careful. Importing a PPTX converts it into editable pages that can be dragged, adjusted, AI-modified and version-managed, with the original file's style extracted for reuse. Exporting produces a real PPTX that PowerPoint or Keynote can keep editing, preserving text, images, colours, formulas and basic layout.
The README describes visual and structural fidelity for ordinary files as close to 100 percent, and states that both the PPTX parsing and the HTML-to-PPTX generation are built in-house rather than delegated to an external converter. That is a strong claim, and the same paragraph immediately qualifies it: complex shapes, charts, tables, animations, mixed text, and extreme layouts are still being optimised, and results depend on the source file's PowerPoint features, fonts and asset complexity.
Read that as the honest boundary. A text-and-image deck from a clean template is the happy path. A consulting deck built from grouped shapes, native charts and layered tables is the case where the round trip is most likely to lose structure. The README does not document a rollback path for a failed import, and it does not publish a compatibility matrix by PowerPoint version. If your workflow depends on charts surviving intact, test your own files before promising anything to a team.
Where Oh My PPT is the wrong tool
The first limitation is the app itself. This is an Electron desktop application, not a web service. There is no browser-only mode described, so anyone who needs a colleague to open a link and start generating is out of scope.
The second is that generation is not self-contained. Local-first refers to where your data lives, not to a bundled model. Without a configured text model, there is nothing to generate with. Running fully offline is possible only if you point the app at a local Ollama model, and automatic illustration then requires a separate image provider that may be remote. The README states that prompts and necessary page semantics are sent to the image provider you choose, so the privacy guarantee stops at that boundary.
The third is the unsigned macOS build. The README devotes a section to the "app is damaged" problem that unsigned applications produce on macOS. That is a normal consequence of shipping without an Apple Developer signature, and it means the first launch on a Mac involves a manual workaround.
The fourth is fit. If your output must be a native PowerPoint file that your organisation's template engine can post-process, generating HTML first and converting afterwards adds a step and a fidelity risk that a native PPTX tool does not have.
Alternatives, and the actual difference in approach
The obvious comparison is a hosted AI presentation service. Those ask you to describe a deck in a browser and hand back a finished file, usually PPTX or a link. The difference is not quality, it is where the artifact and the data live. A hosted service owns the pipeline and you get whatever it produces; Oh My PPT puts the intermediate artifact in your hands as HTML, so the styling is editable with ordinary web tooling, and the session stays on your disk. The cost is that you supply the model and the API key, and you maintain the app.
A second comparison is a template-driven generator, where you pick a designed template and pour content into it. Those are predictable and fast, and they are the right choice when the visual system is fixed. Oh My PPT inverts that: the style is a skill applied during generation, and the result is editable afterwards. You trade predictability for flexibility.
A third comparison is writing the slides by hand in HTML. That gives total control and no model dependency, but it gives up outline planning, automatic illustration, PPTX import, and the export path to PowerPoint. Oh My PPT is essentially that workflow with generation and conversion attached.
Maintenance, licensing and what the repository tells you
The last push to the default branch was on 2026-09-05, and releases v2.5.0, v2.5.1 and v2.5.2 landed between 2026-09-04 and 2026-09-09. The repository is not archived. That is a project shipping in short cycles right now.
Upgrade cost is low in the ordinary case: it is a desktop application, so you install a new build rather than migrate a server. The thing to watch is the local database. package.json includes drizzle-kit with db:generate, db:migrate and db:studio scripts, and drizzle.config.ts sits at the repository root, which means sessions and version history are stored in a local database managed by Drizzle migrations. Major version bumps are the moment to check whether a migration runs before you open an important session.
The licence is Apache-2.0, with a NOTICE file at the repository root, which is the usual arrangement for a permissively licensed project that wants attribution preserved. Apache-2.0 also includes an explicit patent grant, which matters if you are embedding this in a commercial workflow. That is a description of the licence, not legal advice; check it against your own obligations.
The README lists the PPTX conversion packages as @arcsin1/html2pptx, @arcsin1/pptx2json and @arcsin1/pptx-ooxml-geometry, published under the same author's scope. The conversion layer is therefore a set of separate packages rather than code living only inside this repository, which is worth knowing if you plan to depend on it directly.
Editorial conclusion
Adopt Oh My PPT if you want a desktop workbench where the generated artifact is editable HTML you own on disk, and you already have an API key or a local Ollama model for text generation. Skip it if you need a hosted, zero-install tool, or if your decks are chart- and table-heavy, because the README says those objects are still being improved on both the import and export paths. Before committing a real deck, verify three things yourself: that your chosen text model produces usable outlines, that your macOS build opens despite being unsigned, and that one representative PPTX file survives the import and export round trip intact.
Frequently asked questions
What does PPT stand for?
PPT is the common shorthand for a PowerPoint presentation, and Oh My PPT uses it in that sense: the app generates presentation decks and can import and export PPTX files. The project's own name is a play on that abbreviation.
What is Oh My PPT?
Oh My PPT is a local-first AI presentation workbench: an Electron desktop app that turns a description, a document or an imported PPTX into editable HTML slides, with optional AI-generated illustrations. Sessions, source documents and assets are stored on your own computer, and no account is required.
Where do I download Oh My PPT?
The README links to the project homepage at ohmyppt.cc and to the GitHub releases page for installers. The repository is also an Electron app, so it can be built from source with pnpm install and pnpm dev.
Does Oh My PPT work offline?
The app is local-first and the README states that it works offline, but generation still needs a model. Pointing text generation at a local Ollama model keeps that part on your machine; automatic illustration requires a separate image provider, and those requests go to that provider.
Can Oh My PPT export to PowerPoint?
Yes. The client exports editable PPTX that PowerPoint or Keynote can continue to modify, and the README describes fidelity as close to 100 percent for ordinary files. It also notes that complex shapes, charts, tables and animations are still being optimised.
Why does the macOS build say the app is damaged?
The README has a dedicated section on unsigned applications failing to open on macOS, which is what produces that message. It is a consequence of the build not being signed with an Apple developer certificate, and the README documents the workaround.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/arcsin1-oh-my-ppt)