편집자 노트

浏览器插件

A DeepSeek Harness community plugin that drives a headless browser with Playwright. It registers six model-callable tools that let the model read JavaScript-rendered pages, take screenshots, and automate page interactions — the capabilities the built-in web fetch (plain HTTP) cannot provide.

이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.

업스트림에서 중국어 README를 제공하지 않아 저장소 원본 내용을 표시합니다.

dsh-plugin-browser

A DeepSeek Harness community plugin that drives a headless browser with Playwright. It registers six model-callable tools that let the model read JavaScript-rendered pages, take screenshots, and automate page interactions — the capabilities the built-in web_fetch (plain HTTP) cannot provide.

Tools

ToolWhat it does
browser_navigate(url)Open a URL, wait for load, return rendered title, body text, and links
browser_snapshot()Return the current page's rendered text (use between automation steps)
browser_click(selector)Click an element (any Playwright CSS selector)
browser_type(selector, text)Fill a text input
browser_screenshot(path?)Save a viewport PNG; defaults to browser-<timestamp>.png in screenshotDir
browser_close()Close the current browser session and release resources

Each agent gets its own isolated browser session; calls without an agent share a default session. Sessions start lazily on first use and close when the plugin unloads.

Install

The plugin uses Playwright's bundled chromium by default. First-time setup installs the browser binary:

dsh plugin --profile demo add github:you/dsh-plugin-browser
npx playwright install chromium   # from the profile directory

Then boot and ask the model, for example: "Open https://example.com and tell me what's on the page." The model calls browser_navigate and receives the rendered text.

Configure

Override the row in the profile's cordis.patch.yml:

- id: browser
  name: dsh-plugin-browser
  config:
    timeoutMs: 30000      # navigation/click/type timeout
    maxTextChars: 20000   # cap on extracted body text per snapshot
    maxLinks: 20          # cap on links listed per snapshot
    screenshotDir: .      # default directory for screenshots
    executablePath: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

executablePath points at a system browser instead of Playwright's bundled chromium — useful when you do not want the browser download.

Development

pnpm install
pnpm run typecheck
pnpm run build     # emits lib/index.js and lib/index.d.ts
pnpm run test

The test suite boots a local HTTP server and drives the system Chrome (skipped when Chrome is absent), so it needs no browser download and no real network. With Playwright's bundled chromium instead, install it once: npx playwright install chromium.

Structure

browser/
├── package.json       # bundle manifest (dsh.bundle), scripts, deps
├── cordis.patch.yml   # the configuration layer the bundle inserts
├── src/index.ts       # plugin: name / inject / Config / apply
├── src/session.ts     # headless session + per-agent session manager
├── src/tools.ts       # the six tool definitions
├── tests/browser.spec.ts
├── tsconfig.json
└── vitest.config.ts

License

MIT

REPOSITORY SIGNALS

보안 및 설치 증거

이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.

출처 추적 가능

공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.

라이선스

저장소가 MIT 라이선스를 선언했습니다.

유지보수 활동

최근 180일 내 코드 업데이트가 있습니다.

설치 증거

재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.

설치 라이프사이클 스크립트

검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.