agent-browser-bridge
by LuoWeiway
README.md
# Agent Browser Bridge ð
> 仿ç
§ **OpenAI Codex** æµè§åšæ§å¶æºå¶è®Ÿè®¡ïŒåºäº Chrome Manifest V3 æ©å±äžæ¬å° WebSocket/HTTP 宿€è¿çšæ¡¥æ¥ã
> 让æ¬å°ç»ç«¯ CLI äž **Claude Code (MCP)** 倧暡åèœå€**çŽæ¥æ§å¶å¹¶è¯»åæšåœåæ¥åžžäœ¿çšççå® Chrome æµè§åš**ã
[](LICENSE)
[]()
[]()
---
## ð 䞺ä»ä¹éæ© Agent Browser BridgeïŒ
äŒ ç»èªåšåå·¥å
·ïŒåŠåç PuppeteerãPlaywright æ `--remote-debugging-port=9222`ïŒåšæ¥åžž AI åäœäžæäžå€§ç¡¬äŒ€ïŒ
1. **䞢倱ç»åœæ**ïŒæ¯æ¬¡å·å¯åšéœæ¯å
šæ°çæ ç/é犻ç¯å¢ïŒæ æ³è®¿é®å
¬åžå
çœãçŠ
éãJiraãäŒäžé£ä¹Šãçæ¿çå·²ç»åœç³»ç»ã
2. **区å¶é坿µè§åš**ïŒå¿
é¡»å
å
³ææææ£åšè¿è¡ç Chrome çªå£ïŒäž¥éææå·¥äœæµã
3. **æ¢å€ºçŠç¹äžé¡µé¢èŠç**ïŒäŒ ç»èæ¬äžæŠè·³èœ¬é¡µé¢ïŒäŒçŽæ¥æçšæ·åœåæ£åšé
读æèŸå
¥çå±å¹è§çªèŠçæ¢å ã
### âš æ¬é¡¹ç®çæ žå¿çªç Žäžè®Ÿè®¡å²åŠïŒ
- ð¢ **100% ä¿æçå®ç»åœæ**ïŒæ©å±çŽæ¥å¯å®¿åšæšæ¥åžžäœ¿çšç Chrome äžïŒææ SessionãCookieãå
çœæéå®çŸä¿çã
- ð¢ **æ çŸä»»å¡åç»é犻 (Tab Groups)**ïŒéçšäž Codex äžèŽçè®Ÿè®¡ïŒææ Agent æåŒçæ°é¡µé¢èªåšåœçº³è¿äžå±ç **`[Codex ä»»å¡]`** åç»ïŒå¹¶åšåå°éé»å 蜜ïŒ`active: false`ïŒïŒ**ç»å¯¹äžæ¢å€ºçŠç¹ãç»å¯¹äžèŠçæšåœåæäœç页é¢**ã
- ð¢ **深床 DOM äžè·šå Iframe ç©¿é**ïŒé对çŠ
éïŒZenTao 18+ïŒçå页åµå¥åæ¡æ¶ç³»ç»ïŒäœ¿çš `allFrames: true` éåœæå页é¢å€§çº²ãæ°æ®è¡šæ ŒïŒèªåšèœ¬äžº Markdown è¡šæ ŒïŒãèŸå
¥æ§ä»¶äžæé®ã
- ð¢ **åæš¡äº€äºæ¯æ**ïŒæ¢æ¯æåšç»ç«¯éè¿ CLI åœä»€è¡è°çšïŒåäœäžºæ å **MCP Server** æèœœè³ Claude Codeã
- ð¢ **é¶ç¬¬äžæ¹äŸèµ (Zero-Dependency)**ïŒçº¯åç Node.js å®ç°ïŒæ éè¿è¡åºå€§ç `npm install`ïŒåŒç®±å³çšã
---
## ðïž æ¶æåŸè§£
```text
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â AI 亀äºå± (Claude Code MCP) â ç»ç«¯äº€äºå± (Shell / èæ¬) â
â Tools: browser_read ç â CLI: node server.js read â
ââââââââââââââââ¬ââââââââââââââââââââŽâââââââââââââââ¬âââââââââââââ
â (stdio MCP Protocol) â (Child process / HTTP)
âââââââââââââââââââââ¬âââââââââââââââ
âŒ
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â æ¬å° Bridge æ žå¿å®æ€æå¡ (server.js çå¬ 127.0.0.1:18888) â
â - 纯åç Node.jsïŒé¶ç¬¬äžæ¹äŸèµïŒ â
â - èªåšåå°æèµ·ïŒAuto-spawnïŒæ éæåšåŒçªå£åžžé©»å¯åšïŒ â
ââââââââââââââââââââââââââââââââââââ²ââââââââââââââââââââââââââââ
â (WebSocket ååéé + Offscreen é²äŒç )
ââââââââââââââââââââââââââââââââââââŒââââââââââââââââââââââââââââ
â Chrome MV3 æ©å± (extension/ ç®åœ) â
â - æ çŸä»»å¡åç» (Tab Groups) é犻管ç â
â - æºèœå€çªå£æš¡ç³æ£çŽ¢æå (URL/æ é¢/åè¯å¹é
) â
â - 深床穿éïŒéåœæœåäž»çªå£åææå iframe â
â - çå®äº€äºé©±åšïŒclick(æ¯æCSS/ææ¬)ãfill(äºä»¶æŽŸå)ãæªåŸç â
ââââââââââââââââââââââââââââââââââââ²ââââââââââââââââââââââââââââ
â (å¯å®¿åšçšæ·åžžçš Chrome äž)
ââââââââââââââââââââââââââââââââââââŒââââââââââââââââââââââââââââ
â çšæ·åœå Chrome å®äŸ (å·²ç»åœåç§ç³»ç»ïŒä¿çå
šéš Cookie äžç¶æ) â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
```
---
## ð æç®å®è£
æåïŒ2 æ¥å®æïŒ
### ç¬¬äžæ¥ïŒåš Chrome äžå 蜜æ©å±
1. æåŒ Google ChromeïŒè®¿é®ïŒ
```text
chrome://extensions
```
2. åŒå¯å³äžè§ç **ãåŒåè
æš¡åŒã** åŒå
³ã
3. ç¹å»å·Šäžè§ **ãå 蜜已解åçæ©å±çšåºã**ã
4. éæ©æ¬é¡¹ç®äžç `extension` æä»¶å€¹ïŒ
```text
E:/work/2026v/codex-browser-bridge/extension
```
5. Chrome å·¥å
·æ å°åºç° `Agent Browser Bridge` æ©å±åŸæ ã
---
### ç¬¬äºæ¥ïŒå° MCP Server æèœœè³ Claude CodeïŒå¯éïŒåŒç®±å³çšïŒ
åšç»ç«¯äžæ§è¡ä»¥äžåœä»€ïŒå
šå±çæïŒææé¡¹ç®åå¯äœ¿çšïŒïŒ
```bash
claude mcp add --scope user agent-browser-bridge node "E:/work/2026v/codex-browser-bridge/mcp.js"
```
> åœä»€äŒèªåšå° `agent-browser-bridge` 泚åè¿ `~/.claude.json`ãåç»æ¯æ¬¡æåŒ Claude Code éœäŒèªåšå»ºç«è¿æ¥ã
---
## ð» åœä»€è¡ (CLI) äœ¿çšæå
è¿å
¥é¡¹ç®ç®åœåïŒæå¡åšéŠæ¬¡è°çšæ¶äŒ**èªåšåå°éé»æèµ·**ïŒæ éæåšå¯åšïŒ
```bash
# 1. ååºåœåæææåŒçæ çŸé¡µïŒå
å« Tab IDãæ¿æŽ»ç¶æäž URLïŒ
node server.js list
# 2. æºèœæš¡ç³å¹é
å¹¶æå页é¢å
å®¹ïŒæ¯æ URL å
³é®è¯æäžææ é¢ïŒèŸåºç»æå MarkdownïŒ
node server.js read "çŠ
é"
node server.js read "prd" # å¹é
ååç³»ç»
node server.js read "Jenkins" # å¹é
èªåšåæå»ºé¡µ
node server.js read "" # é»è®€è¯»ååœåæ£æ¿æŽ»ç页é¢
# 3. åšäžå±ãCodex ä»»å¡ãåç»äžæåŒæè·³èœ¬é¡µé¢ïŒåå°é黿åŒïŒäžå¹²æ°åœåè§çªïŒ
node server.js open "http://chandao.jadinec.com:1023/zentao/bug-view-21005.html"
# 4. æš¡æå
çŽ ç¹å»ïŒæ¯æ CSS éæ©åš æ text= ææ¬å¹é
ïŒ
node server.js click "text=ä¿å" "çŠ
é"
node server.js click "#submit-btn"
# 5. 衚åèŸå
¥ïŒèªåšè§Šå React/Vue ç input äž change äºä»¶ïŒ
node server.js fill "#keyword" "æ°Žçš³" "çŠ
é"
# 6. çœé¡µæ»åš (down / up / top / bottom)
node server.js scroll down "çŠ
é"
# 7. æªåçœé¡µè§å£å¿«ç
§ä¿å䞺æ¬å° PNG åŸç
node server.js shot "çŠ
é" ./screenshot.png
# 8. åšç®æ 页é¢äžäžæäžæ§è¡èªå®ä¹ JavaScript
node server.js eval "document.title" "çŠ
é"
# 9. å
³éæå®çæ çŸé¡µ
node server.js close "21005"
# 10. äžé®æž
çå¹¶å
³éææ Agent ä»»å¡åç»äžçåå°äžŽæ¶æ çŸé¡µ
node server.js clean
```
---
## ð€ åš Claude Code äžèªç¶è¯èšäœ¿çš
宿 MCP 泚ååïŒæšæ 鿲任äœåœä»€è¡ïŒçŽæ¥åš Claude å¯¹è¯æ¡äžå©åïŒ
- ð£ïž *âåž®æçäžçŒæåœåæµè§åšæåŒççŠ
é页é¢ïŒæåªäºåŸ
å BugïŒâ*
- ð£ïž *â读åäžäžæ°Žçš³çæ¿åœåå±ç€ºççäº§æ¹æ¬¡æ°æ®â*
- ð£ïž *âåž®æåšæåŒçå·¥å页é¢ç¹å»âå®¡æ žéè¿âæé®ïŒææäœç»ææªäžªåŸç»æâ*
- ð£ïž *âåž®ææ¥äžäžåœåæµè§åšæåŒäºåªäºæ çŸé¡µâ*
- ð£ïž *âæåææåŒç Agent ä»»å¡é¡µé¢å
šéšæž
çå
³éâ*
Claude äŒæºèœè°çšèåçå·¥å
·éïŒ
- `browser_read`ïŒæš¡ç³å®äœå¹¶ç»æåæåçœé¡µæ°æ®ïŒå«å iframeãè¡šæ Œäžå
³é®éŸæ¥ïŒ
- `browser_list_tabs`ïŒè·ååœåæææ çŸé¡µæž
å
- `browser_click`ïŒç¹å»æå®éæ©åšæææ¬æé®ïŒæ¯æ Pointer/Mouse å€åäºä»¶ïŒ
- `browser_fill`ïŒèŸå
¥è¡šåé¡¹ïŒæ·±åºŠéé
React/Vue åæ§ç»ä»¶ïŒ
- `browser_screenshot`ïŒçœé¡µæªåŸåç
- `browser_navigate`ïŒåšäžå±ãAgent ä»»å¡ãåç»äžåå°éé»æåŒæ°éŸæ¥
- `browser_close_tab`ïŒå
³éæå®æ çŸé¡µ
- `browser_clean_group`ïŒäžé®å
³éæž
çææ Agent 任塿 çŸ
- `browser_eval`ïŒæ§è¡é¡µé¢æ§å¶å°èæ¬
---
## ð ïž åžžè§é®é¢ (FAQ)
### 1. æ©å±åŸæ æŸç€ºâðŽ æªè¿æ¥æå¡âïŒ
åªéåšç»ç«¯è¿è¡äžæ¬¡ `node server.js list`ïŒæ¬å°å®æ€è¿çšäŒèªåšåšåå°å¯åšå¹¶çå¬ `127.0.0.1:18888`ãç¶åç¹å»æ©å±åŸæ äžçãð éæ°è¿æ¥ Bridge æå¡ãæé®å³å¯ã
### 2. ä¿®æ¹æ©å±æºç ååŠäœçæïŒ
Chrome äžäŒèªåšçé蜜æ¬å°æªæå
çæ©å±ãè¥ä¿®æ¹äº `extension/` äžçæä»¶ïŒè¯·åš `chrome://extensions` 页é¢ç¹å»è¯¥æ©å±å¡çå³äžè§ç **ãð éæ°å 蜜ã** æé®ã
### 3. äŒæ³é²æç Cookie æéç§æ°æ®åïŒ
æ¬ç³»ç»ç WebSocket äž HTTP API **ä»
çå¬åšæ¬å°åç¯å°å `127.0.0.1:18888`**ïŒæ²¡æä»»äœå€éšæå¡åšæç¬¬äžæ¹æ°æ®æ¶éé»èŸïŒææéä¿¡ååšæšæ¬æºçè¿çšä¹éŽæµèœ¬ïŒå®å
šå¯æ§ã
---
## ð åŒæºè®žå¯è¯
æ¬é¡¹ç®åºäº [MIT License](LICENSE) åè®®åŒæºã
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues