fonlan/dsh-quick-commands0

@fonlan/dsh-quick-commands

DSH web plugin: per-workspace quick commands. Configure named shell commands per DSH workspace, run one from the session header with live stdout/stderr in a floating popup.

包名
@fonlan/dsh-quick-commands
版本
0.1.2
许可证
MIT
最近更新
2026年8月27日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:fonlan/dsh-quick-commands

配置

插件设置命名空间为 quick-commands

{
  "workspaces": [
    { "workspaceId": "", "commands": [
      { "name": "lint", "command": "npm run lint" },
      { "name": "test", "command": "npm test" }
    ]}
  ],
  "popupAnchor": "corner", // 或 "button"
  "popupSize": { "width": 520, "height": 340 } // 可选,用户拖动弹窗调整手柄时写入
}

占位符

占位符
{workspace}工作区根路径(也是执行时的 cwd)
{cwd}会话的实际 cwd(可能是子目录)
{title}工作区显示标题

在远程工作区上,占位符解析为 远程 路径:{workspace}{cwd} 为远程绝对路径(当会话 cwd 位于占位符工作区内时,会被重新锚定到远程文件系统),因此 echo {cwd} 打印的是远程目录。

环境变量

本地命令继承宿主进程环境,并额外设置: DSH_WORKSPACEDSH_WORKSPACE_IDDSH_WORKSPACE_TITLE。 远程命令在 SSH 主机上以该主机的自身 shell 环境运行(远程侧不会注入 DSH_* 变量)。

远程执行细节

  • 需要加载 @dsh-ssh/dsh-ssh 宿主插件(它提供 sshPool 服务和 dsh-ssh-hosts 设置命名空间);缺失时,对远程占位符工作区执行的快捷命令会被明确拒绝并报错,而不是静默地在本地执行。
  • 输出流通过 SSH 通道实时传输(相同的 tail/offset 轮询,弹窗不变)。杀进程会终止远程 进程组kill -TERM -- - 加 pkill 回退),因此 sleep / 构建器等子进程也会被覆盖。
  • 远程命令前会加上一行探针标记以探测组 leader pid;弹窗显示的 stderr 中会过滤掉该行。
  • 远程执行 shell:Linux / macOS 主机(bash 兼容),取决于 远程 主机的平台,而非本地主机。