Reticle

io.github.reticlehq由 GitHub 帳號 reticlehq 發布v3.9.0更新於 Nov 3, 2026

Verify a running web app from the inside over MCP: look, act, observe, assert. No screenshots.

已驗證STDIO僅桌面瀏覽器自動化開發者工具

概覽

AI 產生的概覽

Reticle 讓程式助理在瀏覽器分頁中驅動並驗證執行中的網頁應用:檢視、操作、觀察、斷言,不需截圖。

可以做什麼
  • 導覽或重新載入已連線的瀏覽器分頁,列出並釋放工作階段
  • 以語意快照讀取頁面、將定位器解析為參照、檢視狀態
  • 對元素執行動作,可單獨執行或等待預期結果,並串接多步驟操作
  • 觀察應用程式行為:事件、網路請求與主控台記錄
  • 立即或在時限內斷言條件,並重播受程式碼變更影響的已儲存流程
  • 依需求探索並呼叫未公開的額外工具
適用情境
適合助理修改網頁應用後,需要對真實執行中的應用證明變更有效,而不是只憑原始碼推測。適用於需要端到端驅動並驗證流程的前端或全端工作。
執行需求
透過 npx 以 stdio 在本機執行;此套件會在本機啟動 WebSocket 橋接端點,供應用程式的瀏覽器 SDK 連線。專案需接入 SDK 與建置外掛(init 會修改 package.json、鎖定檔與建置設定並啟動開發伺服器)。需要開發伺服器與瀏覽器工作階段;未宣告任何 API 金鑰或環境變數。
安裝前請注意
接入專案會修改檔案(package.json、鎖定檔、建置設定)並啟動開發伺服器,應先取得使用者同意。助理可以操作並改變執行中的應用程式;只有明確回傳通過結論的驗證才算通過。RETICLE_ADVERTISE_ALL_TOOLS 等選用環境變數會改變工具負載。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Reticle,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

@reticlehq/server

The Reticle bridge + MCP server. It hosts a localhost WebSocket endpoint your app's @reticlehq/browser SDK connects to, and exposes MCP tools your coding agent uses to look at, act on, observe, and assert against the live app.

bash
npx @reticlehq/server init   # wire the project: SDK + build plugin + MCP registrationnpx @reticlehq/server mcp    # MCP over stdio; auto-starts the bridge on ws://localhost:4400

The package installs a reticle bin, so inside a project reticle mcp and npx @reticlehq/server mcp are the same command. reticle is not a package name on npm.

Point your agent at it. On Claude Code, register it at user scope:

bash
claude mcp add reticle -s user -- npx @reticlehq/server mcp

Default tools (10):

reticle_navigate, reticle_look, reticle_act, reticle_act_and_wait, reticle_observe, reticle_assert, reticle_session, reticle_tools, reticle_run, reticle_verify.

Only reticle_act_and_wait and reticle_assert return a verdict; everything else moves or reads the app.

More tools ship but are not advertised, to keep the per-turn tool payload small: screenshots and visual diff, saved flows, recording, baselines, clock control, viewport, crawl, coverage, network mocking, leases and more. Reach any of them by name with reticle_run, list them with reticle_tools, or advertise the whole surface with RETICLE_ADVERTISE_ALL_TOOLS=1 (this roughly doubles the per-turn tool payload).

See the main README.

License

Apache-2.0.

來源:server/README.md,提交 1c7691b

工具

10

reticle_navigate

Navigate the connected browser tab to a URL, or reload it in place with { reload: true } (add { hard: true } to bypass the cache). e.g. {"url":"/settings"}

輸入參數urlhardreloadsessionIdtimeout_ms

reticle_act_and_wait

Act on a ref, then wait for a predicate to hold — one hop for the act->observe->assert loop. e.g. {"ref":"e42","action":"click","until":{"kind":"signal","name":"todos:loaded"}}

輸入參數refargsuntilaction必填detailintenttargetdurablepredicatesessionIdtimeout_msrefuseWhenThrottled

reticle_session

By action: "list" (the default) shows connected tabs; "yield" is MANDATORY before you stop; "tune" hides or moves the HUD; "feedback" reports a problem. e.g. {"action":"yield","mode":"waiting"}

輸入參數allhudkindmodeneednotetextclaimlevelmodeltraceaction另有 9 個

reticle_verify

The Reticle Harness is { action: "explore" }: when the user asks for the Harness, or asks Reticle to drive and verify the app for you, call it and do not drive… e.g. {"action":"change","files":["src/App.tsx"]}

輸入參數appsayflowstopwaitapplyfilesnamesrunIdscopesinceaction必填另有 14 個

reticle_look

Read the page, by action: "page" is the semantic snapshot of what is rendered, "find" resolves a locator (testid/role/text/component) to refs you can act on, "… e.g. {"action":"find","by":"testid","value":"submit"}

輸入參數byaltidsrefdiffmodenamepathroleselftextattrs另有 12 個

reticle_observe

What the app DID, by action: "events" is the reaction window since a cursor, "network" the requests it made, "console" what it logged. e.g. {"action":"events"}

輸入參數oklevellimitsinceuntilactionassetsbodiesmethodstatusfiltersactionId另有 4 個

reticle_assert

Prove a consequence, by action: "now" evaluates a predicate against the window that already exists, "wait" waits for one to become true within a budget. e.g. {"action":"now"}

輸入參數sinceuntilactiondetailintentpredicatesessionIdtimeout_ms

reticle_act

Act WITHOUT checking the result — if the action is supposed to cause something, use reticle_act_and_wait { until } instead and get the verdict in the same call. e.g. {"ref":"e42","action":"fill","args":{"value":"hello"}}

輸入參數refargsburststepsactiondetailtargetsessionIdtimeout_msonDeviationrefuseWhenThrottled

reticle_tools

Discover Reticle tools on demand. Call with no arguments to list every tool (name + one-line summary); call with names:["reticle_screenshot", …] to load full descriptions and parameters for specific tools. Then invoke them with reticle_run. This avoids paying for every tool definition on every turn. To make a verification REUSABLE (record once, replay free forever), the flow workflow lives here: reticle_record{action:"start"} → act → reticle_record{action:"stop"} → reticle_flow_save → reticle_verify{action:"flows"} (and reticle_verify { action: "heal" } on drift). Load those names when you want to save or re-run a flow.

輸入參數namenamesaction

reticle_run

Invoke any Reticle tool by name (discover names/params first with reticle_tools). On an unknown tool or bad arguments it returns the available names or the tool's params, so you can correct and retry.

輸入參數argstool必填sessionId

版本歷史

4
  1. v3.9.0最新Oct 29, 2026
  2. v3.8.1Oct 26, 2026
  3. v3.8.0Oct 26, 2026
  4. v3.7.0Oct 13, 2026

評分

已滿足適用檢查項的 80%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。