Back to plugins
dsh-browser Cover

dsh-browser

DSH self-contained browser runtime: bundles Playwright, exposes a browser service and 9 interactive tools

github.com/anweat/dsh-browser
28 MIT Author anweat Updated

Install

dsh plugin --profile web add @anweat/dsh-browser

dsh-browser

A real browser inside DSH: Playwright ships with the plugin, and one inject: ['browser'] line hands any plugin a working browser backend.

What problem it solves

Giving a DSH agent a real browser usually means installing Playwright globally — environments, versions, and the browser kernel all need manual care. This plugin bundles Playwright (chromium) and OpenCLI as its own npm dependencies (plugin-local first, global reuse as fallback) and exposes a browser service plus 9 interactive browser tools, collapsing that whole pipeline into an injectable dependency.

The chromium kernel always reuses the shared cache (~400MB %LOCALAPPDATA%\ms-playwright) — it is never bundled into the plugin or re-downloaded, and browser_install fills it in one step if missing. Point storageStatePath at a login-state JSON and you can scrape authenticated pages under your logged-in identity.

Key features

  • 9 browser tools: browser_open, browser_click (CSS selector), browser_type, browser_scroll (triggers lazy loading), browser_read, browser_screenshot, browser_close, browser_status, and browser_install
  • Injectable browser service: any plugin can consume it via inject: ['browser'] — no shared type package needed
  • Chromium kernel reuse: shared cache, no duplicate downloads; browser_install tops it up when missing
  • Login-state reuse: storageStatePath points to a Playwright storageState JSON to reuse logged-in sessions
  • Configurable: channel (chromium / system Edge), headless, opencliEnabled, autoInstall, and more via cordis.yml
  • A base for composite plugins: dsh-web-search-pro injects browser to drive its playwright / opencli backends, dropping the global-CLI dependency

Quick start

Install, then restart dsh web (the web profile has HMR off):

dsh plugin --profile web add @anweat/dsh-browser
dsh --profile web

Then just ask the agent to open a page, click, or screenshot. If browser_status reports a missing kernel, run browser_install once. For authenticated pages, generate a login state with npx playwright codegen --save-storage=storageState.json and set the result path as storageStatePath.

Who it is for

  • Users who want their agent to browse, scrape, and automate web pages
  • Authors of composite plugins (e.g. dsh-web-search-pro) that need a browser backend
  • Anyone who would rather have a self-contained plugin than a hand-maintained global Playwright setup
Tags Tools DevTools

Compiled from the project README · All rights belong to the original author

Report issue / Request removal

Related plugins