從任務到完成,更快
Puppeteer 自己的 issue tracker 裡滿是 waitForSelector 逾時的回報,即使元素明明就在 DOM 裡也一樣觸發,得花一整個下午證明這是時機問題,不是你的程式碼寫錯。
ego (lite) 完全跳過等待和輪詢這套流程:頁面一載入,你的 Agent 就把它讀成一份壓縮過的 Snapshot,立刻採取行動,每一輪把好幾個步驟打包成一次 JavaScript 呼叫。累積下來,整項任務完成速度比 Puppeteer 快 3 到 4 倍。
Puppeteer 是一套用來寫腳本操作無頭 Chrome 的 Node.js 函式庫:你得自己寫導覽程式碼、調整選擇器,網站一改版就得修腳本。
ego (lite) 完全跳過腳本這一關。你的 Agent 直接讀取你已登入的 Chrome,自己寫 JavaScript,整項任務完成速度比 Puppeteer 快 3 到 4 倍。
對於單次爬取、填表、測試和後台雜務來說,最花成本的一直是腳本本身:先寫出來,然後每次頁面一變就得修一次。ego (lite) 透過開源的 ego-browser shell,把這些工作交給你已經在用的 Agent(Claude Code、Codex 或 Cursor)處理。
Puppeteer 自己的 issue tracker 裡滿是 waitForSelector 逾時的回報,即使元素明明就在 DOM 裡也一樣觸發,得花一整個下午證明這是時機問題,不是你的程式碼寫錯。
ego (lite) 完全跳過等待和輪詢這套流程:頁面一載入,你的 Agent 就把它讀成一份壓縮過的 Snapshot,立刻採取行動,每一輪把好幾個步驟打包成一次 JavaScript 呼叫。累積下來,整項任務完成速度比 Puppeteer 快 3 到 4 倍。
Puppeteer 開發者一旦跳脫單一腳本的規模,就得學會平行處理意味著自己管理一個池:啟動選項、瀏覽器 context,還要靠 puppeteer-cluster 這類佇列函式庫限制並行數量,免得 Chrome 把你的記憶體全部吃光。
ego (lite) 裡沒有池需要規劃大小。每項任務都有自己的 Space,全都在同一個瀏覽器裡,你想開幾個就開幾個,每個都用各自匯入的 Chrome 設定檔運作。它們都不會碰到你正在用的分頁,而且你隨時能看著任何一個 Space 執行,或直接接手操作。
純粹的 Puppeteer 腳本不花 Token,因為它根本不會呼叫模型。成本是在你透過 MCP 伺服器(比如原始的 Puppeteer MCP 參考實作)把 Puppeteer 包裝給 Agent 用時才會出現的:每個被包裝的動作都變成一次獨立的工具呼叫,得把上下文重新送回模型一次,而且因為沒有無障礙 Snapshot 工具,它只能靠螢幕截圖來檢查自己做得對不對。
ego (lite) 的 Agent 每一輪都用幾行 JavaScript 打包多個動作,再疊加 Snapshot 輸入,同樣的任務整體花費的 Token 少得多,以每項任務計算都是如此。
Puppeteer 每次啟動的都是乾淨空白的 Chrome,沒有 cookie 也沒有任何工作階段,所以只要牽涉到登入,就得自己寫驗證流程的腳本,還得祈禱網站不會對這個陌生的瀏覽器丟出圖形驗證碼或雙重驗證。這道空白設定檔的牆,正是腳本在開發環境跑得動、卻在正式網站失敗的最常見原因。
以 Chromium 為核心打造,ego (lite) 只要一鍵就能匯入你整個 Chrome 設定。你的 Agent 直接繼承你的登入狀態、cookie 和擴充功能,完全不會卡關。

| 功能 | ego lite | Puppeteer |
|---|---|---|
| 工作是怎麼完成的 | 描述任務,你的 Agent 來操作瀏覽器 | 撰寫並維護 Node.js 腳本 |
| 如何應對頁面變動 | Agent 重新讀取 Snapshot 並自行調整 | 選擇器一壞就得自己修腳本 |
| 已登入的網站(SSO、2FA) | 直接沿用你真實的 Chrome 個人檔案與登入狀態 | 空白設定檔,得自己寫登入腳本、匯出 cookie |
| 設定 | 安裝應用程式,在你的 AI Agent 中執行 /ego-browser | Node 專案、npm install、啟動設定 |
| 平行任務 | Space 讓每項任務在同一個瀏覽器裡彼此隔離,不用規劃池的大小 | 自己管理瀏覽器池、context 和記憶體 |
| 與 AI Agent 協作 | 專為它們打造:透過 ego-browser 支援 Claude Code、Codex、Cursor | 並非原生支援,得靠 MCP 包裝層或自訂膠水程式碼 |
| 日常使用的瀏覽器 | 支援:人類和 Agent 共用同一個瀏覽器,各自有獨立 Space | 不是,這是一款無頭自動化工具 |
| 最適合 CI 測試套件 | 不是:是互動式的 Agent 任務,不是版本控管的測試程式碼 | 是:結果可預期、可寫成腳本,適合 CI |
| 可重複使用的 skills(即將推出) | 將成功的執行過程萃取成可重複使用的 skills;隨著 AI Agent 重複執行,複雜任務最多可加快 5 倍(限量 beta) | 沒有內建的對應功能 |
| 價格 | 免費,無需訂閱 | 免費、開源 |
你不用把 Puppeteer 腳本搬到 ego (lite) 上,而是直接不寫腳本了。把你原本寫成腳本的任務,或是根本放棄寫腳本的任務,都交給你的 Agent 處理。
下載 ego (lite),匯入你的 Chrome 設定檔。那些你的腳本永遠過不去的登入關卡,也會一併帶過來。
貼到你的 Agent 裡
/ego-browser 打開 ego.app,檢查頁面有沒有主控台錯誤
在 Claude Code、Codex 或 Cursor 中執行 /ego-browser。

