# Bento Bento is a presentation tool that is a single HTML file. Not an app that exports HTML; the file *is* the software. Open it in a browser and you have the viewer, the presenter and the editor. Send it to someone and they need nothing at all. *"The office suite that fits in a file."* [[MIT License]], TypeScript, by the developer posting as `starfallg`. About 560 KB, no install, no account, no network. ## How it works Two parts inside one document. Near the top sits a plain JSON block holding your slides, which you can read, grep or point a tool at. Below it, the application itself as a base64 blob that a small shim inflates in the browser through `DecompressionStream`. Save, and **the file rewrites its own data block** using the File System Access API, with a download fallback. There is never an app to install and never a server that sees your document. ## What's in it - **Morph presenting.** Elements sharing an id animate between slides: position, size, colour, even gradients. Duplicate a slide, rearrange it, and the motion designs itself - **Live collaboration**, end-to-end encrypted with AES-GCM, keys living in the file rather than on a server. The file is the invitation: anyone who opens a copy joins. Offline edits merge back through a custom CRDT with character-level text merging - **A blind relay.** The optional sync worker stores ciphertext and learns nothing. It's about one file of source, deliberately - **Charts**, drawn by a dependency-free engine, live during presentation: tooltips, zoom, and data that morphs when a bar chart becomes a pie - **Signed self-updates.** Releases are ECDSA-signed and offered in-app; updating writes a *new* file, so the old one is your rollback - Speaker view, comments, layouts, hidden interactive states, hover reveals, motion paths, PDF export, 8 UI languages - **Offline mode** hard-blocks updates and collaboration, and says so. Local-first that you can verify rather than trust ## The agent angle, which is why it exists The origin story is the useful part. The author's team had been building decks as web frontends with [[Claude Code]], and hit the obvious wall: every small edit meant going back through the harness or hand-editing code. Bento removes that loop. Because the document is plain JSON in one plaintext block, **any assistant that can read and write a file can edit your deck.** No plugin, no API. Two routes in: - **File harnesses** edit the `#bento-doc` JSON in place: [[Claude Code]], Cursor, Aider, anything with filesystem access. Claude Code users get a packaged `bento-slides` skill via `/plugin marketplace add nyblnet/bento` - **Chat round-trip** for anything else: copy the JSON out, have the model rewrite it, paste it back It works fully offline against local open-weight models through [[Ollama]], llama.cpp or [[LM Studio]]. The agent guide is a single page designed to be dropped into any model's context. ## Why I keep this note **The format is the API.** Bento didn't build an integration; it chose a document format an agent can already manipulate, and got every agent for free. That's a much better trade than shipping an MCP server, and it's the generalisable idea here: if your data is plain and inspectable in a known location, the tooling question mostly disappears. **Single-file software is a real answer to rot.** Documents used to be things you had; now they're things you rent, readable while a company keeps its servers on. A file carrying its own editor opens in ten years without anyone's permission. The HN thread reached for HyperCard and TiddlyWiki, and both comparisons are earned. **It's the same argument I make about plain Markdown**, applied to a format that never had it. My notes outlive their editor because they're text on disk. Bento is that logic pushed further: not just readable data, but the software travelling with it. Worth watching where I currently use slides at all. Not a switch, but a good idea to have in the back pocket. ## References - [bento.page](https://bento.page/) — home and template gallery - [Try it live](https://bento.page/slides/) — the entire app, running on a starter deck - [nyblnet/bento](https://github.com/nyblnet/bento) — source - [Download the file](https://bento.page/releases/slides/Bento_Slides.bento.html) — ~560 KB - [Agent guide](https://bento.page/agents.md) — one page, droppable into any model's context - [Guestbook](https://bento.page/guestbook/) — a shared live deck, to see collaboration working - [Show HN discussion (1032 points, 2026-07-22)](https://news.ycombinator.com/item?id=49008211) ## Related - [[Claude Code]] - [[Ollama]] - [[LM Studio]] - [[Markdown]] - [[AI Agent Skills]] - [[Open Source]] - [[MIT License]]