Bundle
dsh-tmwebdriver
DSH profile bundle: control your real, logged-in browser through TMWebDriver (Chrome extension bridge)
- Source
- chen70456-lang
- License
- MIT
- Updated
- Updated 10 days ago
Readme
# dsh-tmwebdriver > **Live demo** — the agent drives your real Chrome: opens Baidu, types a > weather query, and reads the result widget (no headless scraping):  ## The only browser plugin your agent will ever need **One tool, infinite reach.** Most browser plugins hand your agent a fixed list of actions — click, type, navigate, scroll. The moment you need something unlisted, you're stuck. `dsh-tmwebdriver` flips that: `browser_execute_js` runs **arbitrary JavaScript** in your real, logged-in tab. Everything a developer can do in DevTools, your agent can do — with zero plugin updates. > Read pages. Click. Type. Submit forms. Navigate. Screenshot. Read cookies. > Drive CDP. Run any script. **All through one tool.** ## Why not headless? | | Headless Chrome / Playwright | **dsh-tmwebdriver** | |---|---|---| | Fingerprint | ❌ Detected, captcha-blocked | ✅ Your real browser, real fingerprint | | Logins | ❌ Re-login every session | ✅ Your existing sessions just work | | Cookies | ❌ Copy-paste hacks | ✅ Native, in-place | | Bot walls | ❌ Blocked (Baidu, Cloudflare) | ✅ Drives the site as a real user | | Action coverage | ❌ Fixed tool list | ✅ **Unlimited** via `browser_execute_js` | ## What it gives your agent | Tool | What it unlocks | |------|-----------------| | `browser_execute_js` | **The universal key** — arbitrary JS in any tab: read, write, click, fill, navigate, screenshot, cookies, CDP | | `browser_list_tabs` | See every open tab (id, url, title), filtered by URL | | `browser_snapshot` | Read a page's text fast — head+tail retained so you never lose the end | | `browser_type` | Type into any input reliably — React/Vue-aware, form-submit capable | ## Battle-tested on real sites Verified end-to-end (real browser, real sessions): - ✅ **Search engines**: Bing, Baidu, DuckDuckGo — type + submit + read results - ✅ **Heavy JS apps**: GitHub (React), BBC (news) — structured content extracted - ✅ **Long pages**: Wikipedia — head AND tail preserved when truncated - ✅ **Logged-in sessions**: npm — authenticated content read without re-login - ✅ **CDP powers**: screenshots, cookies, tab management, arbitrary commands ## Zero-setup experience ```sh dsh plugin --profile web add dsh-tmwebdriver ``` - **Self-contained**: master + Chrome extension + Python deps all bundled - **Lazy start**: first tool call boots the master automatically - **Self-healing**: missing Python deps install themselves - **Guided setup**: forget the extension? The tool prints install steps with the exact folder path ## Install (3 steps) ### 1. Get the Chrome extension Ships inside the package — npm (`node_modules/dsh-tmwebdriver/assets/tmwd_cdp_bridge/`) or GitHub clone (`assets/tmwd_cdp_bridge/`). ### 2. Install the plugin ```sh dsh plugin --profile web add dsh-tmwebdriver ``` Restart `dsh web`. ### 3. Load the extension once `chrome://extensions` → Developer mode → Load unpacked → pick the folder. Forget it? `browser_list_tabs` reminds you with exact steps. ## Configuration | Field | Default | Description | |-------|---------|-------------| | `linkUrl` | `http://127.0.0.1:18766/link` | TMWebDriver HTTP link endpoint | | `timeoutMs` | `30000` | Per-call cooperative timeout budget | | `snapshotMaxChars` | `8000` | Max characters `browser_snapshot` returns per call | ## License [MIT](LICENSE) ## Credits / Origin This plugin embeds two components from the **GenericAgent** toolchain (https://github.com/lsdefine/GenericAgent), redistributed unmodified under their original terms: | Component | Path | Origin | |-----------|------|--------| | TMWebDriver master | `master/tmwebdriver_master.py` | GenericAgent — TMWebDriver.py | | Chrome extension bridge | `assets/tmwd_cdp_bridge/` | GenericAgent — assets/tmwd_cdp_bridge/ | The DSH plugin glue (`src/index.ts`, `src/tools.ts`, `cordis.patch.yml`) is MIT.
Install
dsh plugin --profile web add github:chen70456-lang/dsh-tmwebdriver#6091ad4b31d55c7401a126c1b1ff576e2be3d16a
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-tmwebdriver from the hub