npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-workspace-enhancement

v0.2.3

Published

Unified SSH remote-execution plugin for DeepSeek Harness — ProxyJump chain, SFTP filesystem, subprocess and PTY over ssh2

Readme

dsh-workspace-enhancement

English | 中文

npm 版本 许可证 Node 版本 dsh-plugin

一个 DeepSeek Harness 工作区增强插件:把本地和远程(SSH)工作区放到一个包里统一管理。一个会话可以挂多个工作区(主工作区 + 副目录声明清单);机器、TOFU 指纹与钥匙串都存在你本机的 ~/.dsh 下。底层用 ssh2。

功能

| 功能 | 说明 | | ------ | ------ | | 远程工作区 | 一条 SSH(可多级跳板)跑 bash / 文件 / PTY / 目录浏览。已经走 ctx.subprocess / ctx.fs 的工具不用改就能在远端跑 | | 多工作区会话 | 会话标题栏「⊕ 工作区」按钮:把额外目录(本地或远程)挂成声明清单——挂/卸 + 显示名。模型能看到清单并直接操作 | | 添加工作区流程 | 连接侧栏(已保存机器、~/.ssh/config 别名、本机)+ 目录浏览器(面包屑、系统选择器、新建文件夹);远程「连接并打开」直接在服务器上建会话 | | 机器设置页 | 机器增删改 / 测试 / 设当前 / 忘指纹;OS 钥匙串存密码;TOFU 主机指纹(默认 accept-new) | | 会话感知 | 会话栏远程标识 + 未知/活跃/离线三态 + 重连;每会话提示里写明远程 / 副工作区上下文 | | 跨服务器执行 | sw_exec(server, command) 在已注册的指定机器上执行命令(缺省=当前会话机器)。目标 OS 每次连接探测一次(POSIX 跑 bash -c,win32 跑 pwsh -Command)。win32 宿主只在远程 Linux 工作区会话注入 bash 工具 | | 远程命令审批门 | 可选的逐机器审批门(默认关闭):每条 shell 形状的远程命令与每个远程终端在执行前先问——human 每条都问人,ai 对只读白名单(pwd、ls、git status 等)自动放行、其余问人 | | 模型工具 | sw_status、sw_connect(把本会话接到你已经注册的机器)、sw_exec | | 运行时国际化 | UI 文案、工具描述/错误与路由错误跟随设置页 Language 选项(zh/en);UI 默认跟随浏览器语言。仅协议层 bad-request: 诊断保留英文 |

工作原理

flowchart LR
    subgraph local["本机"]
        agent["agent loop<br/>编排 · 记忆 · LLM 调用"] --> seam["本插件<br/>ctx.subprocess · ctx.fs"]
    end
    subgraph remote["远程主机"]
        run["bash · 文件 · PTY(终端)"]
    end
    seam -- "一条 SSH(可多级跳板)" --> run

远程不用装 DSH:模型在本地编排,命令在远程跑,结果再回本地进上下文。

路由、审批门、远端围栏、会话连接怎么接:见 docs/architecture.md。已知安全边界:见 SECURITY.md。

安装

# 从 npm 安装(v0.1.0+)
dsh plugin --profile web add dsh-workspace-enhancement
# 源码安装:先 npm run build(宿主加载 lib/)
dsh plugin --profile web add <本仓库路径>

DSH 供应链 pnpm 首次安装须知:原生构建脚本默认被拦截。先在 profile 的 pnpm-workspace.yaml(非严格 allowBuilds)放行 ssh2、cpu-features、koffi、 node-pty、dsh-subprocess-local,再执行 dsh plugin --profile web install; 否则首次 add 会以非 0 退出(ERR_PNPM_IGNORED_BUILDS)且 bundle 不会被追加。

版本兼容

装哪个版本的插件,取决于你跑的 DSH 宿主家族——用 dsh --version 查看(家族版本可看 DSH 安装目录下的 @deepseek-ai/,如 <npm root -g>/@deepseek-ai/):

| 你的 DSH 宿主 | 该装哪个版本 | 说明 | |---|---|---| | 0.2.0 线(0.2.0-rc.1…) | 0.2.2 之后的下一个发布物 | 2026-09-29 起运行时兼容——联合 peer pin(^0.1.7-rc.2 加 ^0.2.0-rc.1)在真实 0.2.0-rc.1 宿主上 boot 并挂载通道(boot 哨兵 SMOKE PASS)。0.2.0 宿主在 boot 时强制执行插件 peerDependencies(pin 不符会静默跳过整个 bundle)——0.2.0 宿主请装带联合 pin 的发布物,不要装 0.2.2 | | 0.1.7 线(0.1.7-rc.2…) | 0.2.2 之后的下一个发布物 | 2026-09-28 起 peer 锚定的家族(^0.1.7-rc.2,UPSTREAM-9——宿主包 latest 已翻到它)。接缝与运行时均已对齐:混合门面 watch + terminalEnvironment(UPSTREAM-5);重写后的 settings/jobs 契约下的本地化标记渲染与后台 owner/输出已修(UPSTREAM-8)——drift 哨兵 + 本地 0.1.7 家族 typecheck/单测/boot 验证 | | 0.1.5 线(0.1.5-rc.1、0.1.5-rc.2…) | 0.2.2(该线的最后一个发布物) | 运行时仍可用——双家族路径保留(0.1.5 宿主 boot 哨兵保持绿)——但 0.2.2 之后的发布物要求 0.1.7 家族,宿主升级前请停在 0.2.2。浏览器通道挂官方共享 /api(/api/dsw/<端点>) | | 0.1.2-rc.1 家族(0.1.2、0.1.3 发布物) | 0.1.3——该线的最后一个版本 | 已停止支持(2026-09-11 退场)。该线挪动了 Connection 接缝(connection.rpc.handle 已无法注册通道),不会再回填修复 | | 其它 / 更老的线 | — | 从未支持 |

宿主与插件必须同步升级。 0.1.4 线说 /api/dsw/*,0.1.3 及更早说 /dsw/*,且 0.1.3 没有 readByteRange:混用会让宿主起得来、但连接/目录 UI 静默拿不到数据(机器列表读不出、目录浏览报错)。 支持窗口与上游漂移记录见 docs/compatibility.md。

路线图

公开进度:见 docs/ROADMAP.md。唯一待办真相源是 docs/backlog.md。

开发

先读 AGENTS.md(规则、命令、红线)。文档地图——什么在哪、什么不要抄——见 docs/README.md。

统一质量门:npm run check(静态闸门 + typecheck + 单测 + build + pack 冒烟)——CI 跑的就是这一条。

参考项目

  • dsh-ssh:远程执行引擎(ctx.subprocess / ctx.fs provider、跳板链、PTY、directory-picker 接缝、session.route 占位)。
  • dsh-remote:工作区助手(machines 注册表、TOFU、OS 钥匙串、Web UI 与设置页)。

License

MIT