[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75746":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":15,"starSnapshotCount":15,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},75746,"agent-browser-cli","sleepinginsummer\u002Fagent-browser-cli","sleepinginsummer","使用 agent-browser-cli 进行浏览器感知与控制。适用于标签页扫描\u002F切换、页面 JS 执行、Cookie、CDP、contentSettings、截图、文件上传、下拉框点击、tmwd_cdp_bridge 初始化和 Web 工具排障",null,"Rust",409,53,106,1,0,6,12,267,18,5.2,"MIT License",false,"main",true,[],"2026-06-12 02:03:35","\u003Cdiv align=\"center\">\n\n# agent-browser-cli\n\n面向 Agent 的浏览器感知与控制 CLI，把真实 Chrome 会话变成可复用的标签页扫描、页面 JS、Cookie、CDP 和截图能力。\n\n浏览器感知 · 页面控制 · Chrome 登录态复用 · CDP · 条件等待 · Agent Skill 集成\n\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsleepinginsummer\u002Fagent-browser-cli\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCLI-agentbrowsercli-2ea44f\" alt=\"CLI agentbrowsercli\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsleepinginsummer\u002Fagent-browser-cli\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-green\" alt=\"License MIT\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsleepinginsummer\u002Fagent-browser-cli\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fsys-win%2Fmac%2Flinux-0078D6?labelColor=0078D6&color=C0C0C0\" alt=\"sys win\u002Fmac\u002Flinux\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsleepinginsummer\u002Fagent-browser-cli\u002Freleases\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Frelease-v0.3.4-orange\" alt=\"release v0.3.4\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsleepinginsummer\u002Fagent-browser-cli\u002Fpulls\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen\" alt=\"PRs welcome\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n[AI 一句话安装](#ai-一句话安装) · [手动安装](#手动安装) · [Chrome 扩展](#chrome-扩展) · [更新](#更新) · [更新日志](CHANGELOG.md) · [卸载](#卸载) · [友情链接](#友情链接)\n\n中文 | [English](README_EN.md)\n\n\u003C\u002Fdiv>\n\n`agent-browser-cli` 是一个面向 Agent 的浏览器感知与控制工具。它通过 Chrome 扩展连接用户真实浏览器，保留登录态和 Cookie，提供标签页扫描、页面 JS 执行、Cookie 读取、CDP 控制、截图、文件上传、下拉框点击等能力。\n\n本项目不是 Selenium \u002F Playwright。它更适合在已有浏览器会话中辅助 Agent 精确读取页面和执行操作。\n\n## 项目信息\n\n- 当前版本：`0.3.1-beta.1`\n- 支持平台：Windows（包括 WSL）\u002F Mac \u002F Linux\n- 浏览器：Chrome，需加载拓展 `assets\u002Ftmwd_cdp_bridge`\n- Linux 支持前提：本机 Chrome \u002F Chromium 需要支持安装扩展\n- WSL 支持前提：需使用 `WSL 2.0.0+`，并建议在 Windows `11 22H2+` 下启用 `networkingMode=mirrored`，以便 WSL 连接宿主机 `localhost` 上的 Chrome 桥接服务\n\n## 致谢\n\n本项目的浏览器控制能力提取并改造自 [GenericAgent](https:\u002F\u002Fgithub.com\u002Flsdefine\u002FGenericAgent) 项目中的 Web 工具链，包括 `TMWebDriver`、`simphtml` 和 `tmwd_cdp_bridge` 扩展相关思路与实现。\n\n感谢 GenericAgent 项目提供的浏览器桥接、页面简化、CDP 控制和实践 SOP。本仓库在此基础上做了面向独立使用和 CLI 调用的整理与增强。\n\n## AI 一句话安装\n\n```text\n请阅读 https:\u002F\u002Fgithub.com\u002Fsleepinginsummer\u002Fagent-browser-cli\u002Fblob\u002Fmain\u002FAI_INSTALL.md，按说明安装 CLI、加载 Chrome 扩展，并添加 `skills\u002Fagent-browser-cli\u002FSKILL.md`。\n```\n\n## 改进内容\n\n- 从 GenericAgent 中拆出浏览器控制能力，使用cli 提供给codex、claude code、opencode使用。GenericAgent浏览器插件不需要重新安装，可以共用同一个插件\n- 避免每次命令都重新初始化浏览器连接。\n- 新增启动锁，避免多个 CLI 并发启动时重复绑定底层端口。\n- 增加skill：`skills\u002Fagent-browser-cli\u002FSKILL.md`，提供ai参考使用。\n- 若干优化，缩短命令执行时间\n- rust实现cli端\n\n## 他能做的事情\n\n1. 自动化测试\n   可以复用真实浏览器环境做页面流程验证、表单提交、按钮点击、跳转检查、登录态页面测试。\n2. 前端页面 Debug\n   可以读取 DOM、执行 JS、查看页面状态、截图确认效果，辅助定位前端交互、渲染和数据问题，对接后端接口。\n3. 页面样式调试\n   可以在真实页面里执行 JS 修改 DOM \u002F CSS，临时验证样式、布局和交互效果，但更偏辅助调试，不是完整设计工具。\n4. 网页数据采集\n   可以读取页面内容、表格、列表、Cookie 和接口相关状态，适合处理需要登录态的页面数据提取。\n5. 浏览器操作脚本化\n   可以把打开页面、切换标签页、执行 JS、截图、上传文件等操作串成脚本，做重复性网页任务。\n6. Agent 辅助操作网页后台\n   适合让 AI Agent 操作管理后台、配置页面、低代码平台、表单系统等已有网页工具。\n7. 页面结构分析\n   可以简化 HTML、识别主要内容区和列表结构，帮助 Agent 更快理解复杂页面。\n8. 安全研究和逆向辅助\n   可以在真实浏览器会话里观察页面行为、执行调试脚本、读取前端状态，辅助分析前端逻辑和接口调用。\n\n## 他的能力\n\n1. 扫描当前 Chrome 标签页，获取页面标题、URL 和标签页 ID。\n2. 切换到指定标签页，复用已有页面和登录态。\n3. 打开新标签页，支持直接访问目标 URL。\n4. 在页面中执行 JavaScript，读取 DOM、表单、状态和页面数据。\n5. 读取当前页面 Cookie，方便处理登录态相关任务。\n6. 调用 Chrome CDP 能力，执行更底层的页面控制。\n7. 截取页面截图，用于视觉检查和页面确认。\n8. 上传本地文件到网页文件选择框。\n9. 操作下拉框、按钮、表单等常见页面元素。\n\n## 目录结构\n\n```text\n.\n├── Cargo.toml                    # Rust 工程配置\n├── src\u002F                          # Rust CLI \u002F 常驻服务 \u002F bridge\n├── assets\u002Ftmwd_cdp_bridge\u002F       # Chrome MV3 扩展\n├── assets\u002Fsimphtml_opt.js        # 页面简化脚本\n├── assets\u002Fsimphtml_find_list.js  # 列表识别脚本\n├── npm\u002F                          # npm 启动脚本\n└── skills\u002Fagent-browser-cli\u002F     # skill\n```\n\n## 手动安装\n\n### npm 安装\n\n```bash\nnpm install -g @sleepinsummer\u002Fagent-browser-cli\nagent-browser-cli tabs\n```\n\n### 本地源码构建\n\n```bash\ncargo build --release\n.\u002Ftarget\u002Frelease\u002Fagent-browser-cli tabs\n```\n\n\n## Chrome 扩展\n\n1. 推荐从 [最新 Release](https:\u002F\u002Fgithub.com\u002Fsleepinginsummer\u002Fagent-browser-cli\u002Freleases\u002Flatest) 下载 `chrome-extensions.zip`，下载后解压，Chrome 打开 `chrome:\u002F\u002Fextensions`，开启“开发者模式”，点击“加载已解压的扩展程序”，选择解压后的 `tmwd_cdp_bridge` 目录。\n\n2. 本地源码构建时，也可以直接加载扩展目录：\n\n```text\nassets\u002Ftmwd_cdp_bridge\n```\n\n3. Chrome 需要至少打开一个正常网页标签页，不要只停留在 `about:blank` 或 `chrome:\u002F\u002F` 页面。\n4. 扩展连接后会在页面右侧显示 Chrome 插件提示角标。角标支持拖动位置，鼠标悬浮时展开；10 秒无命令后自动隐藏，也可以点击 `本次隐藏` 手动隐藏，本次服务连接周期内不再显示，约 300 秒服务断开并下次重连后恢复。\n\n###  自定义Chrome插件的ws监听端口\n\n- `18765`：默认插件 WebSocket 端口，Chrome 扩展连接使用，可通过 `agent-browser-cli set-extension-port \u003Cport>` 修改。\n- `18767`：CLI HTTP API 端口，供 CLI 复用会话，不能作为插件端口使用。\n\nCLI 修改插件端口：\n\n```bash\nagent-browser-cli set-extension-port 18766\n```\n\n该命令会写入配置文件；如果 daemon 正在运行，会自动重启 daemon，让新端口立即生效。\n\n也可以手动修改配置文件。配置文件位于 `~\u002F.agent-browser-cli\u002Fconfig.json`，不存在时会自动生成：\n\n```json\n{\n  \"extension_port\": 18765\n}\n```\n\n手动修改示例：\n\n```json\n{\n  \"extension_port\": 18766\n}\n```\n\n手动改配置后需要执行 `agent-browser-cli restart`，daemon 才会按新端口重新监听。\n\nChrome 插件 popup 中也可以修改插件端口并立即重连。插件端口必须和 CLI 配置中的 `extension_port` 一致。\n\n### Profile Label\n\n多 Chrome Profile \u002F 多浏览器实例下，`profile_id` 和 `browser_id` 较长。可以给每个 Chrome Profile 设置短 label，之后用 `--profile \u003Clabel>` 操作。\n\n```bash\nagent-browser-cli lookup tab \u003CtabId>\nagent-browser-cli lookup browser \u003Cbrowser_id>\nagent-browser-cli profile-label set work --profile \u003Cprofile_id>\nagent-browser-cli tabs --profile work\n```\n\n也可以在对应 Chrome Profile 的扩展 popup 中设置 Profile Label。label 只作为别名，内部路由仍使用 `browser_id:profile_id:tab_id`；如果当前 daemon 内 label 匹配到多个 profile，CLI 会报歧义。推荐用 CLI 设置 label，因为 CLI 会校验当前 daemon 内跨 Profile 唯一性；popup 是本地便捷入口，不保证跨 Profile 唯一。`tabtree` 默认截断 URL 并省略 `session_key` 以减少 token，需完整字段时加 `--full`。\n\n\n\n\n### 弹窗抑制\n\n扩展不再默认重写页面的 `alert` \u002F `confirm` \u002F `prompt`。只有 CLI 执行页面脚本命令期间会临时抑制原生弹窗，命令结束后恢复，避免长期污染业务页面全局函数。\n\n## 快速自检\n\n```bash\nagent-browser-cli tabs\nagent-browser-cli open https:\u002F\u002Fwww.baidu.com\n```\n\n成功时会返回：\n\n```json\n{\n  \"ok\": true,\n  \"result\": {\n    \"status\": \"success\",\n    \"metadata\": {\n      \"tabs_count\": 1\n    }\n  }\n}\n```\n\n## 常用命令\n\nREADME 只保留快速入口；完整命令和浏览器操作 SOP 见 [skills\u002Fagent-browser-cli\u002FSKILL.md](.\u002Fskills\u002Fagent-browser-cli\u002FSKILL.md)。\n\n```bash\nagent-browser-cli tabs\nagent-browser-cli tabtree\nagent-browser-cli tabtree --full\nagent-browser-cli tabtree --profile \u003Cprofile_label>\nagent-browser-cli tabtree --tab \u003CtabId>\nagent-browser-cli lookup tab \u003CtabId>\nagent-browser-cli lookup browser \u003Cbrowser_id>\nagent-browser-cli profile-label set work --profile \u003Cprofile_id>\nagent-browser-cli profile-label clear --profile \u003Cprofile_id>\n```\n\n## 更新\n\n完整版本记录见 [CHANGELOG.md](.\u002FCHANGELOG.md)。\n\nai一句话更新\n```text\n请阅读 https:\u002F\u002Fgithub.com\u002Fsleepinginsummer\u002Fagent-browser-cli\u002Fblob\u002Fmain\u002FAI_INSTALL.md，按说明更新 CLI、重新下载插件zip让用户指定位置，用户手动加载 Chrome 扩展，并更新相关 SKILL.md`。\n```\n\n如果 Chrome 扩展有更新，在 `chrome:\u002F\u002Fextensions` 中重新下载zpi覆盖，然后重新加载 `assets\u002Ftmwd_cdp_bridge` 扩展。\n\n\n## 卸载\n\n先停止常驻服务：\n\n```bash\nagent-browser-cli stop\n```\n\n然后按需清理：\n\n```bash\nnpm uninstall -g @sleepinsummer\u002Fagent-browser-cli\nrm -f .agent-browser-cli.log .agent-browser-cli.lock\nrm -rf ~\u002F.agents\u002Fskills\u002Fagent-browser-cli\n```\n\n最后在 Chrome 扩展管理页中移除 `TMWD CDP Bridge` 扩展，或删除已加载的 `assets\u002Ftmwd_cdp_bridge` 扩展配置。\n\n\n\n## 友情链接\n\n- [LINUX DO - 新的理想型社区](https:\u002F\u002Flinux.do\u002F)\n- [GenericAgent--复旦团队研发|仅仅~3K行代码 Self-Evolving Agent](https:\u002F\u002Fgithub.com\u002Flsdefine\u002FGenericAgent\u002Ftree\u002Fmain)\n\n## 许可证\n\nMIT License. See [LICENSE](.\u002FLICENSE).\n","`agent-browser-cli` 是一个使用 Rust 编写的面向 Agent 的浏览器感知与控制工具。它通过 Chrome 扩展连接用户的真实浏览器会话，保留登录态和 Cookie，提供标签页扫描、页面 JS 执行、Cookie 读取、CDP 控制、截图、文件上传、下拉框点击等功能。该工具特别适用于已有浏览器会话中的自动化测试、前端调试、页面样式调试、网页数据采集、脚本化操作以及 AI Agent 辅助操作网页后台等场景。其核心特点是能够复用真实浏览器环境，避免了每次命令都重新初始化浏览器连接的问题，并且支持 Windows、Mac 和 Linux 平台。",2,"2026-06-11 03:53:12","CREATED_QUERY"]