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-classic-coding

v0.1.1

Published

古法编程:在 DSH Web UI 中提供 Monaco 编辑器 + 文件树覆盖层面板

Readme

dsh·古法编程插件

引言

为了在 AI 编程的高度发展的今天,保护古法编程这一非物质文化遗产,dsh·古法编程插件被开发出来,让你可以在 DeepSeek Harness 中继续体验大脑的思考能力。

在 DSH 对话界面右侧滑出一个 Monaco 编辑器 + 文件树面板,直接在对话里改本地工作区代码,不用切到外部编辑器。

功能

  • 面板开关:侧栏底部「⌨️ 古法编程」按钮,点击展开或收起编辑器面板。
  • 文件树:左侧 250px,懒加载目录、支持折叠或展开,过滤 .gitnode_modules 等。
  • 编辑器:Monaco 编辑器经 CDN 动态加载,多文件 Tab、语法高亮、Ctrl+S 保存。
  • 状态栏:底部显示当前文件路径和保存结果。
  • 关闭方式:点击遮罩、按 Esc 或点 × 关闭面板,随 DSH 明暗主题自动适配。
  • 窄栏适配:侧栏收起成窄 rail 时自动切换为单图标按钮,展开时恢复完整两行结构。
  • 消息流尾巴:工具行路径、产物区文件按钮后追加「古法编程」尾巴,点击尾巴在插件内打开文件,点击按钮本身保持原有外部打开行为。

截图

侧边栏开关

侧边栏触发按钮

侧栏底部的「⌨️ 古法编程」按钮,点击展开或收起编辑器面板。

消息流文件按钮的古法编程后缀

消息流文件按钮后缀

消息流中工具行路径与产物区文件按钮后追加的「古法编程」尾巴:点击尾巴在插件内打开,点击按钮本身保持外部打开。

编辑器面板

编辑器面板

右侧滑入的完整编辑面板:左侧文件树、顶部多文件 Tab、中部 Monaco 编辑器、底部状态栏。

演示视频

| 古法编程插件演示 · 42 秒 | | :---: | | 古法编程插件演示 |

安装

dsh plugin --profile web add github:better-er/dsh-classic-coding

一条命令装完即生效,自动挂载,重启 DSH web 后启用,无需手工编辑任何组合文件。

卸载

dsh plugin --profile web remove dsh-classic-coding

彻底移除,重启 DSH web 后不再加载。

要求与开发

  • 标准形态:dsh 客户端插件,声明 dsh.client、导出 ./client
  • 自挂载 bundle:同时声明 dsh.bundle,用 dsh plugin --profile web add 从 GitHub 安装后自动识别为 profile layer 并挂载,无需手工写组合 entry。
  • 独立 RPC 通道:Host 端经 ctx.connection.rpc.handle('/classic-coding', ...) 注册 describe / listDir / readFile / writeFile 四个端点,提供文件树与编辑器读写,底层走 DSH 内置 ctx.fs 文件系统服务。/api 共享通道的唯一拦截器槽位已被官方 gateway 占用,插件端点必须走 handle 独立通道。
  • 无构建lib/index.jslib/client.js 均为源码即产物,package.json 声明 dsh.client.platform: "web"exports["./client"] → ./lib/client.js,改完即用。
  • UI 挂载点sidebar.footer.action 触发按钮、shell.overlay 编辑器面板两个插槽注入。
  • 样式:DSH 主题 CSS 变量 --dsw-alias-*,明暗主题自适应,data-ds-dark-theme 属性变化时实时跟随切换 Monaco 主题。
  • 编辑器加载:Monaco Editor 经 CDN 动态加载,React 组件从 loader 的 module table 获取,不引入任何额外 npm 依赖。

License

MIT