DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Local Link — DeepSeek Harness 插件(DSH Plugin)
← Plugins

dsh-local-link

Local Link

DeepSeek Harness 插件,用于通过局域网从手机、平板电脑和其他计算机轻量访问当前 Web UI。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-local-link@1.2.0
README兼容性版本
DeepSeek Harness Settings opened directly on the compact Local access paired-device listDeepSeek Harness Local access settings with the native-style Diagnostics panel expanded

兼容性与来源证明

Local Link 以 dsh-local-link 发布,当前版本为 1.2.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/9/20

版本

1.2.0stable
2026/9/18
1.1.2stable
2026/9/15
1.1.1stable
2026/9/12
查看其余 5 个版本收起版本
1.1.0stable
2026/9/7
1.0.0stable
2026/8/29
0.2.1stable
2026/8/29
0.2.0stable
2026/8/29
0.1.0stable
2026/8/28

相关插件

正在加载相关插件…

最新版
1.2.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
1 MB
文件数
23
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 1
周下载
362
安全扫描
✓ v1.2.0 扫描通过
最近提交
2026/9/18
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Pet@linxin666/dsh-pet适用于 dsh Web GUI 的多宠物伴侣插件:由注册表驱动的浮动宠物,可响应模型活动,支持为每只宠物命名、抚摸/喂食互动以及亲密度评分

README

dsh-local-link

English | 中文

Use the same DeepSeek Harness Web session from a phone, tablet, or another computer on your trusted private network. dsh-local-link adds one-time QR pairing and a responsive Mobile View to the stock DSH client—without a hosted relay, cloud account, native app, replacement chat UI, or second workspace picker.

Open Local access, scan the QR code, and the paired browser arrives at the desktop's currently selected Harness session with the same live conversation, permissions, workspaces, and plugin surfaces.

The 1.2.x line supports DeepSeek Harness 0.1.5-rc.2 and keeps the stock Web client usable on narrow touch screens. It reorganizes the existing Harness interface into responsive drawers, compact session controls, and touch-friendly actions while keeping the same client, session, plugin slots, permissions, and live agent stream.

Security boundary: the gateway uses plain HTTP and is intended only for a trusted private network. Do not expose its port to the internet or use it on public Wi-Fi.

DeepSeek Harness with dsh-local-link open: one-time QR pairing to the current stock Harness session

One Harness session, paired directly across the trusted LAN.

Focused product scope

Local Link is intentionally a small LAN companion for the existing Harness Web client, not a general remote-access platform. Its purpose is to make one path dependable: open the Harness instance already running on a computer from another trusted device on the same private network, then use the same sessions and interface in a browser.

Development stays focused on:

  • reliable same-LAN browser access to the current Harness Host;
  • short-lived invitations and understandable paired-device lifecycle controls;
  • responsive presentation of the stock client without duplicating Harness business logic;
  • compatibility with registered Harness views, slots, permissions, themes, and session state;
  • accessibility, localization, bounded diagnostics, and security hardening inside that boundary.

The following are deliberate non-goals:

  • public-internet exposure, hosted relays, managed tunnels, or cloud accounts;
  • a separate native phone or desktop application;
  • a replacement chat client or fork of the Harness interface;
  • independent workspace, file, or session synchronization outside Harness;
  • a general-purpose remote extension runtime unrelated to opening the current Web UI.

This does not mean the plugin is finished or frozen. It means future changes should make the local browser path simpler, safer, more compatible, or easier to diagnose instead of widening the product into a different class of system.

Install

npm — recommended

Stop a running dsh web process, install the plugin into the Web profile, then start Harness again:

dsh plugin --profile web add dsh-local-link
dsh web

Git clone — development checkout

Requirements: Git, Node.js 22.19+ or 24+, Corepack, and a global dsh installation running a verified DeepSeek Harness version from the compatibility table below.

git clone https://github.com/donoteatme/dsh-local-link.git
cd dsh-local-link
corepack pnpm install --frozen-lockfile
npm run verify
dsh plugin --profile web add .
dsh web

