bento: Instructions file for Codex

AGENTS.md

bento AGENTS.md is an instructions file for Codex, OpenCode from nyblnet/bento. It costs 3,763 tokens per session, scanned A, original, MIT.

A repository guide for developers and AI coding agents working on bento, a project that stores office documents as single self-contained HTML files. It describes the project, naming rules, tools, and rules to read before changing code.

In plain words
What is it for?
Use it when working in the bento repository, especially before writing code. It helps explain the slides, spaces, dash, and vault applications and points to deeper project guidance.
Why use it?
It gives contributors the project-specific context and constraints they need before editing files. This helps avoid incorrect names, broken architecture assumptions, and changes that violate the repository’s rules.

Instructions file for CodexOpenCode

Written for Codex and OpenCode: the file is AGENTS.md. Also seen: mentions CLAUDE.md; mentions Claude Code; mentions Codex.

This is nyblnet/bento's own configuration. It tells Codex and OpenCode how to work on bento itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything bento configures →

Needs its repository: it reads a path above its own folder, which exists only inside the repository. The line is node ../scripts/test-sync.ts # CRDT convergence rig (SEEDS/STEPS/ACTORS env).

About the project

Bento is a presentation editor and viewer contained entirely in a single HTML file. People use it to create, edit, present and share slide decks in a browser without requiring recipients to install an application.

nyblnet/bento · 5,567 stars · on GitHub · bento.page

Reuse

Borrowing it

Nothing to install: this file belongs to nyblnet/bento. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/nyblnet/bento/main/AGENTS.md
Clone the repo
git clone --depth 1 https://github.com/nyblnet/bento

