ego lite 是可由外部 coding agent 控制的 Chromium-based macOS 瀏覽器。每個 agent task 在獨立 Space 執行,並可重用使用者的登入狀態;ego-browser skill 以 Node.js runtime 暴露 page、browser 與 taskSpaces 介面。
ego lite 提供人類使用者與 AI agent 共用的 Chromium-based browser。人類維持自己的 tabs;agent task 在隔離 Space 中執行,並可沿用使用者已存在的 login state。
ego-browser 是 agent 與 browser 之間的 skill/runtime 層。它預載 Playwright-style 的 page、page.locator(...)、browser 與 taskSpaces,並提供 fetch 與 cdp escape hatch。
Repository 內容採 MIT License;ego lite browser 本身是另外下載的免費 app。官方 README 目前將 Windows 與 Linux 列在 roadmap。
只安裝 ego-browser skill 時,使用 README 提供的 skills CLI 指令。第一次執行 browser task 時,skill 會引導安裝 ego lite app。
也可把 repository URL 與官方 install reference 路徑交給 agent。Agent 會執行 macOS 安裝 script,開啟 app 後等待使用者完成 onboarding。
command -v ego-browser;通過條件是 shell 可找到指令,且最小 Node.js heredoc 能輸出結果。
ego-browser nodejs 會預載 browser automation facade。單一 Bash invocation 內完成可預測的 observation、action、wait、extraction 與 verification;task 完成則使用獨立 invocation 提交 lifecycle。
@N reference map。targetId。targetId,再讀取 URL 與頁面狀態。fetch.server 由 Node 發送;fetch.browser 使用目前頁面 origin。done 後回報。| 頁面狀態 | 起始路徑 | 驗證方式 |
|---|---|---|
| 一般 DOM 與可存取控制 | snapshot + semantic locator |
讀回 URL、文字或 control state |
| Canvas、地圖或 AX-poor UI | screenshot + mouse / keyboard |
新 screenshot 或 export/readback |
| 大量元素或資料抽取 | locator.evaluateAll |
結構化結果與 bounded count |
| facade 未涵蓋的 browser protocol | cdp |
目標 postcondition |
下列規則整理自 repository 內的 skills/ego-browser/SKILL.md。目標是減少跨 command 狀態遺失,並以頁面 postcondition 而不是 action 本身判定完成。
在 heredoc 內編排 observation、action、wait、extraction 與 verification;只在外部控制或 process failure 時開新回合。
來源 · ego-browser/SKILL.md若穩定 URL 已直接編碼目標條件,可直接開啟並驗證;使用者要求測試互動時才操作頁面控制。
來源 · ego-browser/SKILL.md先做最小讀取確認現況;值已正確時不開啟 editor,也不重複執行等價 action。
來源 · ego-browser/SKILL.md先建立 response、request 或 navigation promise,再 click 或 submit;timeout 後立即檢查所需狀態。
來源 · ego-browser/SKILL.md結構未知時一次收集 controls 或 candidates,再在 JavaScript 內選擇;避免跨 command 猜測 selector。
來源 · ego-browser/SKILL.md用觀察結果更換策略;不要重複近似 locator 或 command。
來源 · ego-browser/SKILL.mduseOrCreate 後保存 task id;後續必要 command 使用相同 id 或精確相同名稱。
每次需要切換或關閉 tab 時重新呼叫 browser.listTabs(),並驗證搜尋結果存在。
登入、captcha 或 user-owned Space 是 hard stop。呼叫 handOff 後等待使用者明確確認,再接回控制。
先輸出全部 browser 證據;確認 postcondition 後再以無 page action 的 final invocation 呼叫 complete。
下列示例依官方 composite pattern 組成 browser task。Agent 在同一 heredoc 內建立 Space、開頁、填寫欄位、預先註冊 response wait,最後讀回可觀察結果。
第一個 invocation 完成 browser observation、action 與 verification,並輸出 task id 與證據。若結果不完整,繼續使用原 task Space 修正。
第二個 invocation 只呼叫 taskSpaces.complete(...),不再操作 page 或 browser。done 為 true 後才能把 task lifecycle 視為完成。
npx skills add 可先安裝 skill;browser task 仍需要 ego lite app 與完成 onboarding。
@N reference 不是持久 handle。每次 snapshot 都會重建 ref map;command 結束後重新 snapshot,或改用穩定 locator。
waitForURL、waitForLoadState 與 locator wait 後必須檢查回傳值或直接驗證目標狀態。
熟悉單一頁面的 semantic route 後,再處理多 tab、iframe、visual fallback、人工 handoff 與 reusable learnings。每個擴充仍使用一個原始 task id,並保留明確完成證據。
1. 建立 composite script。把可預測的抽取、選擇、navigation、wait 與 verification 放入同一 heredoc。
2. 管理多 tab。以 browser.listTabs() 找到目前 target,再於同一 invocation 切換、驗證與清理。
3. 加入 visual route。AX tree 無法表達 canvas 或虛擬化介面時,先 screenshot,再以 mouse/keyboard 操作並讀回結果。
4. 設計人工 handoff。登入或 captcha 前完成安全準備,呼叫 taskSpaces.handOff,並在使用者確認後恢復原 Space。
5. 保存 reusable learning。依 skill 的 learnings 結構保存已驗證的 site-specific route,避免把暫時 selector 當成持久契約。
① README.md:產品定位、macOS quick start、Spaces 與官方比較。
② skills/ego-browser/SKILL.md:runtime map、execution rules 與 task lifecycle。
③ references/install.md:app 安裝、onboarding 與 PATH 驗證。