The profile points at the checkout, so rebuild after changing client code and restart dsh web after Host-side changes.

Compatibility

Compatibility is checked against exact DeepSeek Harness versions—not inferred from a successful installation.

DeepSeek HarnessLocal Link status
0.1.5-rc.2Supported release
0.1.5-rc.1Verified
0.1.2-rc.1Verified
0.1.1-rc.2Verified
0.1.1-rc.1Verified
0.1.0-rc.8Verified

All six rows passed the installed-runtime gateway and revoke gate with packed 1.1.1 source. For 1.2.0, the current 0.1.5-rc.2 release was additionally rebuilt against the exact package contracts and exercised in the real browser client at 430 × 932 and 320 × 568. Historical RC evidence remains recorded separately and the moving next tag itself is never a compatibility promise.

Only the exact versions listed above carry a compatibility claim. Alpha builds—including the removed 0.1.2-alpha.1 row—versions older than 0.1.0-rc.8, and whatever package a moving next tag points to later are unsupported until checked independently. See Compatibility for the evidence and remaining real-device boundary.

Use

Open Harness on another device

  1. Open the session you want on the computer.
  2. Click Local access at the bottom of the Harness sidebar.
  3. Scan the QR code or copy the one-time link to another device on the same network.
  4. The first browser to use the invitation opens the stock Harness client at the selected session. Host-level administration that Harness reserves for loopback remains unavailable remotely.

The invitation is one-use, expires after five minutes by default, and is replaced immediately when Generate another code is selected.

Phone and tablet browsers automatically receive Mobile View when the viewport is at most 834 CSS pixels wide. The same responsive behavior can be previewed with browser device emulation; no URL parameter, user-agent switch, or second client is involved.

Mobile View

The stock Harness Web interface is difficult to operate on a phone: persistent desktop navigation consumes the viewport, session controls compete with the conversation title, several actions depend on hover or long press, and subagent information is too dense for a narrow screen. Mobile View makes that existing interface usable without introducing a second client or duplicating Harness business logic.

Stock narrow-screen behaviorMobile View in 1.2.x
Desktop navigation competes with the conversationWorkspace and session navigation opens as a dismissible left drawer
Session metadata crowds the headerContext, model, access, preset, activity, and export move into a compact right drawer
Subagent details are difficult to scan or reachTotal/active status stays near the composer and the native catalog opens as a bottom sheet
Hover-oriented session and workspace actionsOverflow actions remain visible and touch-accessible
Session changes can summon the software keyboardAutomatic composer focus is suppressed while intentional input focus still works
Desktop spacing ignores phone safe areasHeader, composer, tabs, media, overlays, and scrolling adapt to narrow viewports

The implementation changes presentation, not Harness ownership or behavior:

  • the native workspace/session browser becomes a left drawer;
  • dynamic Chat, Trajectory, composer, overlay, and third-party plugin slots remain intact;
  • Current session opens from the header with context breakdown, model, workspace access, preset, activity, and session-log download;
  • child-agent status shows total and active counts, then opens the native nested catalog as a touch-friendly bottom sheet;
  • the Harness theme service powers a compact sun/moon action;
  • desktop-only Settings and the nested Local access action are omitted from mobile navigation, while the appearance action remains available;
  • session and active-workspace menus stay immediately available on touch screens;
  • safe areas, scrollable tabs, bounded media, and virtual-keyboard behavior are adapted for narrow viewports;
  • plugin-owned modal drawers contain keyboard focus and return it to the invoking control when closed;
  • existing workspaces remain available, while the misleading remote Add workspace directory picker is omitted.

These dark-theme previews are captured from a real Harness browser session at a 430 × 932 emulated viewport. The isolated screenshot profile uses synthetic product-demo data only; no local workspace, chat, path, prompt, model, or usage data appears in them.

