nomos-browser
NOMOS Browser
Браузер вашего агента, с вами в комнате.
Управляемая инфраструктура навигации для ИИ-агентов. Браузер становится ресурсом платформы, а не игрушкой, привязанной к модели — и владелец видит, разрешает и прерывает то, что делает агент.
0.3.0-rc.2 · MIT · Node ≥ 22.6 · Chromium via Playwright · без шага сборки
Проблема
Дать агенту возможность использовать браузер — значит дать ему возможность покупать, отправлять, удалять и сливать данные от чьего-то имени. Обычно это решается двумя плохими способами:
слепое доверие — агент действует, а владелец узнаёт потом;
паралич — агент спрашивает всё, а владелец автоматически кликает «да», пока одобрение не становится рефлексом.
NOMOS Browser разделяет то, что владелец уже разрешил, и то, что требует согласия сейчас, и делает разницу видимой, проверяемой и обратимой.
Related MCP server: Cloudflare Playwright MCP
Как это выглядит
NOMOS · Claude · Gemini · Qwen · Ollama · agente próprio
│
MCP · REST v1 · WebSocket · SDK · CLI · Live Agent Console
│
NOMOS BROWSER RUNTIME
política → autonomia → aprovação → auditoria
│
Playwright · CDP
│
ChromiumСостояние навигации принадлежит Runtime, а не модели. Агент отключается, умирает или заменяется другим от другого поставщика: сессия остаётся живой, с теми же вкладками, куки и задачей.
Возможности
Live Agent Console | Зеркало страницы, курсор агента, полоса состояния, лента активности, центр одобрения и история только для чтения |
Два режима автономии |
|
| Автоматический режим никогда не отменяет обязательное одобрение. Это топология кода, а не обещание |
Одобрение с привязкой | Одноразовое, привязанное к действию, сессии и точным аргументам. Одобрение «Отмена» не разрешает «Подтвердить покупку» |
Маскированный секрет | Вводимый текст отображается как |
Аудит и воспроизведение | Цепочка, связанная хэшем, печать при завершении сессии, воспроизведение только для чтения в трёх слоях |
Человеческий контроль | Взятие управления замораживает агента; возврат управления требует повторного наблюдения перед действием |
23 глагола, 16 инструментов MCP | Единый контракт, предоставляемый через MCP, REST, WebSocket, SDK и CLI |
Демонстрация
Live Agent Console обслуживается самим runtime, на том же источнике, с CSP
connect-src 'self' — нет разрешительного CORS, который можно было бы
эксплуатировать.
node packages/api/src/daemon.ts
# abra a URL com o token que o daemon imprimeВоспроизводимые сценарии с ожидаемым результатом находятся в
docs/demos.md.
Установка
npm ci --include=dev
npx playwright install chromium--include=dev — не украшение: с NODE_ENV=production или
npm config omit=dev, npm ci пропускает devDependencies, и проверка типов
затем падает с "This is not the tsc command you are looking for". Подробности
в docs/INSTALLATION.md.
Нет шага сборки для runtime: Node выполняет TypeScript нативно. Интерфейс
имеет собственный шаг (node packages/ui/build.ts), потому что читает токены
бренда из хранилища при каждой генерации.
Быстрый старт
# 1. subir o runtime
node packages/api/src/daemon.ts &
# 2. estado
node packages/cli/src/main.ts health
# 3. abrir uma página (a sessão nasce com a política padrão)
node packages/cli/src/main.ts open https://example.com
# 4. ver o que ficou gravado
node packages/cli/src/main.ts sessions
node packages/cli/src/main.ts replay <SESSION_ID>CLI никогда не предоставляет чувствительные capability: сессия, созданная ею, рождается с запрещёнными download, upload, send, purchase, payment и delete.
Примеры
# capturar a tela de uma sessão
node packages/cli/src/main.ts screenshot <SESSION_ID> --out /tmp/tela.png
# entregar um objetivo ao agente
node packages/cli/src/main.ts task --session <SESSION_ID> "encontre o preço do plano anual"
# acompanhar os eventos ao vivo
node packages/cli/src/main.ts events --session <SESSION_ID>
# verificar a integridade do replay gravado
node packages/cli/src/main.ts replay verify <SESSION_ID>ASK и AUTO
Иерархия, и порядок есть гарантия:
POLÍTICA DO DONO → MODO DE AUTONOMIA → CAPABILITY DO NOMOS → GATES DE APROVAÇÃO → AÇÃOASK — спрашивать
Чтения проходят напрямую. Каждое действие, изменяющее страницу, останавливается и спрашивает, с последствием и ресурсом, написанными на португальском, чтобы решение было осознанным, а не рефлекторным кликом.
Одобрение browser.task не является бланком: каждый шаг, который план
решит выполнить, снова проходит через ворота.
AUTO — действовать без вопросов
Агент выполняет самостоятельно всё, что вы уже разрешили своей политикой. Что не меняется:
действия с финансовым эффектом, внешней отправкой или высокой необратимостью продолжают требовать одобрения —
browser.uploadспрашивает вAUTO, потому что отправляет ваши данные наружу, и это нельзя отозвать;маршрут без объявленного профиля риска попадает в «всегда одобрять» (fail-closed);
если состояние автономии не может быть подтверждено (runtime упал, переподключение), интерфейс никогда не показывает
AUTO: он переходит в неизвестное и обрабатывается какASK.
AUTO != BYPASS — это не обещание из документации. Шлюз автономии работает
после capability и человеческого контроля: когда он выполняется, всё, что
политика запрещает, уже вернуло 403. В коде нет ветки, которая превращает
deny в allow.
Подробнее в docs/ask-mode.md и
docs/auto-mode.md.
Безопасность
Аутентификация по токену с областями (
OBSERVE,NAVIGATE,INPUT,DOWNLOAD,UPLOAD,SECRET,CONTROL,ADMIN). Каждый маршрут имеет объявленную область; ни один не живёт по умолчанию.Кто действует, не разрешает. Профиль агента не может одобрять, делегировать режим или возобновлять. Остановить — да:
pauseиemergency-stopникогда не могут быть сложнее, чем действовать.Политика fail-closed по capability, с
A6_DESTRUCTIVEзапрещённым.Анти-SSRF: переход на внутренний хост — явное действие, никогда не выводимое.
Анти-инъекционная процедура в пути выполнения:
observeиextractвозвращаютprovenance.Обязательная аренда управления (
allow_unleased: false).Секреты не появляются в интерфейсе, аудите или воспроизведении.
Модель угроз T1–T10, с объявленными остатками, находится в
docs/SECURITY.md.
Ничто здесь не утверждает «100% безопасно». Ни одна мера этого не поддерживает, и ни одна никогда не поддержит.
Аудит и воспроизведение
Цепочка из 19 полей на каждое действие, связанная хэшем, с редактированием секрета в источнике. При завершении сессия опечатывается.
Воспроизведение доступно только для чтения в трёх независимых слоях: на маршруте
нет глагола записи (405 + Allow: GET); чтение истории не воскрешает сессию;
и режим объявляется runtime, а не выводится экраном.
Он также честен в отношении собственного чтения: сообщает о повреждённых строках
и отсутствующих источниках, вместо того чтобы возвращать более короткую
временную шкалу, которая представляется полной. Сессия, которой никогда не
существовало, — это 404, а не пустое воспроизведение с 200.
MCP
16 инструментов, без привязки к модели:
browser_navigate · browser_observe · browser_find · browser_extract ·
browser_screenshot · browser_click · browser_type · browser_press ·
browser_scroll · browser_tabs · browser_tab_open · browser_tab_switch ·
browser_tab_close · browser_download · browser_upload · browser_task
В экосистеме NOMOS браузер — это управляемая capability политикой владельца,
с подписанным каталогом и доверием по отпечатку нормализованного манифеста.
См. docs/mcp.md и
docs/NOMOS-INTEGRATION.md.
Конфигурация
51 ключ, доступный для запроса через сам runtime:
curl -s localhost:7777/api/v1/config/schema # a FORMA (pública)
curl -s localhost:7777/api/v1/config # os VALORES efetivos (ADMIN)Разделение намеренно: «что существует?» может быть отвечено любому носителю;
«что действует здесь?» — нет. См.
docs/CONFIGURATION.md.
Устранение неполадок
Симптом → причина → проверка → исправление в
docs/TROUBLESHOOTING.md.
Разработка
npx tsc --noEmit # tipos
bash scripts/run-suite.sh # suíte inteira, um arquivo por vez
bash scripts/run-suite.sh --fast # pula browser/bench
bash scripts/regressao-completa.sh # 15 etapas, um veredito
bash scripts/limpar-orfaos.sh # higiene por prova de posseИспользуйте исполнитель, а не node --test tests/ напрямую. Раннер Node
распараллеливает по CPU; при нехватке памяти процесс умирает на середине и
оставляет усечённый вывод без строки сводки, что выглядит как успех.
run-suite.sh запускает по одному файлу за раз, и мёртвый файл отображается
как MORTO.
Тесты
Измерено на HEAD 6964cf0:
suíte TypeScript 789 passes · 0 falhas · 37/37 arquivos
E2E do Live Agent 106 casos · 9 baterias
sala limpa 14/14 passos, a partir de clone do HEAD
regressão completa 15 etapas · 0 falha · 0 não-executadaПроект отказывается называть PASS то, что не было наблюдаемо. Два примера:
Управление браузером реально. Клик, синтезированный JavaScript, доходит до
страницы с isTrusted=false; отправленный через CDP — с true. Спайк тестирует
оба — второй доказывает управление, первый доказывает, что тест не пустой.
Счётчик одобрений не слепой. При мутации продукта
UNEXPECTED_APPROVAL_PROMPTS переходит с 0 на 3 и на 5 в зависимости от
внедрённого дефекта. Счётчик, который оставался бы на нуле при мутации, ничего
бы не измерял.
Известные ограничения
p99не сообщается ни на одном пути задержки: 30 выборок требуют 100 для поддержки p99. Ни один наблюдаемый максимум не называется p99.Нет HTTP-маршрута для выпуска токена с областью — он существует во внутреннем API.
Ветка
pr.page.isClosed()недостижима при нормальной работе; это защита от гонок, а не покрытие.Полоса состояния интерфейса обновляется по опросу каждые 700 мс. События приходят за ~1 мс; полоса — нет.
Проверено на macOS/Apple Silicon. Другие платформы не измерялись.
Полный список с цифрами находится в
docs/LIMITATIONS.md, а что является PROVEN против
MEASURED или NOT PROVEN — в
PRODUCT_TRUTH_MATRIX.md.
Дорожная карта
В ROADMAP.md. То, что там есть, — это законные долги, а не
обещания сроков.
Документация
Начните здесь
С нуля до первого browser task | |
Консоль, её состояния и элементы управления | |
Два режима и то, что между ними не меняется | |
Воспроизводимые сценарии |
Справочник
Установка, настройка, разблокировка | |
Слои и маршруты | |
Глаголы, цели и движок задач | |
Безопасность продукта и модель угроз | |
След, печать и воспроизведение | |
Интеграции | |
Что переживает что; зрение | |
Ограничения, доказательства, прослеживаемость | |
Как делается версия; что изменилось |
Бренд
Бренд NOMOS заморожен в v1.0, и официальный резолвер отвечает rc=0.
Токены считываются из хранилища при каждой сборке и не версионируются в этом
репозитории — копировать бренд-токен в промежуточный файл запрещено
контрактом управления. См. docs/BRAND.md.
Лицензия
MIT. См. LICENSE. Правообладатель: Voltolini-SPACE.
Лицензия покрывает код. Она не предоставляет прав на бренды «NOMOS» и
«NOMOS Browser» и на токены визуальной идентичности, которые управляются
отдельно и не версионируются здесь. Подробности в NOTICE.md.
До 2026-08-25 этот репозиторий объявлял «все права защищены» с placeholder-правообладателем. Обе вещи были решением владельца и были решены.
Часть экосистемы NOMOS · voltolini.space
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser through a set of tools, allowing them to perform web automation tasks like navigation, typing, clicking, and taking screenshots.
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser through a set of tools, allowing them to perform web automation tasks like navigation, typing, clicking, and taking screenshots.
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to perform intelligent browser automation with session-based context analysis, including navigation, form filling, and content extraction through natural language.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control a browser through a set of tools, allowing them to perform web automation tasks like navigation, typing, clicking, and taking screenshots.
Related MCP Connectors
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Runtime permission, approval, and audit layer for AI agent tool execution.
A paid remote MCP for AI agent browser approval MCP, built to return verdicts, receipts, usage logs,
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Voltolini-SPACE/nomos-browser'
If you have feedback or need assistance with the MCP directory API, please join our Discord server