DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Run — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
R

dsh-run

Run

DSH Web 插件:Session 标题栏新增一个分割按钮,可运行工作区 package.json 中的一个 npm 脚本(默认选择 dev,否则选择 start,再否则选择第一个声明的脚本)。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:albertgranados/dsh-run#f41d9524d871c0054e7bb06afd61313785096ce3
README兼容性版本

兼容性与来源证明

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

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

版本

1.0.0stable
2026/9/17

相关插件

正在加载相关插件…

最新版
1.0.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/17
查看源码 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Subagent Codex@deepseek-ai/dsh-subagent-codex基于官方 app-server 协议的一次性 Codex 子代理提供程序

README

dsh-run

Plugin del DeepSeek Harness que añade, arriba a la derecha de la cabecera de sesión (junto al botón Open in…), un botón compuesto para los scripts de npm del proyecto abierto.

┌──────────────────────┬─┐
│ ▶  npm run dev       │▾│      ← el botón principal ejecuta el script por defecto
└──────────────────────┴─┘      ← la flecha despliega TODOS los scripts del package.json

English: a DeepSeek Harness web plugin. The Session header grows a split button (play + chevron) that runs one script from the workspace's package.json: the main button runs the default (dev, else start, else the first declared), the chevron lists and runs every script and makes it the new default. It renders nothing when the workspace has no package.json scripts, turns into a stop button while a script is alive, and shows the failure output when a launch dies early. See English at the end.

Qué hace

  • Lee package.json del directorio de trabajo de la sesión (el cwd).
  • Solo aparece si hay package.json con scripts. Sin manifiesto, o sin scripts, el botón no se renderiza: no queda ni un hueco vacío.
  • Botón principal: muestra el icono de play y el comando por defecto (npm run dev). Al pulsarlo, lo ejecuta. Mientras corre, el icono cambia a stop y un segundo clic detiene el proceso (grupo de procesos completo: npm → sh → el servidor).
  • Desplegable: lista todos los scripts declarados como npm run <script>. Al elegir uno, se ejecuta y pasa a ser el nuevo por defecto del botón de play. La elección se recuerda por proyecto en el navegador (localStorage, clave dsh-run.defaults).
  • Por defecto automático: dev; si no existe, start; si tampoco, el primer script del manifiesto.
  • Fallo visible: si un script muere con código distinto de cero en los primeros 30 s, el botón se pinta en rojo y el tooltip trae la última línea de su salida. Un script ya en marcha no se relanza por doble clic: la petición reutiliza la ejecución viva.

Rutas host

RutaQué hace
GET /dsh-run/scripts?cwd=<abs>Scripts del package.json, el defecto automático y la tabla de ejecuciones de ese proyecto.
POST /dsh-run/run{ cwd, script } → npm run <script> en ese directorio.
POST /dsh-run/stop{ cwd, script } → termina el grupo de procesos de esa ejecución.
GET /dsh-run/log?cwd=&script=&bytes=Cola de salida recogida (stdout/stderr) de una ejecución.

Todas pasan primero por el filtro de confianza del harness (connection.requestRejection): mismo cerco Host/Origin y misma cookie de sesión que el resto de la API. Además, cada ruta con cuerpo valida el JSON en el borde y vuelve a resolver el proyecto en el host: el directorio debe ser absoluto y existir, y el script pedido debe estar declarado en su propio package.json.

Los procesos se lanzan por el servicio subprocess del harness, así que terminate() alcanza a todo el grupo de procesos, la salida queda legible después de salir y descargar el plugin detiene lo que él mismo arrancó.

Instalación

# desde GitHub (público)
dsh plugin --profile web add github:albertgranados/dsh-run

# o desde un checkout local (queda enlazado: editar y reiniciar)
dsh plugin --profile web add /ruta/a/dsh-run

# y reinicia el harness

El paquete declara dsh.bundle.patch, así que el propio dsh plugin reconcilia dsh.profile.bundles solo: no hay que editar package.json ni cordis.patch.yml a mano. No hay build: lib/index.js y lib/client.js van compilados a mano en el repo (el cliente se sirve crudo al navegador, no pasa por ningún bundler).

Tras reiniciar, recarga la página del navegador (http://127.0.0.1:3080). El botón solo aparece en sesiones cuyo workspace tenga un package.json.

Desinstalar

dsh plugin --profile web remove dsh-run

Verificación rápida

# ¿está la fila del plugin en el árbol del perfil?
dsh --profile web --dump-config | grep -A2 dsh-run

# con el harness en marcha (necesita la cookie del navegador para las rutas)
curl -s "http://127.0.0.1:3080/dsh-run/scripts?cwd=$PWD" | head

Notas

  • El comando es siempre npm run <script>; npm se resuelve por el mismo mundo de ejecución que usa el resto del harness (subprocess.resolveExecutable).
  • Variables de entorno: los hijos arrancan con el entorno del harness ya depurado por el propio harness (sin credenciales ni DSH_*), más FORCE_COLOR=0 / NO_COLOR=1 para que el log no lleve secuencias ANSI.
  • Límites: como mucho 8 ejecuciones concurrentes, 32 KiB de cola en memoria por flujo y 4 MiB de spill en disco por ejecución (la ruta completa del log sale en la cabecera de /dsh-run/log).

English

A DeepSeek Harness web plugin: a Session-header split button for the workspace's npm scripts.

  • Main button (play icon + the default command, e.g. npm run dev) runs the default script — dev, else start, else the first one declared. While a run is alive it turns into a stop button, and a second click terminates the whole npm process group (npm → sh → the dev server).
  • Chevron lists every script in package.json as npm run <script>. Picking one runs it and makes it the new default for that workspace, remembered in the browser (localStorage, key dsh-run.defaults).
  • Renders nothing when the workspace has no package.json scripts, or before the host answers.
  • An early non-zero exit paints the button red and the tooltip carries the last line of that run's output; the dress clears after 8 seconds.

Install:

dsh plugin --profile web add github:albertgranados/dsh-run
# restart the harness, then reload the browser page

Host routes (all behind the harness's Host/Origin fence and login cookie):

RoutePurpose
GET /dsh-run/scripts?cwd=<abs>Scripts, auto-picked default, live run table.
POST /dsh-run/run{ cwd, script } → npm run <script>.
POST /dsh-run/stop{ cwd, script } → terminate that run's process group.
GET /dsh-run/log?cwd=&script=&bytes=Collected stdout/stderr tail.

MIT licensed.