Enables UI annotation and element extraction within the Firefox browser, allowing AI agents to access structural and visual metadata from active web tabs.
onUI
Annotate Any UI for AI Agents
Lightweight browser extension (Chrome + Edge + Firefox) + local MCP bridge for annotation-first UI pair programming.
Powered by onLLM.dev.
onUI is now stable and production-ready.
Demo
Click the preview above to play the full demo video.
β¨ Why onUI
π§© No integration into app code
ποΈ Per-tab ON/OFF control (off by default)
π― In-page annotation dialog with intent + severity
βοΈ Draw mode for region annotations (rectangle + ellipse)
βοΈ Compact toolbar with pop-out settings (output level + clear on copy)
π Visual markers and hover targeting
π§Ύ Export outputs in compact / standard / detailed / forensic formats
π‘οΈ Shadow DOM isolation for stable styling
π Local MCP server + native bridge (no cloud backend required)
Install (Current)
Option A: Browser Extension Stores (recommended)
Chrome Web Store: https://chromewebstore.google.com/detail/onui/hllgijkdhegkpooopdhbfdjialkhlkan?authuser=0&hl=en-GB
Microsoft Edge Add-ons: https://microsoftedge.microsoft.com/addons/detail/onui/fkcmlckehjhcicihbnmhkadfhjhfnond
Option B: One-command installer from latest GitHub release
Use this if you want the latest version (store updates may lag) or for Firefox:
macOS/Linux:
curl -fsSL https://github.com/onllm-dev/onUI/releases/latest/download/install.sh | bashmacOS/Linux (Firefox artifact):
curl -fsSL https://github.com/onllm-dev/onUI/releases/latest/download/install.sh | bash -s -- --firefoxWindows (PowerShell):
irm https://github.com/onllm-dev/onUI/releases/latest/download/install.ps1 | iexWindows (PowerShell, Firefox artifact):
iwr https://github.com/onllm-dev/onUI/releases/latest/download/install.ps1 -OutFile install.ps1; .\install.ps1 -FirefoxThe installer handles extension install and can set up MCP in the same run.
When prompted with Set up local MCP bridge now? [y/N], enter y to enable MCP.
Then load it in Chrome or Edge:
Open
chrome://extensionsoredge://extensionsEnable Developer mode
Click Load unpacked
Select
~/.onui/extensions/current(or%USERPROFILE%\.onui\extensions\currenton Windows)
Chromium browsers require this final manual step for unpacked extensions.
Firefox (manual from release artifact):
Download
onui-firefox-add-ons-vX.Y.Z.zipfrom the GitHub release page.Extract it to a local folder.
Open
about:debugging#/runtime/this-firefox.Click Load Temporary Add-on...
Select the extracted
manifest.json.
π§ Usage
Open any supported website tab.
Click the onUI extension icon.
Enable
This Tab.Use the on-page launcher to open the compact toolbar.
Toggle Annotate mode for element targeting or Draw mode for region targeting.
Hold
Shiftand click multiple elements to batch-select targets.Release
Shiftto open a shared annotation dialog for selected targets.Save once to create one annotation per selected element (or one region annotation in draw flow).
Open toolbar Settings to choose output level and configure Clear on copy.
Copy exported output from the toolbar.
π Local MCP Setup
Recommended path: use the same installer command above and answer y when prompted.
If you want to force MCP setup in non-interactive mode:
macOS/Linux (--mcp):
curl -fsSL https://github.com/onllm-dev/onUI/releases/latest/download/install.sh | bash -s -- --mcpWindows (PowerShell, set env var before running installer):
$env:ONUI_INSTALL_MCP=1; irm https://github.com/onllm-dev/onUI/releases/latest/download/install.ps1 | iexMCP setup now uses a prebuilt release bundle (no local build required), but still needs Node 20+.
Manual MCP setup from source is still supported:
pnpm build:mcp
pnpm setup:mcp
pnpm doctor:mcpManual JSON config for custom MCP routers/clients
If your MCP router uses an object-style mcpServers map, use this canonical entry:
{
"mcpServers": {
"onui-local": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/onUI/packages/mcp-server/dist/bin/onui-cli.js",
"mcp"
]
}
}
}Use an absolute path for onui-cli.js (relative paths are often rejected or resolved incorrectly by routers).
If your router uses a list/array schema instead of an object map, adapt the same command/args shape like this:
{
"servers": [
{
"name": "onui-local",
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/onUI/packages/mcp-server/dist/bin/onui-cli.js",
"mcp"
]
}
]
}The list example above is a schema adaptation pattern, not a claim about any specific router's exact key names.
Setup/verification notes:
Run
pnpm build:mcpfirst sopackages/mcp-server/dist/bin/onui-cli.jsexists.Keep the server entry name as
onui-local.Run
pnpm doctor:mcpafter wiring config to confirm local setup health.Auto-registers
onui-localfor Claude Code and Codex when those CLIs are installed.Browser support in this release: Chrome stable + Edge stable + Firefox stable (unpacked).
@onui/mcp-serveris workspace-local (private: true), so run setup/doctor from this repo.
See:
docs/mcp-setup.mddocs/doctor.mddocs/release.md
Maintainer Build + Release
app.sh is the local release entrypoint (no CI/CD dependency).
Local validation + artifact packaging
./app.sh --buildThis runs:
Prereq checks (Node 20+, pnpm, git, zip)
Build order:
@onui/core->@onui/extension->@onui/mcp-serverMCP tests
MCP doctor smoke check (warnings allowed, errors fail)
Artifact packaging into
artifacts/vX.Y.Z/
Artifacts:
onui-extension-unpacked-vX.Y.Z.ziponui-chrome-web-store-vX.Y.Z.zip(manifestkeystripped for CWS)onui-edge-add-ons-vX.Y.Z.zip(manifestkeystripped for Edge Add-ons)onui-firefox-add-ons-vX.Y.Z.ziponui-mcp-bundle-vX.Y.Z.zipinstall.shinstall.ps1checksums.txt
Local release + GitHub publish
./app.sh --releaseRelease gates:
Clean git tree
Current branch is
maingh auth statussucceeds
Release actions:
Auto patch bump from root
package.jsonSync version across extension + MCP runtime strings
Run full
--buildCommit + tag
vX.Y.ZPush commit/tag
Create GitHub release with packaged assets
π οΈ Development
pnpm install
pnpm check
pnpm test:coverageποΈ Repository Structure
packages/
core/ Shared annotation/report types + formatters
extension/ Browser extension runtime (background/content/popup)
mcp-server/ Local MCP server + native bridge setup/doctor toolingβ Support
If onUI is useful to you, please star the repo: https://github.com/onllm-dev/onUI
It helps other users discover the product.
Star History
π License
GPL-3.0
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.