NavigationCurrent sessionSubagentsConversation
Dark Mobile View navigation drawer with a synthetic workspace and sessionDark Mobile View Current session drawer with synthetic model, workspace access, statistics, and session log dataDark Mobile View subagent sheet with two synthetic child agentsDark Mobile View Harness conversation with native message actions and one-line composer controls

Permissions

The remote browser inherits the selected Harness session's Read only, Workspace write, or Full access authority. Mobile View displays that value but does not create or weaken a permission layer. This applies to ordinary session operations; Settings, credentials, native Host actions, and agent-preset authoring remain loopback-only. Hiding Add workspace is a usability constraint, not an authorization boundary.

The responsive enhancements target viewports from 360 through 834 CSS pixels wide. The release matrix defines checks at 360 × 800, 390 × 844, 430 × 932, and 768 × 1024; release acceptance also requires portrait and landscape checks on a real phone. See Mobile View for behavior, theme persistence, compatibility surfaces, and the complete acceptance checklist.

Manage trusted browsers

On the Harness computer, use Paired devices in the QR panel or open Settings → Local access. Each new browser starts as My device; its subtitle is detected automatically, for example Phone · Chrome, Tablet · Safari, or Computer · Edge.

  • Rename changes display metadata only.
  • Revoke invalidates the browser credential and immediately closes its open Local Link WebSocket connections.
  • A cleared cookie, private window, new browser profile, or revoked device needs a new invitation.

Browsers do not reliably distinguish laptops from desktop computers, so both are shown as Computer.

DeepSeek Harness Settings opened directly on the compact Local access paired-device list

Expand Diagnostics on the same Settings page to inspect the most recent local gateway events. Copy report produces issue-ready JSON and Clear removes the local history. The report contains event codes, timestamps, severity, and a small allowlisted context only; it never includes pairing tokens, cookies, IP addresses, device or session IDs, device names, request paths, prompts, conversations, or project files.

DeepSeek Harness Local access settings with the native-style Diagnostics panel expanded

Why it stays small

  • Stock Harness UI: the plugin opens the existing Web client and live agent stream.
  • Local only: one private-network gateway forwards to the loopback Harness Host.
  • Two runtime dependencies: configuration schema support and QR generation.
  • No fingerprinting: access is a random per-browser credential, not a device identity guess.
  • Native extension points: sidebar and Settings content use Harness slots and locale services.
  • Native responsive enhancement: the shipped Harness AppFrame stays mounted; registered conversation views and overlays remain dynamic.
  • JSON localization: all visible plugin copy lives in matching locale dictionaries.
  • Local diagnostics: a bounded, redacted event history helps debug installs without analytics or an external collector.

How it works

Desktop browser on 127.0.0.1:3080
  └─ Local access → one-use invitation
                         │
Phone / tablet / computer on the private LAN
  └─ 192.168.x.x:3088 → network + Host validation
                       → pairing or device-cookie validation
                       → HTTP / WebSocket proxy
                       → 127.0.0.1:3080 (the same Harness Host)

The gateway does not create a second Harness session. During first connection it transfers the desktop browser's current session selection to the new browser origin; session data and ongoing conversation events still come from the same Host.

Authorization uses a 256-bit random cookie credential. Only its SHA-256 hash is stored. The editable name and detected device/browser text never grant access.

The LAN authority is declared through Harness's official connection trustedHosts contract. This enables authenticated session API and WebSocket traffic without pretending that the phone is loopback. Harness 0.1.2-rc.1 and the verified 0.1.5 builds authenticate the transport as a whole, so Local Link itself rejects the configuration, credential, native Host-action, and agent-preset-authoring RPCs that earlier supported Harness builds kept loopback-only.

Configuration

The bundled profile patch installs conservative defaults:

