Skip to main content

How to use dsh-web-ui

The Plugin Management tab in DSH web version supports npm/git installation, enable/disable toggles, conflict rollback, and failed repair session handling.

This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.

This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.

Quick start

dsh-web-ui

— source: plugin_wiki.wiki_content

Install & verify

dsh plugin --profile web add @linxin666/dsh-client-ui-plugin-manager

Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.

— source: plugins.install

Key points

  • Web 终端:xterm.js 远程终端,实时输出,窗口大小自适应;
  • 文件传输:SFTP 上传 / 下载,有进度条,能浏览远程目录;
  • 端口转发:本地隧道直连远程内网服务(数据库、API、管理后台),只监听 127.0.0.1;
  • 集群执行:一条命令并发跑多台主机,按别名 / 环境 / 标签过滤;
  • Agent 直连:Agent 和面板共用同一份主机配置,对话里说一句「连一下 xxx 看看状态」,智能体就去执行远程命令。

— source: plugin_wiki.readme_en (fallback readme_raw)

FAQ

Why can't I see the "Plugin Management" tab in the settings page after installation?

You need to restart dsh web first. The enable/disable switch and installation actions only take effect after the next manual restart, as the web side has no in-shell restart capability.

Can this tab be used when accessing the webpage from LAN or remotely?

No. All gateway routes only accept local loopback requests (quadruple gatekeeper: socket address + Host header + same-origin marker), non-local access directly returns 403, the same boundary as the official installer Tab.

What's the difference between installing from npm and from a git repository?

Both go through the official dsh plugin CLI, but git sources need to clone the repository, which may take a few minutes and run as a background task with a progress bar visible in the list; dsh command must be found in the host process PATH, otherwise it will be rejected by the gateway.

What if it fails to start next time after installation?

In the official runtime, there will be a "startup failure ring" hanging under that plugin. You can click "Let Agent Fix" to pull up a repair session in one click (the workspace is the plugin installation root), or click "Copy Error" to take away the error message. In npm runtime, there is no failure ring, only installation errors themselves will carry repair handoffs.

What is the "Conflict" shown during installation? Can it be reverted?

Conflicts are the product lines or profile lines actually modified by this installation, which can be reverted to the pre-operation state with one click; if it cannot be reverted or you don't want to handle it manually, each conflict can be "Let Agent Fix" by the AI for automatic processing.

How can other plugins call the capabilities of this plugin?

Inject via cordis service name pluginManager: after ctx.inject(['pluginManager'], cb) read ctx.pluginManager, you can get five methods: list/install/uninstall/status/onChange, where onChange is called back after every successful install/update/uninstall/enable change.

Could the enable/disable switch cause some plugins to never start again?

On npm runtime, enable/disable is implemented by writing a disabled override line in the profile's cordis.patch.yml, but this path hasn't been thoroughly exercised by the official desktop writer, so it is recommended to be used cautiously for plugins "mounted as patch lines in family bucket aggregate packages"; the official runtime is not subject to this restriction.

How to completely uninstall?

Just run dsh plugin --profile web remove with the corresponding package name and then restart dsh web. This plugin has no configuration namespace of its own, so there's no need to clean up config files.

— source: plugin_wiki.faq_json

Compatibility

  • DSH: 0.1.0-rc.6+(peerDependencies 锁 @deepseek-ai/dsh-client-* 为 ^0.1.0-rc.8;package.json 未声明 engines)
  • Node: 未声明(package.json 无 engines 字段;monorepo 共享约束要求 Node ^22.19 || >=24)

— source: plugin_wiki.compatibility_json

Pitfalls

Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.

— source: general rule