ego-browser
Curated pickfisfzy/ego-browser
Drive ego-lite Chromium via 13 ego_* tools (semantic snapshot, click, fill, screenshot, CDP, task-space isolation) with a realtime observation overlay.
20
stars
3
forks
2026-08-07
Created
2026-08-17
Last push
README
ego-browser — 看得见的 Agent 浏览器
<p align="center"> <a href="https://dshfind.com/zh/plugins/Fisfzy/ego-browser?ref=badge"><img src="https://dshfind.com/api/badge/Fisfzy/ego-browser?lang=zh" alt="dshfind - ego-browser"></a> <a href="https://dshfind.com/zh/plugins/Fisfzy/ego-browser"><img src="https://dshfind.com/api/card/Fisfzy/ego-browser?lang=zh" alt="ego-browser card"></a> </p>
仓库:
github.com/Fisfzy/ego-browser(私有 · 内测)|版本历史见 CHANGELOG.md|详情页:dshfind
⚠️ 发布说明:本插件用于 DeepSeek Harness 生态,已在 dshfind 公开展示。仓库保持维护状态,不发布到 npm / 公共 registry;如需转载本仓库内容请注明出处,不要创建用于分发的公开 fork / 镜像。
把 CitroLabs/ego-lite(给 AI Agent 用的 Chromium)接入 DeepSeek Harness:以 32 个结构化 ego_* 工具驱动浏览器,并配一套实时观察前端口——agent 后台操作网页时,你能像看直播一样看到它正在浏览的每个页面,还能直接操作它。
一点私藏的独特之处(self-observation):agent 用的就是这一个 Chromium——连它操作 DSH 自身(管理会话、任务看板、调设置)时,观察窗也实时显示、你能随时接手。不只是"看得见 agent 在网页上干活",连 agent 操作 DSH 界面本身都是全程可见、可掌控的。
开箱即用:插件包内置 ego 运行时(runtime/,MIT,见 THIRD_PARTY_NOTICES.md)——无需克隆官方仓库、无需手动构建,--no-sandbox wrapper 随包自带,root / Docker / 无显示器一键跑。
我们的真正优势(不是口号,是能对照代码和竞品核实的能力)
同样把 ego-lite 接进 DSH,市面上已有同类插件用它只做了 3 个工具——一个 run 脚本、一个 help 指南、一个 status 体检,浏览器仍是后台黑盒。ego-browser 走的是另一条路:把黑盒打开,并且一上来就把"看"和"控"的能力做到位。
| 能力 | ego-browser(本仓库) | 同类插件(Da1dr1em/dsh-ego-browser) |
|---|---|---|
| 结构化工具数 | 32 个,职责单一、可确定性调用 | 3 个(run/help/status) |
| 实时观察窗(SSE screencast 推流 + 标签条 + 历史抽屉) | ✅ 有 | ❌ 无 |
| 监控窗鼠标直接操作真实浏览器(点击/拖拽/滚动回传 CDP) | ✅ 有 | ❌ 无 |
| worker 单实例守卫 + 崩溃/重复自愈 | ✅ 有 | ❌ 无 |
下载捕获 ego_download / 人机验证检测 ego_captcha/ego_page_info |
✅ 有 | ❌ 无 |
平台自适应(Linux/macOS/Windows 自动探测 + root/无头/--no-sandbox 兜底) |
✅ 全平台 | 仅 Windows 预览宿主,需手动配 |
登录态落盘持久化 ego_auth_flush |
✅ 有 | ⚠️ 仅文档级说明 |
关键差异两条:
- 看得到:别家是"跑完告诉你结果"的黑盒;我们实时推流,你看着 agent 操作,卡在验证码/走岔立刻发现。
- 控得住:别家只读;我们监控窗直接驱动同一个 agent 浏览器,需要时你亲手接管(缩放/拖拽/点击),不必打断 agent 重来。
以上对比基于公开可见的可核实事实:本仓库代码(
bin/ego-cast-worker.mjs实时推流 + CDP 输入回传、lib/index.js32 个注册工具、lib/cast-server.jshost 桥接)与同类插件的源码/README。此文档不含对任何他人的贬低——我们只陈述自己多实现并验证了哪些能力。
相对 ego-lite 本体,我们多做了这些(都可对照本仓库代码核实):
| 能力 | 说明(对应代码) |
|---|---|
| 观察窗前端口 | ego-lite 本体是无头 CLI(只有 heredoc 脚本 + 文本输出);我们在其上加了 SSE 实时推流 + 标签条 + 历史抽屉 + 监控窗鼠标直操(bin/ego-cast-worker.mjs、lib/cast-server.js、lib/client.js),让"看"和"控"成为一等能力 |
| 开箱即用 + 跨平台自足 | resolveEgoEnv 自动探测 Chrome/Edge/Brave,内置 --no-sandbox wrapper,root / Docker / 无显示器免配置(lib/index.js);不必像官方那样先装一个 GUI 宿主 |
| 健壮性层 | 冷启动自动重试(只重试 CDP 瞬态,不吞真错)、worker 单实例守卫 + 崩溃自动重启、插件卸载 fire-and-forget 不阻塞宿主退出、前端帧缓存上限(withWarmupRetry / makeEnsureWorker / frameCache) |
| 运维型工具 | ego_doctor(环境体检)、ego_captcha(人机验证探测)、ego_auth_flush(登录落盘)、ego_http(浏览器上下文请求)等,是原生 CLI helper 没有的一层 |
| self-observation | agent 操作 DSH 自身界面时同样实时可见、可接手 |
我们不声称媲美官方 macOS App 的内核级快照或原生多窗口体验;本仓库解决的是"把同一套浏览器能力带进 DSH + Linux/WSL + 看得见"这件事。
它解决什么问题
通用浏览器不是为 agent 设计的,而 Web 上大量交互(登录态、验证码、动态渲染、表单、需真人会话的站点)只有真浏览器能面对——这正是 ego 系 "让 agent 用你已登录的浏览器,而不打扰你"(官网)的由来。
ego-browser 把它接进 DSH,并把最痛的一点——你看不见 agent 在干什么、也插不上手——用一套观察窗解决:
🌐 小球一点看直播;🟦 标签条切换/关闭;🕘 历史抽屉回看;🔍 缩放拖拽;🖱️ 监控窗直接接管真实浏览器。一句话:让 agent 在浏览器里干活,你在旁边既看得见、又随时能接手。
几个常见的上手场景
- 文献 / 数据抓取:让 agent 登录知网 / 谷歌学术翻页收集,你在观察窗看着它滚动、点下一页、下载 PDF,中途卡住立刻能发现。
- 表单与登录:agent 填表到一半,观察窗弹出验证码——你直接接管把验证码点了,再交还给 agent 继续。
- QA / 冒烟测试:让 agent 在自己产品上点一圈,观察窗等于一台"会说话的录屏",顺手还能回看历史轨迹。
- 看 agent 操作 DSH 自身(self-observation):agent 在管理会话 / 调设置时,观察窗同样全程可见、可接手。
✨ 近期亮点
- v0.7.0:观察窗状态灯干活常绿、空闲呼吸;
ego_script每次运行超时timeoutMs真正生效;前端frameCache/pageMeta按标签清理 + 上限兜底,杜绝长会话内存增长;状态路径家目录回退改os.homedir()跨平台化;新增.gitattributes统一 LF 换行。 - v0.6.1:卸载不再阻塞宿主退出(自愈链路稳定);观察窗 worker 单实例守卫 + stale 状态清理;登录/人机验证引导条可关闭且互斥;观察窗主动跟随 agent 正在操作的页面(不再被后台重绘页抢占视图)。
- v0.6.0:工程收敛——
lib/定为唯一源,build改语法校验,杜绝"一构建全回归"。 - v0.5.0:实时 SSE 推流 + 监控窗直接操作 agent 浏览器。
- v0.4.0:Windows 适配。
- 完整历史见 CHANGELOG.md。
前置条件
| 要求 | 说明 |
|---|---|
| Node ≥ 22 | harness 环境自带 |
| 任意 Chrome / Chromium / Brave / Edge | 自动发现,或 EGO_LINUX_CHROME 指定;root 下用自带 wrapper |
| DSH + dshx | 插件装载机制 |
| 带图形界面的 DSH Web(观察窗) | headless 会话仍可用 ego_* 工具,仅无观察窗 |
安装
dshx install ego-browser <ego-browser.tgz> # tarball 或 git URL 均可
dshx list # 应显示:[on] ego-browser
可选配置(~/.dsh/config.yaml 该插件条目下):egoBin、defaultSpace、maxOutputBytes、graceMs。
无需宿主侧任何配置:resolveEgoEnv 自动探测 root / 无显示器并兜底。观察窗 host 路由(/api/ego/spaces 等)仅在有 HTTP server 时注册,headless 是安全 no-op。
工具清单(32 个,前缀 ego_,完整索引见 ego_help)
| 类别 | 工具 |
|---|---|
| 任务空间 | ego_space_open ego_space_close ego_status |
| 页面读取 | ego_snapshot(语义树) ego_page_info ego_read_element |
| 导航/等待 | ego_navigate(复用 tab) ego_wait ego_wait_for_selector ego_wait_for_url ego_wait_for_response |
| 交互 | ego_click ego_fill ego_hover ego_drag ego_select ego_check ego_key ego_scroll |
| 执行/调试 | ego_js(页面求值) ego_cdp(原始 CDP) ego_cli(任意 heredoc) ego_script(多步脚本) |
| 输出 | ego_screenshot ego_download ego_upload |
| 会话/安全 | ego_auth_flush(登录落盘) ego_captcha ego_dialog |
| 元工具 | ego_help ego_doctor ego_http |
观察窗怎么用
右下角 🌐 常驻小球 → 点开:
- 主画面:agent 当前页面实况;滚轮缩放、按住拖动、双击复位;Ctrl+滚轮缩放视图、Ctrl+拖动平移(v0.5.0)。
- 标签页条:顶部横排,点选切换,
×关闭。 - 历史抽屉(🕘):按时间回看访问轨迹。
- 操作时下方网址行就地显示提示,2 秒后恢复。
登录态说明:多任务空间 Cookie 相互隔离,请在对应空间内登录。重启 DSH 后运行期登录态被清空(Chrome 运行期 Cookie 仅优雅关闭时落盘),需重登——扫码很快。
工作原理
- 工具层:每个工具把参数拼成 JS 脚本,经
ctx.subprocess用ego-browser nodejs喂给 stdin 运行,宿主经 CDP 驱动共享 Chromium。结果以@@DSH_RESULT@@哨兵行解析。所有ego_*经进程内互斥锁串行化,错误统一归一。 - 观察窗(三层):
lib/client.js(前端)+lib/cast-server.js(host 路由转发,懒启动、崩溃自动重启)+bin/ego-cast-worker.mjs(attach 到 agent 正在用的浏览器,推实时帧)。worker 只读/见控,绝不动宿主环境。
开发
npm run build # node --check lib/*.js(lib/ 为唯一权威源,不复编译覆盖)
直接改
lib/(lib/index.js工具层、lib/client.js前端、bin/ego-cast-worker.mjsworker)。新工具在registerActionTools按t({...})加,并在ego_help索引补一条。
node_modules/ 仅含指向 DSH checkout 的符号链接(编译期类型解析);运行时由 harness 解析 @deepseek-ai/dsh-tools。
已知限制(诚实说明)
- Windows:插件层已做 v0.4.0 适配;底层 ego-lite 宿主仍是非 Windows 官方支持的社区移植,复杂多步流程稳定性可能弱于 macOS。
- 快照质量:Linux 用 CDP
DOMSnapshot重建语义树,非 macOS 内核级,复杂 iframe/画布场景可能降级。 - 宿主可靠性(Linux):未合并的社区 PR,跨 CLI 调用间可能丢 tab/空间状态;插件已内置防御,简单流程稳定,复杂流程可能需重试。
- 登录态持久化:Chrome 运行期 Cookie 仅优雅关闭时落盘,强杀重启需重登。
- 输出 schema 为宽松
additionalProperties: true,客户端以实际返回值为准。
许可与署名
插件本体 MIT。内置运行时嵌入 CitroLabs/ego-lite 的 MIT 代码(含 PR #234 的 Linux 移植)及一处本地代理补丁——详见 THIRD_PARTY_NOTICES.md。
友链
同为 DeepSeek Harness 插件生态的作品,互相安利:
<p align="center"> <a href="https://dshfind.com/zh/plugins/Nagi-ovo/dsh-ads?ref=badge"><img src="https://dshfind.com/api/badge/Nagi-ovo/dsh-ads?lang=zh" alt="dshfind - dsh-ads"></a> <a href="https://dshfind.com/zh/plugins/Nagi-ovo/dsh-ads"><img src="https://dshfind.com/api/card/Nagi-ovo/dsh-ads?lang=zh" alt="dsh-ads card"></a> </p>
More in Knowledge & Research
dsh-browser
by lum1104
让 DSH 读取/点击/填表/滚动/导航当前 Chrome 标签页(文本优先,保留登录态)
modsearch
by liustack
Web/X 搜索与抓取桥:为纯文本 coding agent 提供结构化 JSON 证据(search/fetch/citations),引擎可选 Antigravity CLI(免 key)/带 key 引擎/X(Grok Build 登录态)。
argo
by taxueseek
给 Agent 用的统一搜索与证据核验:120+ 引擎、多语言路由、影视/体育/金融垂直源、双层缓存、10 个 MCP 工具
dsh-chat-import
by nwflower
从 Claude Code/Codex/ChatGPT/Cursor/Gemini/Reasonix 导入历史会话为 DSH 可续接会话(import_claude 等 6 工具 + 目录批量导入)
