nomos-browser
NOMOS Browser
당신의 에이전트를 위한 브라우저, 당신이 함께 있는.
AI 에이전트를 위한 통제된 브라우징 인프라. 브라우저는 모델에 붙은 장난감이 아니라 플랫폼의 리소스가 되며, 소유자는 에이전트가 하는 일을 보고, 승인하고, 중단할 수 있습니다.
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은 런타임 자체가 동일한 출처에서 제공하며, 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를 건너뛰고, 이후 typecheck가 "This is not the tsc command you are looking for" 오류로 실패합니다. 자세한 내용은 docs/INSTALLATION.md에 있습니다.
런타임에는 빌드 단계가 없습니다: 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를 절대 부여하지 않습니다: CLI로 생성된 세션은 다운로드, 업로드, 전송, 구매, 결제, 삭제가 거부된 상태로 시작됩니다.
예제
# 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);
자율성 상태를 증명할 수 없으면(런타임 다운, 재연결), 인터페이스는 절대
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는 거부됩니다.Anti-SSRF: 내부 호스트로 이동하는 것은 명시적 행위이며, 추론되지 않습니다.
실행 경로의 주입 방지 출처:
observe와extract는provenance를 반환합니다.필수 제어 임대 (
allow_unleased: false).비밀은 인터페이스, 감사, 재생에 나타나지 않습니다.
T1–T10 위협 모델, 선언된 잔여 위험은 docs/SECURITY.md에 있습니다.
여기서 "100% 안전"을 주장하지 않습니다. 어떤 조치도 그것을 뒷받침하지 않으며, 앞으로도 그럴 수 없습니다.
감사 및 재생
행동당 19개 필드의 추적, 해시로 연결, 출처에서 비밀 편집. 종료 시 세션은 봉인됩니다.
재생은 세 가지 독립적인 계층에서 읽기 전용입니다: 경로에 쓰기 동사가 없고(405 + Allow: GET); 기록을 읽어도 세션이 부활하지 않으며; 모드는 화면이 추론하는 것이 아니라 런타임이 선언합니다.
또한 자신의 읽기에 대해 정직합니다: 손상된 줄과 누락된 출처를 보고하며, 완전한 것처럼 보이는 더 짧은 타임라인을 반환하지 않습니다. 존재한 적 없는 세션은 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개 키, 런타임 자체로 조회 가능:
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로 이동합니다. 변형 하에서 0으로 유지되는 카운터는 아무것도 측정하지 않을 것입니다.
알려진 제한 사항
p99는 어떤 지연 경로에서도 보고되지 않습니다: 30개 샘플은 p99를 유지하려면 100개가 필요합니다. 관찰된 최대값은 p99라고 불리지 않습니다.범위가 있는 토큰을 발급하는 HTTP 경로가 없습니다 — 내부 API에 존재합니다.
pr.page.isClosed()분기는 정상 작동에서 도달할 수 없습니다; 경쟁 방어이며, 커버리지가 아닙니다.인터페이스 상태 표시줄은 700ms 폴링으로 업데이트됩니다. 이벤트는 ~1ms에 도착합니다; 표시줄은 그렇지 않습니다.
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까지 이 저장소는 플레이스홀더 소유자와 함께 "모든 권리 보유"를 선언했습니다. 두 가지 모두 소유자의 결정이었으며, 결정되었습니다.
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