Presenter is a Chrome extension with two jobs:
- Presenting — a pointer the audience can follow, and fading rectangles you draw to point at part of a page during a live demo.
- UX proposals — switch enhancements on and off (a clearer label, a calmer colour) and flip the page between as shipped and proposed, so one screen recording shows the before and the after.
It started at W&B, so it runs on W&B and CoreWeave Forge pages, plus GitHub and two local dev hosts — the full list is content_scripts.matches in manifest.json. Everywhere else it does nothing.
- Clone this repo.
- Open
chrome://extensionsand turn on Developer mode. - Click Load unpacked and select the repo folder.
There is no build step. Upgrading from a version before 1.1.0: remove the old presenter once first — 1.1.0 pins the extension's ID, so Chrome sees it as a new extension (ADR-0002).
Click the presenter icon in the toolbar for its switches. Settings apply to every open tab immediately and are remembered.
- Pointer & highlights — a small grey circle follows your pointer. Hold Shift (the circle turns red) and drag to draw a rectangle that fades after a few seconds. While Shift is held, clicks draw instead of reaching the page.
On by default. For a readable shared screen, use Chrome's own zoom (Cmd +), which it remembers per site.
- Open the page and switch on the enhancements you want under Enhancements — only those that apply to the current page are listed, each with the problem it addresses.
- Start recording (Loom, or any screen recorder).
- Press Alt+Shift+E to flip between the shipped page and the proposed one. Change the shortcut at
chrome://extensions/shortcuts; the popup shows the current one.
While any enhancement is showing, an Enhanced badge sits at the top centre of the page, so whoever watches the clip knows which version they are seeing. With every enhancement off — or the page flipped to as shipped — there is no badge and the page is exactly what shipped.
New enhancements are added as files in enhancements/ — see CONTRIBUTING.md and ADR-0001.
See CONTRIBUTING.md — including the rules for what may never be committed to this public repo.
npm install # dev tooling only (Node 24+)
npm run lint
npm test