bento README

The project's README from github.com/nyblnet/bento. As one markdown file: README.md.

Bento

Bento — the office suite that fits in a file

This PowerPoint alternative is a single HTML file. A Bento deck carries its own viewer, presenter, and editor inside the document — open it in any browser, edit it, present it, send it. The person you send it to needs nothing: the file is the software.

Try it in 10 seconds: open bento.page/slides — that's the entire app, running on a starter deck that doubles as the feature tour. Or grab a designed template from the gallery and make it yours.

Download the app: grab the single Bento_Slides.bento.html from the GitHub Releases page or straight from bento.page (~560 KB, no account, no installer). Open it in any modern browser and it is the editor. Save, and it rewrites itself with your deck inside.

Why this exists

Office documents used to be things you had. Now they're things you rent — locked in someone's cloud, behind someone's login, readable only while a company keeps its servers on. Bento takes the other path:

What's inside

Feature Description
Morph presenting Elements that share an id animate between slides — position, size, color, even gradients. Duplicate a slide, rearrange, and the motion designs itself.
Live collaboration E2EE (AES-GCM) with keys that live in your file, never on a server. The file itself is the invitation: anyone who opens a copy joins. Offline edits merge back precisely — our own CRDT, character-level text merging included.
A blind relay The optional sync relay (server/sync-worker/) stores ciphertext and learns nothing. Read the source; it's about one file.
Charts, built in Bar / line / pie / scatter drawn by our own dependency-free engine, live during presentations: tooltips, zoom, and data that morphs when a bar chart becomes a pie.
Designed for AI The document is plain JSON in the file, so agents edit .bento.html files in place and chatbots round-trip the JSON (window.bento.loadDoc). See docs/agents.md.
Signed self-updates Releases are ECDSA-signed and offered in-app. Updating writes a new file — the old one stays as your rollback. No server ever touches your documents.
Everything else Speaker view, comments, layouts, hidden interactive states, hover reveals, motion paths, PDF export, page sizes, 8 UI languages — in a ~560 KB shell.

Use it with AI

Because the document is plain JSON living in one plaintext block near the top of the file, any assistant that can read and write a file can edit your deck — no plugin, no API. Two ways in:

It works fully offline with local open-weight models — point Ollama, llama.cpp, or LM Studio at the deck and nothing leaves your machine. The agent guide is a single page you can drop into any model's context: bento.page/agents.md (also in this repo at docs/agents.md).

Architecture in one paragraph

slides/src/model.ts defines the JSON document model; one renderer (render.ts) draws it for the editor canvas, thumbnails, and present mode (Reveal.js drives navigation; morphs are computed from the model, not the DOM). Animation is an in-house engine (anim.ts), charts are in-house (charts.ts), collaboration is an in-house CRDT (sync/crdt.ts — pure data, fuzz-tested by scripts/test-sync.ts across hundreds of thousands of convergence checks). The shell compresses to ~560 KB with the document block left as plaintext so old files and outside tools can always splice it. The deep dive: docs/architecture.md.

Security model, honestly

Build from source

Node 20+ and npm are all you need — the app is a single-page build with no backend to stand up.

cd slides
npm install
npm run dev            # dev server (http://localhost:5173)
npm run build:single   # → dist-single/Bento_Slides.bento.html (the product)

node scripts/test-sync.ts runs the CRDT convergence rig. Releases are cut locally so the signing key never leaves the maintainer's machine — see docs/RELEASING.md.

Where to read more

Contributions welcome — start with CONTRIBUTING.md. Found a security issue? See SECURITY.md.

Community

Planning a substantial contribution? Check the pinned What's in flight issue and the open PRs first, and say what you're planning before you build it — see CONTRIBUTING.md.

Roadmap

bento/slides is the first app — a PowerPoint alternative, shipping now. bento/spaces (notes), bento/dash (sheets & tables) and bento/vault follow, each as its own self-contained .bento.html distributable. The current release lives on bento.page and reaches every existing file through the signed update channel.

License

Bento is open source under the MIT License — all software here is MIT, © 2026 The Bento authors. Bundled runtime components (reveal.js, Moveable, Selecto) are MIT; the embedded typefaces (Fraunces, Instrument Sans) are OFL; gallery imagery is public-domain (see scripts/gallery-photos/SOURCES.md). Each component keeps its own license.

bento (nyblnet/bento)

Searching Database…

5.5K ·GitHub
Что это такое?Bento — это приложение для презентаций в духе PowerPoint, которое целиком живёт внутри одного HTML-файла: презентация, редактор, просмотрщик и режим докладчика собраны вместе, так что открытие файла в браузере — это и есть всё приложение.
Это программа, которую нужно установить, или просто файл, который я открываю?Это просто файл: скачайте один BentoSlides.bento.html (~560 КБ), откройте его в любом современном браузере, и этот файл становится редактором; при сохранении перезаписывается тот же файл с вашей презентацией внутри.
Как начать пользоваться?Попробуйте сразу на bento.page/slides — там открывается стартовая презентация, которая одновременно служит экскурсией по функциям, — или возьмите готовый шаблон из галереи, отредактируйте его в браузере и сохраните: ничего устанавливать и регистрироваться не нужно.
Нужно ли что-то устанавливать, чтобы открыть или отправить презентацию?Нет — тому, кому вы отправляете презентацию, ничего не нужно, ведь сам файл .bento.html и есть программа; для сборки Bento из исходников нужны только Node 20+ и npm.
В чём подвох совместной работы в реальном времени?Отмена действий во время совместной работы основана на снимках состояния, поэтому отмена может откатить параллельную правку соавтора того же свойства; редактирование задумано прежде всего для компьютера, но презентации всё равно нормально открываются и показываются на телефонах.
Куда на самом деле попадают мои данные?Данные документа хранятся в виде обычного читаемого JSON внутри самого файла; включение режима Offline оставляет всё локально, жёстко блокируя обновления и совместную работу, а даже необязательный сервер синхронизации видит только зашифрованный шифротекст, но никогда не ваше содержимое.
Что такое «морф-презентация»?Элементы с одинаковым id автоматически анимируются между слайдами: меняются положение, размер, цвет и даже градиенты, поэтому, если вы дублируете слайд и переставляете элементы, переход создаётся сам.
Могут ли ИИ-ассистенты редактировать презентацию Bento?Да — поскольку модель документа презентации представляет собой обычный JSON в одном блоке файла, такие агенты, как Claude Code, Cursor или Aider, могут править его прямо в файловой системе, а любой чат-бот может работать со скопированным JSON; для Claude Code даже есть готовый навык bento-slides из плагин-маркетплейса проекта.
Графики сделаны с помощью библиотеки вроде Chart.js?Нет — столбчатые, линейные, круговые и точечные диаграммы рисует собственный движок построения графиков Bento, без внешних зависимостей; во время презентаций они остаются интерактивными: есть всплывающие подсказки, масштабирование и морф-переходы между типами диаграмм.
Зачем создавать новый формат файла, а не просто использовать PowerPoint?Цель — документ, который переживёт любой облачный сервис: презентация, сохранённая в 2026 году, должна открываться и в 2036-м, поэтому шрифты, изображения, диаграммы и редактор находятся вместе в одном простом читаемом файле, а не заперты за учётной записью или бинарным форматом.
Creator
nyblnet
Size
53 MB
Stars
5.5K
Age
3mo
Commits · 90 Days