Skip to main content
Glama

NOMOS Browser

あなたのエージェントのブラウザ、あなたも同席で。

AIエージェントのための統制されたナビゲーション基盤。ブラウザはモデルに取り付けられたおもちゃではなく、プラットフォームのリソースになる——そして所有者はエージェントの行動を見て、承認し、中断できる。

0.3.0-rc.2 · MIT · Node ≥ 22.6 · Chromium via Playwright · ビルドステップなし


問題

エージェントにブラウザを使う力を与えることは、誰かの代わりに購入・送信・削除・漏洩する力を与えることだ。これは通常、2つの悪い方法で解決される:

  • 盲目的な信頼 — エージェントが行動し、所有者は後で知る;

  • 麻痺 — エージェントがすべてを尋ね、所有者が自動的に「はい」をクリックし、承認が反射になるまで続く。

NOMOS Browserは所有者がすでに承認したことと今まさに同意が必要なことを分離し、その違いを可視化・監査可能・元に戻せるものにする。

Related MCP server: gaze

どのようになるか

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

ページのミラー、エージェントのカーソル、ステータスバー、アクティビティフィード、承認センター、読み取り専用の履歴

2つの自律モード

ASKはページを変更する各アクションの前に尋ねる;AUTOはすでに承認したことを自動で実行する

AUTOはバイパスではない

自動モードは必須の承認を決して取り除かない。これはコードのトポロジーであり、約束ではない

紐付けられた承認

単回使用、アクション・セッション・正確な引数に紐付けられる。「キャンセル」を承認しても「購入を確認」は承認されない

マスクされた機密情報

入力するテキストは[oculto: 24 caractere(s), C…Z]として表示される:判断するには十分、漏洩するには決して十分でない

監査とリプレイ

ハッシュで連結されたトレイル、セッション終了時の封印、3層の読み取り専用リプレイ

人間による制御

ハンドルを握るとエージェントが凍結する;返すと行動前に再観察が必須になる

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が作成したセッションは、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ÇÃO

ASK — 尋ねる

読み取りはそのまま通る。ページを変更するすべてのアクションは停止して尋ねる。結果とリソースがポルトガル語で書かれ、決定が意識的であり反射的なクリックではないことを保証する。

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は行動よりも決して難しくできない。

  • capabilityごとのfail-closedポリシー、A6_DESTRUCTIVEは拒否。

  • Anti-SSRF:内部ホストへのナビゲーションは明示的な行為であり、決して推測されない。

  • 実行パスにおける注入防止の来歴:observeとextractはprovenanceを返す。

  • 制御リース必須(allow_unleased: false)。

  • 機密情報はインターフェース・監査・リプレイに表示されない。

脅威モデルT1–T10、宣言された残存リスク付きはdocs/SECURITY.mdにある。

ここで「100%安全」と主張するものはない。いかなる対策もそれを支えず、今後も決して支えないだろう。

監査とリプレイ

アクションごとに19フィールドのトレイル、ハッシュで連結、機密情報は発生源で編集される。終了時、セッションは封印される。

リプレイは3つの独立した層で読み取り専用である:ルートに書き込み動詞は存在しない(405 + Allow: GET);履歴を読んでもセッションは復活しない;モードは画面が推測するのではなくランタイムが宣言する。

また、自身の読み取りについても正直である:完全であると見せかける短いタイムラインを返す代わりに、破損した行と欠落したソースを報告する。存在しなかったセッションは404であり、空の200リプレイではない。

docs/audit-and-replay.mdを参照。

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は一度に1ファイルを実行し、死んだファイルは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と呼ぶことを拒否する。2つの例:

ブラウザの制御は本物である。 JavaScriptで合成されたクリックはisTrusted=falseでページに届く;CDPでディスパッチされたものはtrueで届く。スパイクは両方をテストする——後者は制御を証明し、前者はテストが真空ではないことを証明する。

承認カウンターは盲目的ではない。 プロダクトのミューテーション下で、UNEXPECTED_APPROVAL_PROMPTSは注入された欠陥に応じて0から3、5へと変化する。ミューテーション下でゼロのままのカウンターは何も測定していないことになる。

既知の制限

  • 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にある。そこにあるのは正当な負債であり、日付の約束ではない。


ドキュメント

ここから始める

quickstart.md

ゼロから最初のbrowser taskまで

live-agent-console.md

コンソール、その状態とコントロール

ask-mode.md · auto-mode.md

2つのモード、そしてそれらの間で変わらないもの

demos.md

再現可能なスクリプト

リファレンス

INSTALLATION.md · CONFIGURATION.md · TROUBLESHOOTING.md

インストール、設定、トラブルシューティング

ARCHITECTURE.md · API.md

レイヤーとルート

browser-control.md · tasks.md · TASK-ENGINE.md

動詞、ターゲット、タスクエンジン

security-overview.md · SECURITY.md

製品のセキュリティと脅威モデル

audit-and-replay.md · AUDIT.md

トレイル、シール、リプレイ

mcp.md · NOMOS-INTEGRATION.md · GI-INTEGRATION.md

統合

RECOVERY.md · VISION-PROVIDER.md

何が何に耐えるか;ビジョン

LIMITATIONS.md · EVIDENCIA.md · RASTREABILIDADE.md

制限、証拠、トレーサビリティ

RELEASE.md · CHANGELOG.md

バージョンの作り方;変更点

ブランド

NOMOSブランドはv1.0で凍結されており、公式リゾルバはrc=0で応答します。 トークンはビルドのたびにボールトから読み取られ、このリポジトリではバージョン管理されません — ブランドトークンを中間ファイルにコピーすることは、ガバナンス契約により禁止されています。docs/BRAND.mdを参照。

ライセンス

MIT。 LICENSEを参照。権利者:Voltolini-SPACE。

ライセンスはコードを対象としています。「NOMOS」および「NOMOS Browser」の商標、ならびにビジュアルアイデンティティのトークンに対する権利は付与されません。これらは別途管理され、ここではバージョン管理されません。詳細はNOTICE.mdを参照。

2026-08-25まで、このリポジトリはプレースホルダーの権利者で「全著作権所有」を宣言していました。どちらも所有者の決定であり、決定済みです。

NOMOSエコシステムの一部 · voltolini.space

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to perform intelligent browser automation with session-based context analysis, including navigation, form filling, and content extraction through natural language.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to drive a real, already logged-in browser from the CLI or over MCP, with enforceable approval gates for actions and safeguards against prompt injection.
    1,133,569 npm
    Mozilla Public 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to automate browsers through Playwright behind multi-layer safety guards, restricting navigation to allowed domains, defaulting to read-only actions, and recording all behavior in audit logs.
    7
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to drive a real Chrome browser for autonomous web tasks, using fast typed decisions with calibrated confidence, human-in-the-loop questions, safety gates, and full debug traces.
    347 npm
    5
    MIT