DeepSHPlugins
dsh-webbridge 專案預覽
GITHUB / COMMUNITY PROJECT

dsh-webbridge

工具與整合JavaScriptBSD-3-Clause

DSH 宿主外掛:把 Kimi WebBridge 的本地守護程序橋接成 11 個 webbridge_* 模型工具,讓模型操作你自己的真實瀏覽器——導航、快照、點選、填寫、求值、截圖、網路檢查、標籤頁管理,保留登入態與 Cookie,不使用無頭瀏覽器。

4 Starsbill9109 更新時間 2026-08-26
訪問 GitHub 倉庫
dsh-webbridge 專案預覽

專案介紹

中文

DSH 宿主外掛:把 Kimi WebBridge 的本地守護程序橋接成 11 個 webbridge_* 模型工具,讓模型操作你自己的真實瀏覽器——導航、快照、點選、填寫、求值、截圖、網路檢查、標籤頁管理,保留登入態與 Cookie,不使用無頭瀏覽器。

English

A DSH host plugin bridging the Kimi WebBridge local daemon into 11 webbridge_* model tools — drive your own real browser: navigate, snapshot, click, fill, evaluate, screenshot, inspect the network, manage tabs; logins and cookies preserved, no headless browser.

專案資訊與收錄訊號

快照 2026-09-11
作者 / 組織
bill9109
倉庫
bill9109/dsh-webbridge
GitHub Stars
4
Forks
0
開發語言
JavaScript
許可證
BSD-3-Clause
最近推送
2026-08-26
Manifest
資料中檢測到宣告

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

63/ 100
維護活躍
90
文件與實用資訊
100
生態關注度
20
安裝便捷訊號
100
專案宣告訊號
100

近 16 天仍在更新;README 含完整安裝與使用說明;關注度尚低(4)。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

dsh plugin add github:bill9109/dsh-webbridge

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

dsh-webbridge — Model tools that drive your REAL browser via Kimi WebBridge

Release v0.0.3 License: BSD-3-Clause Node.js DSH profiles

Install: dsh plugin --profile web add github:omdsh-dev/dsh-webbridge

A DeepSeek Harness host plugin: it bridges Kimi WebBridge's local daemon into eleven webbridge_* model tools, so the model operates your own browser — logins, cookies, and already-open tabs included — instead of a headless one.

English | 中文

Why this exists

When a model task has to touch a real website — a page behind your login, carrying your session and your already-open tabs — a headless browser cannot help: it holds none of your state and would ask you to authenticate all over again. dsh-webbridge exists to hand the model control of your real browser while keeping that browser state strictly on your machine, never inside a model request.

It ships no browser-driving code of its own: the actual work is done by the Kimi WebBridge daemon and browser extension. This plugin only translates that capability into model-facing tools on the DSH side.

Features

  • Real browser, not headless: logins, cookies, and live sessions preserved
  • Eleven model tools: navigate / find_tab / snapshot / click / fill /

evaluate / screenshot / list_tabs / network / close_tab / close_session

  • One task = one tab group: a session name groups tabs, keeping tasks

cleanly isolated

  • Local-first: the daemon runs on your machine; browser state never leaves it
  • No KV-cache burden: browser state lives outside the model request

Usage

Prerequisites (required!)

This plugin is an adapter — without the pieces below, browser control does not work. You must install Kimi WebBridge separately (an independent product by Moonshot AI; this plugin contains none of its code). Full install and browser-extension setup instructions live on Kimi's official pages: feature page / help center. In short:

# 1. Install the daemon:
curl -fsSL https://cdn.kimi.com/webbridge/install.sh | bash

# 2. Install the Kimi WebBridge browser extension and let it connect to the
#    daemon (search "Kimi WebBridge" in the Chrome Web Store), then check:
kimi-webbridge status   # expect "extension_connected": true

If the daemon is not running, tools fail loud with a daemon_unreachable error that tells you to run ~/.kimi-webbridge/bin/kimi-webbridge start.

Model experience

ToolPurpose
webbridge_navigateOpen a URL (new tab or current), set the tab group label
webbridge_find_tabRe-select a tab this task opened, or borrow the user's active tab
webbridge_snapshotRead the page's accessibility tree (text + @e refs)
webbridge_clickClick an element by @e ref or CSS selector
webbridge_fillType into inputs / textareas / contenteditable editors
webbridge_evaluateRun JS in the page (async supported)
webbridge_screenshotCapture the page or one element to a file path
webbridge_list_tabsList the tabs opened in the session
webbridge_networkInspect network activity (start/stop/list/detail)
webbridge_close_tabClose the current tab of the session
webbridge_close_sessionClose ALL tabs of the session (clears the tab group)

Session and closing rules (model contract)

These rules come from the upstream Kimi WebBridge skill and are part of the model contract:

  • One task = one session = one tab group. Pick a session name at the

task's start and keep it on EVERY call — never switch mid-task.

  • Name it after the task, not the site (camping-research, not

kimi.com).

  • group_title is the human-readable group label, set on the FIRST

navigate of the task, written in the user's language.

  • Closing is always user-initiated. Call webbridge_close_session ONLY

when the user explicitly asks to close/clear the tabs; never close tabs automatically at the end of a task.

Configuration

The daemon address defaults to http://127.0.0.1:10086. The plugin accepts no configuration today; the baseUrl seam exists for tests.

Install

The plugin is a DSH bundle (package.json declares dsh.bundle, and cordis.patch.yml carries the patch). Install it into the web profile with the standard dsh plugin mechanism — no DSH source changes and no hand-written patch:

dsh plugin --profile web add github:omdsh-dev/dsh-webbridge

For a stable install, pin the version: dsh plugin --profile web add github:omdsh-dev/dsh-webbridge#v0.0.3.

Internally the command runs pnpm add <spec> in the profile directory and automatically appends packages that declare dsh.bundle to dsh.profile.bundles. You can also clone it and install from a local path (for development):

dsh plugin --profile web add /path/to/dsh-webbridge

The repository ships its build output (lib/), so the plugin works right after installing — no build step needed. After installing, restart the Web UI (production mode has no hot reload) and refresh the page — the webbridge_* tools become available to the model.

Upgrade

dsh plugin --profile web update github:omdsh-dev/dsh-webbridge

For a local-path installation, run add again against the replacement checkout, then restart the Web UI and refresh.

Uninstall

dsh plugin --profile web remove dsh-webbridge

The command runs pnpm remove <pkg> in the profile directory and removes the package from dsh.profile.bundles. After uninstalling, restart web and refresh — the DSH built-in plugin (same row id webbridge) takes over again.

Relationship to the DSH built-in

DSH's official dsh-web-app bundle ships a built-in plugin of the same nature (@deepseek-ai/dsh-webbridge, row id webbridge). This repository is the independent open-source edition, distributed as dsh-webbridge: installing it overrides the built-in by the same row id and uses this package's code; without it, the built-in applies. The tools behave identically — same protocol layer — the difference is only who maintains the package.

Troubleshooting

SymptomResolution
Tools fail with daemon_unreachableThe Kimi WebBridge daemon is not running — start it with ~/.kimi-webbridge/bin/kimi-webbridge start, then confirm with kimi-webbridge status
kimi-webbridge status shows "extension_connected": falseInstall the Kimi WebBridge browser extension (Chrome Web Store) and let it connect to the daemon; restart the browser if it still shows disconnected
webbridge_* tools not visible to the model after installThe Web UI must be restarted and the page refreshed (production mode has no hot reload); verify the bundle row is in the profile (`dsh --profile web --dump-config \grep webbridge`)
Clicks / fills ignored on some sitesSites that strictly check event.isTrusted (banking portals, captchas) ignore synthetic events; the daemon's cdp escape hatch is not exposed as a tool yet
Snapshot / click / fill / evaluate miss an iframeCross-origin iframes are not supported — these tools operate on the top frame only
Screenshots return a path but no imageThe daemon writes to a temporary path and returns the path; use a Read tool to view the image
Tab groups suddenly emptyTab groups are maintained by the daemon; restarting the daemon clears them — recreate the session

Repository specifics

How it works

model ── webbridge_* tools ──▶ dsh-webbridge plugin
                                   │ POST /command
                                   ▼
                         kimi-webbridge daemon (127.0.0.1:10086)
                                   │
                                   ▼
                         WebBridge browser extension
                                   │
                                   ▼
                         user's REAL browser (with logins)

Every tool call is one HTTP round-trip to the local daemon. The returned payload is folded into a compact one-line summary plus the raw detail.

Directory structure

dsh-webbridge/
├── src/               # plugin source: index.ts (registration), tools.ts (the 11
│                      #   webbridge_* tools), client.ts (HTTP client), invariant.ts
├── lib/               # committed build output (tsc types + tsdown bundle) — git
│                      #   installs consume this directly
├── tests/             # client.spec.ts — unit tests against a mock HTTP daemon
├── scripts/           # build.mjs (bundle build), verify-i18n.mjs (bilingual check)
├── cordis.patch.yml   # the DSH bundle patch — row id `webbridge` (overrides built-in)
├── README.md          # English main readme
├── README.zh.md       # Chinese readme
└── package.json

Known limitations

  • event.isTrusted — sites that strictly check trusted input (some banking

portals, captchas) ignore synthetic click/fill; the daemon's cdp escape hatch is not exposed as a tool yet

  • Cross-origin iframes — snapshot/click/fill/evaluate operate on the top

frame only

  • Screenshots — the daemon writes to a temp path and returns the path; the

model must use a Read tool to view the image

  • Daemon lifecycle — tab groups are maintained by the daemon; restarting

the daemon clears them

Development and verification

pnpm install
DSH_CHECKOUT=/path/to/dsh pnpm run build   # tsc → lib/types, tsdown → lib/index.js

Peer dependencies and the toolchain come from DSH: set DSH_CHECKOUT to a source checkout, or have dsh on PATH and run it once. lib/ is committed, so git installs consume the built artifacts directly — no build needed. Unit tests (tests/client.spec.ts) run against a mock HTTP daemon, so no real Kimi install is required; run them in an environment with vitest (e.g. the DSH checkout), and set KIMI_WEBBRIDGE_IT=1 to run the integration tests against a live daemon.

Keep the bilingual README in sync: edit both README.md and README.zh.md, then run node scripts/verify-i18n.mjs --write.

Community and About

reproducible bugs, focused feature requests, and usage questions.

vulnerabilities privately via SECURITY.md.

  • Follow releases and compatibility notes in CHANGELOG.md.
  • Acknowledgements & trademarks: this plugin's protocol layer is

compatible with Kimi WebBridge. Kimi WebBridge is a product and trademark of Moonshot AI; its daemon, browser extension, and their code belong to Moonshot AI and must be installed and used under Kimi's own terms. This plugin is an HTTP-protocol adapter only and contains none of that code.

License

BSD-3-Clause. See LICENSE.

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案