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
Server Terkait
Alpha Vantage MCP Server
sponsorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
mcp-ssh-sre
An MCP server providing read-only server monitoring tools to AI assistants. Runs predefined diagnostic commands over SSH and passes only the results to the LLM - your server credentials and shell are never exposed.
Bash MCP Server
Execute bash commands on the host machine.
Multi Sentry MCP
Multi-org Sentry MCP server โ isolated error monitoring across multiple projects from a single config. Process-level security, handoff package generation.
Remote MCP Server (Authless)
An authentication-free, remote MCP server designed for deployment on Cloudflare Workers or local setup via npm.
OSSInsight
Analyze GitHub repositories, developers, and organizations with data from OSSInsight.io.
Deno Gemini Grounding MCP Server
A Model Context Protocol server that provides access to the connpass users API v2, utilizing Gemini for grounding.
RunwayML + Luma AI
Interact with the RunwayML and Luma AI APIs for video and image generation tasks.
Gentoro
Gentoro generates MCP Servers based on OpenAPI specifications.
Unified Diff MCP Server
Beautiful HTML and PNG diff visualization using diff2html, designed for filesystem edit_file dry-run output with high-performance Bun runtime.
SilbercueSwift
iOS simulator automation MCP server โ build, test, screenshot (20ms), UI interaction, logging, git. Direct WDA integration, no Appium overhead. 55 tools, Free + Pro tier.