dsh-iab-arena
v0.1.8
Published
Model Arena flavor of dsh-iab: element picker → chat, user screenshots to shots/
Downloads
1,785
Maintainers
Readme
dsh-iab
Embeds a CDP-driven Chrome IAB (In-App Browser) tab into the DSH better-sidebar.
Architecture
┌─────────────────────────────────────────────────────┐
│ DSH Host (Node.js) │
│ ┌─────────────┐ stdio ┌──────────────────┐ │
│ │ index.mjs │◄════════════►│ sidecar.mjs │ │
│ │ (host half)│ JSON-RPC │ (CDP controller)│ │
│ └──────┬──────┘ └──────┬───────────┘ │
│ │ HTTP /zcode-iab │ CDP WebSocket │
│ │ ▼ │
│ │ ┌──────────────────┐ │
│ │ │ Google Chrome │ │
│ │ │ (--remote-debug) │ │
│ │ └──────────────────┘ │
│─────────┼─────────────────────────────────────────────│
│ DSH Client (Browser) │
│ ┌──────┴──────┐ │
│ │ client.js │─── fetch("/zcode-iab", {POST}) ──┘
│ │ (IAB tab) │
│ └─────────────┘
└─────────────────────────────────────────────────────┘- index.mjs (host half): spawns
lib/sidecar.mjsviachild_process.spawn, communicates over stdio JSON-RPC, exposes HTTP endpoint/zcode-iabviactx.webServer. - client.js (client half): registers a
betterSidebartab, calls the host HTTP endpoint viafetch(). - lib/sidecar.mjs: plain Node script that controls Chrome through CDP (navigate, screenshot, click, scroll, type, snapshot, back, forward, reload).
Features
- Address bar with navigation
- Screenshot display (base64 PNG)
- Click-by-coordinate (toggle click mode, click on screenshot)
- Scroll up/down
- Text input
- Text snapshot (accessibility tree)
- Back / Forward / Reload
Install
dsh plugin --profile web add /home/mario/.ai/.projects/.dsh-plugins/dsh-iabThen refresh the browser. The "ZCode IAB" tab (🌐) appears in the better-sidebar.
Requirements
- Google Chrome at
/usr/bin/google-chrome-stable - User data dir at
~/.dsh/iab-profile(auto-created on first run)
