netresearch / nr-browser-ai
On-device AI assistant for TYPO3 that answers questions about the current page, powered by Chrome built-in AI - by Netresearch
Package info
github.com/netresearch/t3x-nr-browser-ai
Language:TypeScript
Type:typo3-cms-extension
pkg:composer/netresearch/nr-browser-ai
Requires
- php: ^8.2
- typo3/cms-core: ^12.4 || ^13.4 || ^14.3
- typo3/cms-extbase: ^12.4 || ^13.4 || ^14.3
- typo3/cms-fluid: ^12.4 || ^13.4 || ^14.3
- typo3/cms-form: ^12.4 || ^13.4 || ^14.3
- typo3/cms-frontend: ^12.4 || ^13.4 || ^14.3
Requires (Dev)
- netresearch/typo3-ci-workflows: ^1.4
- typo3/testing-framework: ^8.2 || ^9.0
This package is auto-updated.
Last update: 2026-08-22 17:29:48 UTC
README
Netresearch Browser AI for TYPO3
Page-grounded answers using Chrome built-in AI on the visitor's device
Live demo — runs the real bundle and answers from the demo page's own content. Without a supported browser it shows the extension's fallback instead.
This extension provides two frontend plugins. The first answers questions from the content of the currently open page. The second fills a parameter-rich form from one sentence and runs it. Chrome's Prompt API runs Gemini Nano locally; there is no application API key, server-side LLM proxy, chat persistence or telemetry.
This is a proof of concept. It deliberately grounds answers in one selected DOM area on the current page. The provider boundary permits future page-tree or whole-site context providers, but those scopes are not implemented.
Requirements
- TYPO3 12.4, 13.4 and 14.3 with PHP 8.2 through 8.5. TYPO3 12.4 is compatibility-only and requires a maintained security-patched distribution.
- Chrome 148 or newer on Windows 10/11, macOS 13+, Linux, or Chromebook Plus with ChromeOS platform 16389+.
- 22 GB free storage before the model download. Chrome also requires either a GPU with more than 4 GB VRAM or at least 16 GB RAM and four CPU cores.
- An unmetered network for the initial model download.
See browser setup for the complete Chrome requirements and troubleshooting steps.
Installation
composer require netresearch/nr-browser-ai vendor/bin/typo3 extension:setup
Load the extension's TypoScript, by either route:
- Site sets (TYPO3 13.4 and 14.3): add
netresearch/browser-aito thedependenciesof your site package's set, or toconfig.yamlof the site itself. Its three settings are then editable per site under Site Management › Sites › Settings. - Static template (TYPO3 12.4, and 13.4 sites still using
sys_template): include Netresearch Browser AI in the site root template.
Then add the content element Netresearch Browser AI on a page and configure its title, introduction, editor instruction, context selector and fallback. The second content element, Netresearch Browser AI form assistant, is described below.
Configuration model
- Administrators own the system prompt in TypoScript at
plugin.tx_nrbrowserai_assistant.settings.systemPrompt. - Editors may append a supplemental instruction in the plugin FlexForm. It does not replace the administrator prompt.
- The CSS selector defaults to
mainand selects content only from the currently open page. Scripts, forms and the assistant itself are excluded. - Answers use the language of the question, falling back to the page language
from
<html lang>when the question is too short to identify. - Unsupported clients and permanent setup errors show the selected same-page fallback content element or no output, according to the plugin setting.
- During setup, the initial page source is reduced when necessary to fit the default 80% context-usage target. Before each new question, no prompt starts when Chrome reports that current usage has reached that threshold; the user must select Reset. A generated response can take usage beyond the target.
Detailed settings are in the administrator reference.
Form assistant
A second content element, Netresearch Browser AI form assistant, turns a sentence into a filled form and a real result. The chain is intent, structured output, tool call, action, answer: the request goes to the on-device model constrained by the form's own JSON Schema, the arguments that come back are checked, written into the visible controls and run, the result is rendered as tables, and the model is asked once more — unconstrained this time — what those results mean for the question. That sentence appears under the request and the form collapses behind a disclosure, so the answer sits next to the question while the derived values stay one keystroke away.
One request may imply more than one query. "Compare the rainfall of the past week in Tokyo and in Leipzig" is two sets of arguments, two runs and one answer.
The schema is generated from the EXT:form definition rather than written by hand, because that definition already carries the option values, the bounds, whether an entry is mandatory and a sentence per element saying what it means. Generating it is also what makes a large form affordable for an on-device model: a multi-value element becomes one array property carrying its options as an enum, not one boolean property per option.
The same tool is registered with the browser's model context where the browser has one, so an agent outside the page can call it with the identical schema and receive the same result. Where neither a model nor a model context exists, the form stays a fully usable form.
The demonstration form ships with the extension and queries the open Open-Meteo service. That query leaves the browser and goes straight to the data source; the model does not. See the form assistant guide.
Privacy and security
No question, page content or answer is sent to an application service. Model inference and the dialogue stay in browser memory and are discarded on reset or navigation. Chrome manages the model download and storage; the extension has no server endpoint, database persistence, cookies or analytics for chat data.
Model output is rendered with DOM APIs only: a restricted Markdown subset is
built from createElement and text nodes, links are limited to validated
HTTP(S) URLs, and no HTML is ever parsed. Site owners
remain responsible for the page content selected as context, their privacy
notice, Chrome/browser governance and their Content-Security-Policy.
Read the privacy and security notes before production evaluation.
Development
ddev start ddev install-all composer ci:test:php:unit npm ci npm run ci
The DDEV overview is at https://nr-browser-ai.ddev.site/ and contains disposable TYPO3 12.4, 13.4 and 14.3 installations.
Documentation, contributing and support
License
The extension source is licensed under GPL-2.0-or-later. See
LICENSE. The manual in Documentation/ is licensed under
Creative Commons Attribution 4.0.
Developed and maintained by Netresearch DTT GmbH