Made for: Codex, OpenCode.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for bento AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/nyblnet/bento/agents-md/github.svg)](https://agentmods.dev/instructions/nyblnet/bento/agents-md)
Your own site
<a href="https://agentmods.dev/instructions/nyblnet/bento/agents-md"><img src="https://agentmods.dev/badge/instructions/nyblnet/bento/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for bento AGENTS.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/nyblnet/bento/agents-md"><img src="https://agentmods.dev/badge/instructions/nyblnet/bento/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 3,763 This file is loaded in full into every session.
When invoked 3,763 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.03763 $0.03763
Opus 5.5 $0.01505 $0.01505
Sonnet 5.5 $0.00753 $0.00753
Haiku 4.5 $0.00376 $0.00376

Measured 13d ago against content hash 8ced27932a2c, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

bento AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 13d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 255 lines

How it starts

The opening of the file, as written. The whole thing — 255 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Working in this repo — agents & tools

Guidance for AI coding agents (Claude Code, Codex, Antigravity, …) and human contributors. This file is the tool-agnostic contract; Claude Code also reads CLAUDE.md (the deep architecture guide for slides/). If your tool only reads one file, read this one, then follow the pointers.

What this project is

bento — office documents as single self-contained HTML files. One file = the document + viewer + editor; it saves itself, updates itself over a signed channel, and optionally syncs E2EE through a blind relay. slides/ is the shipped app. Starting now: bento/spaces (Notion/notes-like), bento/dash (spreadsheet + tables), bento/vault (document library).

Naming and casing — lowercase everywhere. The platform is bento, the wordmark is bento/., and apps are bento/slides, bento/spaces, bento/dash, bento/vault. This applies to UI strings and prose as well as format constants — do not write "Bento Slides" in new copy. The / in the wordmark is decorative: anywhere a name is stored or typed (filenames, URLs, package names) it is plain bento. Full reasoning and the rejected candidates are in docs/DECISIONS.md — don't reopen them.

Read before writing code

  • docs/PLATFORM.md — invariants every Bento app must honor. Breaking these bricks files already shipped to users.
  • docs/PARALLEL-WORK.md — branch/merge discipline when many agents work at once (you are probably one of them).
  • docs/DECISIONS.md — settled decisions. Don't relitigate them in code; append new ones.
  • CLAUDE.md — deep architecture + hard-won gotchas, authoritative for slides/ internals.
  • docs/collab-design.md — the sync/collab spec + threat model.

Hard rules (each one has broken something before)

  1. Never let a literal </script> into a bundle or document block. JSON in the doc block escapes < as <; builders concatenate around it.
  2. The #bento-doc block stays plaintext, same id, regex-extractable. That's the splice contract (docs/PLATFORM.md) — updaters already shipped in old files are frozen code that depends on it.
  3. Never regenerate a document's docId. It's the document's identity for recovery, sync, and future merge.
  4. After any change to slides/src/sync/crdt.ts, run node scripts/test-sync.ts. The convergence rig has caught 15+ ordering bugs; a green typecheck means nothing for CRDT correctness.
  5. A password-protected deck never carries a plaintext preview of page one. Saves write a static first-page render into the shell for file-manager thumbnails (kernel/src/save.ts, slides/src/preview.ts); bento/enc decks are vetoed and any existing preview is stripped. Run node scripts/test-preview.ts after touching that path.
  6. New UI strings go into ALL i18n catalogs. English-string-as-key; never call t() in module-level consts. Never take the locale list from prose — including this file. It is LOCALES in that app's scripts/build-*-i18n.mjs, and ls <app>/src/i18n/ is the check. This rule said seven for a month after Portuguese made it eight, and bento/dash ships without Portuguese today because a fourth copy of the list still says seven.
    • Adding a locale touches three places, not one: the catalogue file, the app's LOCALES, and any rig with its own copy of the list. Only build-i18n.mjs (slides) errors on a catalogue missing from LOCALES; the others exit 0 and silently never pack it.
    • dash is the app that is short, and its rig cannot see it. Its rig IS its generator — dash/src/i18n/packed.ts says "GENERATED by scripts/test-dash-i18n.ts" — and that file's own LOCALES (line 48) has no pt. It reports "every core catalog is complete", truthfully, about seven locales. A generator that grades its own output cannot report a gap in the set it was given.
    • A rig must derive the list, never restate it. scripts/test-i18n-coverage.mjs reads PACKED_LOCALES out of the generated packed.ts — copy that, and a fourth copy can never go stale. It covers slides ONLY (coreDir is hardcoded to slides/src/i18n), so spaces and type have no coverage rig at all. Do not assume your app's catalogues are checked by anything.
    • A locale code is not always a language. pt is Brazilian in slides/ and drifted European in spaces/; no check can see this, because both files are correctly named pt.ts. See docs/DECISIONS.md, 2026-08-29, before writing or reusing a catalogue for a language with regional variants.
  7. Never edit site/ — it's generated. Sources are site-src/ and the scripts/build-*.mjs tooling. Same for dist-single/.
  8. No AI co-author trailers on commits (no Co-Authored-By: Claude or similar), and no bot identities in git history.
  9. Releases are cut locally by the maintainer only. Never touch signing keys (~/.bento/release-key.json), never attempt to release, publish, or deploy from an agent session unless the maintainer explicitly asks.
  10. External PRs get provenance checks before merge (gh api users/<login>) — AI-agent/bot contributions are not merged.
  11. Verify before claiming done: typecheck, build, and exercise the change in a browser when it's user-visible. Report failures honestly.

Read the full file on GitHub · 255 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 13d ago Changed · +6 tokens per session 8ced27932a2c
  2. 1mo ago Changed · +138 lines · +2,072 tokens per session f6cb3c4c9cce
  3. 1mo ago Changed · +6 lines · +119 tokens per session 0a6853005afc
  4. 1mo ago Changed · +19 lines · +340 tokens per session 483e9ab9e85c
  5. 1mo ago First seen · 92 lines · 1,226 tokens per session scan A 59776bae22e8

Subscribe to this mod's changes

bento AGENTS.md is an instructions file published in the GitHub repository nyblnet/bento (5,567 stars, last pushed today), licensed MIT. It adds 3,763 tokens to every session, about $0.0151 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other instructions, from other repositories

vscode buildNext.instructions.md

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 9,715 tokens

next.js AGENTS.md

AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,581 tokens

vscode oss-third-party-notices.instructions.md

Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).

microsoft/vscode · 5,262 tokens

langchain AGENTS.md

AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,680 tokens

vscode copilot-instructions.md

Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).

microsoft/vscode · 2,731 tokens

deno copilot-instructions.md

Copilot instructions for denoland/deno, covering deno development guide for github copilot, network access, high level overview, key directories and key files to understand first.

denoland/deno · 3,077 tokens