onUI
Annotate elements, draw regions, and ship cleaner UI faster.
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.
[!NOTE]
onUIis 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 | bash
macOS/Linux (Firefox artifact):
curl -fsSL https://github.com/onllm-dev/onUI/releases/latest/download/install.sh | bash -s -- --firefox
Windows (PowerShell):
irm https://github.com/onllm-dev/onUI/releases/latest/download/install.ps1 | iex
Windows (PowerShell, Firefox artifact):
iwr https://github.com/onllm-dev/onUI/releases/latest/download/install.ps1 -OutFile install.ps1; .\install.ps1 -Firefox
The 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://extensions - Enable 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 -- --mcp
Windows (PowerShell, set env var before running installer):
$env:ONUI_INSTALL_MCP=1; irm https://github.com/onllm-dev/onUI/releases/latest/download/install.ps1 | iex
MCP 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:mcp
Manual 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 --build
This runs:
- Prereq checks (Node 20+, pnpm, git, zip)
- Build order:
@onui/core->@onui/extension->@onui/mcp-server - MCP 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 --release
Release gates:
- Clean git tree
- Current branch is
main gh auth statussucceeds
Release actions:
- Auto patch bump from root
package.json - Sync version across extension + MCP runtime strings
- Run full
--build - Commit + tag
vX.Y.Z - Push 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
Servidores relacionados
Scout Monitoring MCP
patrocinadorPut performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
patrocinadorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
PageSpeed Analyzer MCP
Analyzes website performance, SEO, and accessibility using PageSpeed Insights API.
Root Signals
Equip AI agents with evaluation and self-improvement capabilities with Root Signals.
Valyu
Access Valyu's knowledge retrieval and feedback APIs.
MCP Startup Framework
A framework for building MCP servers on Cloudflare Workers with OAuth, PostgreSQL, and Stripe.
OpenZeppelin MCP Servers
Model Context Protocol Servers Repository for OpenZeppelin Products
MCP WordPress Server
A server for integrating with the WordPress REST API.
Accordo MCP Server
Provides dynamic YAML-driven workflow guidance for AI coding agents with structured development workflows, progression control, and decision points.
Helm MCP
MCP server to work with Helm charts
Test Automator
An LLM-powered server for automating unit, integration, E2E, and API tests.
Stability AI
Integrates with the Stability AI API for image generation, editing, and upscaling.