挑一個你平常會寫腳本處理的任務,比如爬取一個列表頁或填寫後台表單,用一句話描述給 Agent 聽就好。
在腳本真正佔優勢的場合繼續用 Puppeteer:結果可預期的 CI 套件和高流量的排程工作。ego (lite) 則負責那些互動式、每週都在變化的瀏覽器工作。
免費,在你的 Mac 上執行,一鍵匯入你的 Chrome 個人設定檔。適用於 Claude Code、Codex、Cursor,以及任何會寫程式碼的 CLI AI Agent。
還在比較各種選項?看看 Puppeteer 跟同類其他工具比起來表現如何。
Puppeteer 是 Chrome 團隊推出的 Node.js 自動化函式庫,透過 DevTools Protocol 和 WebDriver BiDi 控制 Chrome 與 Firefox。它成熟、速度快、免費,是開發者寫 Chrome 專用爬蟲、產生 PDF、跑無頭測試的常見選擇,儘管 Playwright 在整體測試框架採用率上已經領先。它自己的 issue tracker 記錄了大量 waitForSelector 在導覽和重新連線時的不穩定情況,團隊規模一大,最後都得手動管理瀏覽器池、context 和記憶體,但對於手動調校、版本控管、跑在 CI 裡的自動化程式碼來說,Puppeteer 依然表現優異。下面的比較,談的是當操作瀏覽器的是 AI Agent 而不是腳本時,會發生什麼變化。
對於由 AI Agent 驅動的瀏覽器工作來說,答案是肯定的:它完全去除了腳本這一層,直接在你真實已登入的 Chrome 中執行任務,是少數幾個真正為 Agent 打造,而不是要你寫更多腳本的 Puppeteer 替代方案之一。至於版本控管、結果可預期、跑在 CI 裡的自動化程式碼,Puppeteer 依然是比較好的工具。許多開發者兩者都用:Puppeteer 負責 pipeline,ego (lite) 負責那些他們一直沒空寫成腳本的工作。
這三者都是以腳本為主的自動化函式庫,playwright vs puppeteer 或 puppeteer vs selenium 該選哪個,通常取決於你在測試什麼、用什麼語言。如果你只鎖定 Chrome、用 Node,又想要一個精簡的 DevTools 層級 API,Puppeteer 會勝出。對於全新的測試套件,Playwright 通常領先:跨瀏覽器覆蓋、自動等待,還有更強大的測試執行器。Selenium vs Puppeteer 則比較接近,selenium 和 puppeteer 哪個比較好,通常取決於語言和 CI 設定,而不是純粹的能力高低:Selenium 的優勢在於 W3C WebDriver 標準,以及最廣泛的語言和舊版瀏覽器支援,代價是要寫更多樣板程式碼。ego (lite) 完全不參與這場辯論,因為它是一款 Agent 瀏覽器,讓 AI Agent 親自操作瀏覽器,而不是這三者中的任何一個去寫腳本。這些比較可以參考我們的 ego (lite) vs Playwright 和 ego (lite) vs Selenium 頁面。
圍繞 Puppeteer 打造的 MCP 包裝層能讓 Agent 存取瀏覽器,但每個動作都得經過模型來回一次工具呼叫,底層的瀏覽器骨子裡還是一個空白設定檔。ego (lite) 用 JavaScript 打包多個動作,並直接繼承你真實的登入狀態,所以每項任務的 Token 成本能維持在低點,Agent 也不會撞上包裝層過不去的 SSO 高牆。
選擇器綁死在頁面精確的標記結構上:class 名稱、DOM 順序、ARIA 結構。目標網站一改版、跑 A/B 測試、或升級框架,都會改變這些標記,你的 waitForSelector 呼叫就開始逾時,而且往往是斷斷續續地發生,這正是 Puppeteer 自己的 tracker 上一再被回報的不穩定情況。ego (lite) 的 Agent 完全不依賴固定選擇器,它每次都把目前的頁面讀成一份 Snapshot,判斷實際上有什麼內容,所以網站改版對它來說只是下次執行時要適應的變化,而不是會弄壞腳本的問題。
不需要。把 Puppeteer 擴展到超過單一腳本的規模,通常得自己架設一個池(puppeteer-cluster、generic-pool,或自己寫的佇列),在 Chrome 記憶體用量失控之前限制並行數量。ego (lite) 的 Space 都在你原本就已經開著的同一個瀏覽器程序裡執行,所以同時跑五項任務,並不代表要顧著五個瀏覽器執行個體。
可以。任何會寫程式碼的 CLI Agent,都能透過採 MIT 授權的 ego-browser shell 接入:Claude Code、Codex、Cursor、Gemini CLI、OpenCode,以及你自己開發的內部 Agent。
是的。免費,不用訂閱,而且 ego-browser shell 是開源的。