# 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]]