OptionDefaultPurpose
listenHost0.0.0.0Listen on local interfaces; request validation still accepts only private/loopback sources.
listenPort3088LAN gateway port.
upstreamOriginhttp://127.0.0.1:3080Existing loopback Harness Web server.
accessModepairingRequire a one-use invitation and device cookie.
pairingTtlSeconds300Invitation lifetime.
deviceTtlDays90Remembered-browser lifetime.
diagnosticsEnabledtrueKeep the bounded local diagnostic history.
diagnosticsMaxEntries15Maximum retained events (5–200).
diagnosticsFilenext to stateFileLocal JSON event store; the bundled profile uses ~/.dsh/local-link/diagnostics.json.

listenHost accepts only 0.0.0.0 or an explicit private/loopback IP literal. Public listener addresses are rejected during startup; this configuration guard complements, rather than replaces, the operating-system firewall.

trusted-lan disables per-device authorization and should be reserved for isolated development networks. pairing is the supported default because a connected Harness browser can read files, submit prompts, approve actions, and trigger commands.

The plugin never creates firewall rules. If Windows prompts for network access, allow only the Private network profile and never forward port 3088 on the router.

Troubleshooting and diagnostics

Diagnostics are a local, event-driven history of failures—not a request log. The plugin retains 15 events by default, shows the newest 12, coalesces identical five-second bursts, and records nothing for successful starts, requests, pairing, copies, renames, or revocations.

For support:

  1. Reproduce the failed action once.
  2. Open Settings → Local access → Diagnostics.
  3. Click Refresh if the panel was already open.
  4. Use the newest stable event code to identify the failed boundary.
  5. Click Copy report, review the JSON, and attach it to an issue if needed.

The report never includes secrets, addresses, IDs, names, URLs, paths, prompts, conversations, or project data and is never uploaded automatically. See the event reference and first checks for every tracked failure.

Localization

Harness's active language selects the plugin dictionary; the plugin has no separate language switch.

The minimal automatic pairing page loads before Harness locale services are available. It reuses the same dictionaries and selects English or Chinese from the connecting browser's language list; English is the fallback.

LanguageDictionaryStatus
Englishsrc/locales/en.jsonIncluded
Chinesesrc/locales/zh.jsonIncluded

Dictionary keys are checked for parity in tests. To add a locale, copy en.json, translate values without changing keys, register the locale ID in src/client.tsx, extend the pre-client pairing-page language map in src/gateway/pair-page.ts, and run npm test.

Development

corepack pnpm install --frozen-lockfile
npm run typecheck
npm test
npm run build
npm run verify

Project documentation:

  • Architecture and compatibility boundaries
  • Verified DeepSeek Harness compatibility
  • Mobile View behavior and release matrix
  • Local diagnostics and event codes
  • Security model
  • Contributing
  • Security reporting

Known limitations

  • LAN traffic is not encrypted; the current gateway uses plain HTTP.
  • Revocation blocks new requests and reconnects and terminates every open Local Link WebSocket authenticated by the revoked device.
  • A light/dark choice made from a remote browser is page-scoped in the supported Harness builds; reload returns to the Host preference and resolves system against the remote device.
  • Invitations use the highest-ranked private IPv4 interface detected at startup; choosing among multiple LAN interfaces is not exposed yet.
  • The shortcut that opens a specific Settings section uses a small semantic compatibility bridge because Harness does not expose a general settings-navigation service.
  • Harness's footer-action container needs a compatibility layout rule when the full-width Cordis action is present.
  • Mobile View targets viewports from 360 CSS pixels wide, but third-party fixed-width views, virtual keyboards, orientation changes, split-screen browsers, and operating-system text scaling still require real-device acceptance.
  • Plugin-owned buttons and text inputs use Harness Button and Input primitives and their semantic variants. Harness 0.1.5-rc.2 still has no complete public responsive-shell, spacing, or radius contract, so mobile geometry, responsive compositions, and the few missing primitive icons remain documented design-system compatibility risks.

Development disclosure

The initial implementation and documentation were developed collaboratively with OpenAI Codex. Changes remain subject to maintainer review, automated tests, security review, and the same contribution requirements as human-authored changes. No runtime AI service, telemetry, or generated-code dependency is included in the package.

License

MIT © 2026 dsh-local-link contributors.