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-noname-kit

v1.9.0

Published

Noname (无名杀) extension workshop for DeepSeek Harness: AI writes skills/cards with official-reference search, validation-gated writes, task history, and a web workshop panel.

Readme

dsh-noname-kit

无名杀扩展开发工坊,一个 DeepSeek Harness 插件。

让 AI 按规范写无名杀(Noname)的武将技能和卡牌扩展:规范注入、官方源码搜索、 静态校验、任务管理都有插件兜底;游戏扩展目录只认专用写入通道,AI 抄错或删错 代码会被工具层拦下,覆盖前自动备份。

另外还带一个跨网络联机助手:双方装本插件,就能开 P2P 房间一起玩(免公网 IP), 客人缺的扩展包自动补传。

工坊:任务表单与任务列表

历史页:扩展总览、备份回滚与注意点清单

联机助手:P2P 房间、内核心跳状态与扩展体检

安装

需要 DeepSeek Harness 和 pnpm。

dsh plugin --profile web add dsh-noname-kit

装完重启 dsh。重启后点输入框左边的「🛠 工坊」→ 进「⚙ 设置」页 → 点一下「♻️ 重装 preset」,AI 的「无名杀开发模式」人格与规范就装好了。不用开终端。

提示:DSH 0.1.7 起(含桌面版)不需要点这个——preset 随插件自动就位,重启后直接可用;这个按钮只在 0.1.6 及以下的环境出现。

想用命令行也行(脚本在插件目录里,路径是 C:\Users\<你的用户名>\.dsh\profiles\web\node_modules\dsh-noname-kit):

node scripts/install-preset.mjs

从 GitHub 装(与 npm 等价):

dsh plugin --profile web add https://github.com/qtaik/dsh-noname-kit.git

桌面版(DeepSeek Harness 桌面应用)

桌面版有自己独立的环境,安装方式不同:打开桌面版,左侧「插件」面板 → 「添加插件」→ 输入 dsh-noname-kit → 安装 → 重启桌面版。需要 1.8.1 或更高 版本(桌面版会拒载旧版)。也可以用桌面版自带的命令行:

E:\dsh\resources\runtime\cli\bin\dsh.cmd plugin add dsh-noname-kit@<版本号>

注意:这条命令不要加 --profile web——桌面版的 dsh 命令默认指向它自己的 环境,带了反而会装进 Web 环境,桌面版看不见。装完新建会话选「无名杀开发 模式」即可(preset 随插件自动就位,无需重装),再到工坊「⚙ 设置」配一次游戏 目录。升级:在插件面板卸载后重装新版本(桌面版面板暂不支持自动更新)。

配置

重启 dsh web 后打开 Web UI。工坊页里没配游戏目录会先出初始化向导:填无名杀 本体目录(含 extension/ 的那层,比如标准结构 D:\Games\noname\resources\app、 新版结构的 ...\resources\app\src 层),或者点「自动扫描」。配置保存在 ~/.dsh/noname-kit.json,之后随时可以在工坊「⚙ 设置」页改。

不配置也能用:写入方式选「手动复制」,AI 只生成代码不落盘。

使用

新建会话时建议选「无名杀开发模式」preset:七个无名杀工具在该模式下常驻可用, 开发规范(确认协议、区块化读写、检索纪律)也随之注入。普通会话默认没有这些 工具——技术上可以通过 dev_tool_search 按需解锁,但规范不会跟着来,所以还是 建议挂对模式。

「无名杀工坊」页签里建任务:选类型(武将/卡牌/🎲 新玩法自定义模式)、写法(老版 game.import / 新版 ES Module;🎲 新玩法固定新版)、填技能描述或玩法描述。🎲 新玩法 交付的是一个可用游戏主菜单进入的独立模式:填一句话核心玩法 + 自由描述玩法细节, AI 会先探测引擎版本、把描述逐条拆成规则再给确认单。提交后 AI 会先给需求理解确认, 有歧义会先提问;收到明确的「确认」回复后才会动笔——写完自动校验、写入,并提醒进游戏测试。

游戏里发现问题就在任务列表点「🔁 反馈」,把现象或报错发给 AI;每轮反馈自动 累计轮次。新建任务在逐技能(🎲 新玩法为逐条规则)确认无误、图片也就位后自动归档 (任务里登记了配音的,还要等配音复制进包;🎲 新玩法无立绘/卡图,不强制补图); 编辑已有条目的任务不强制补图,技能全部确认后即归档。

配音支持:表单技能行可填本地 mp3(一句到多句都行),武将还能填阵亡语音;AI 写 技能时带 audio 字段并把文件复制进扩展包 audio/skill/、audio/die/ 目录——配音文件 只进扩展包,绝不写游戏本体目录。阵亡语音是零代码的,文件放对就生效。

已有的扩展包不用从零开始:任务模式选「📂 编辑已有扩展包」,选中扩展包后照常 走确认协议。老文件可以先点「🔨 建立区块索引」,给条目所在的 .js 文件插入锚点 注释(只加注释行、自动备份;多文件包会对每个含条目的文件逐一处理),之后 AI 按区块读写,不必每次翻整个文件。

编辑已有武将/卡牌时,选中目标就会列出它关联的技能:勾选要修改的技能、在旁边 写清改成什么,每个勾选的技能都是一个独立的任务节点,可以单独确认和反馈; 「改动描述」留给武将本身的变化(体力、护甲、名称等)。编辑任务不强制补图, 技能全部确认后任务即自动完成。编辑 🎲 新玩法包则没有条目下拉:直接用「模式骨架 改动」+「新增或调整的规则」描述想要的变化,AI 读完整个包的现状后逐条给确认单。

七个 AI 工具

| 工具 | 作用 | |---|---| | noname_search_reference | 在本地游戏源码里搜官方相似实现(纯读) | | noname_validate | 语法编译检查 + 静态规则校验(不执行代码) | | noname_read_extension | 读扩展当前代码(先读后改) | | noname_write_extension | 唯一写入通道:先校验,error 拒写,覆盖前自动备份 | | noname_skills_written | 标记技能「已写入待测试」,全部确认后自动收口(新建任务还需图片/配音就位) | | noname_copy_images | 把本地图片复制进扩展包 image/ 目录 | | noname_copy_audio | 把本地配音 mp3 复制进扩展包 audio/skill、audio/die 目录(不碰本体) |

普通 write/edit/bash 对游戏 extension 目录的写入会被守卫拒绝,不用担心 AI 绕过校验直接改文件(读、搜、看目录完全不受限)。

🌐 联机助手

工坊「🌐 联机」页签里的另一个功能:跨网络开 P2P 房间一起玩,免公网 IP。双方都 装本插件即可——游戏里装一个无头的「内核」负责联机(联机页一键安装)。

  • 建房:选模式建房间拿 6 位房号,朋友输房号加入;房号连不上的朋友,房主点 「生成邀请码」发他一张,从另一道门进同一个房间。人满自动排队,有人退出自动补进。
  • 打完一把回大厅:房号不变,点「载入到游戏」开下一局;掉线会自动重回。
  • 包体检与补传:进房自动对比双方扩展清单,客人缺的扩展由房主自动补传, 保证两边选将池一致。
  • 内核:联机页点「📦 安装内核」装进游戏 extension/ 目录,再到游戏「扩展」菜单 给「联机助手」点「启」并重载。升级插件后记得点「⬆️ 升级内核」——两端内核版本 要一致(房号通过信令服务器牵线,版本不同会互相连不上)。

联机以官方版无名杀为准(第三方套壳尽力而为);对局数据是点对点直连,信令服务器 只负责牵线。

「无名杀开发模式」preset

presets/noname-dev 是一个 Zero-Anchored 架构的 agent preset(参考 xiaobright/dsh-anchored-standard,MIT):首轮不开放任何工具,之后常驻集只保留 shell、编辑器和上述工具,web 等重工具按需解锁;完整开发规范走 skill 按需 加载,不占 system prompt。

更新

工坊「⚙ 设置」页顶部是「版本与一致性」,两块各管一件事:

  • 插件:显示当前版本,有新版本时给出升级命令(只提示,不自动更新)。升级命令是 dsh plugin --profile web add dsh-noname-kit@<版本号>(指名版本可自动通过 pnpm 的 发布冷却期;不带版本的 update 会被冷却期静默挡住)。link 方式加载的插件不参与 版本检测(加载的就是源码目录本身)。DSH 0.2.0(桌面版)起也可以在官方「插件」 面板里卸载后重装来升级。
  • 开发模式 preset:preset 是插件行为的第二份副本(人格、常驻工具名单、技能文档), 插件更新后不重装它会拿到自相矛盾的指令,而且不报错——所以单独盯一行。发现不一致 点「♻️ 重装 preset」即可(覆盖前自动备份成 noname-dev.bak-<时间戳>);装完对 新建会话生效。

任一项有问题时,输入条上的 🛠 按钮会带一个小红点。版本信息从 npm registry 和 GitHub tag 取,查不通只显示一行「检查失败」,不影响使用;「启动时自动检查」可以在 设置页关掉,改成手动点。

已知限制

  • 新建会话发第一条消息前,顶部页签栏不显示——这是 DSH 空白会话的官方设计, 发一条消息就出来了。
  • 插件的 HTTP API 随 Web 服务暴露,只建议本机使用。
  • 运行期错误(逻辑对不对)插件管不了,仍要进游戏验证后走「问题反馈」。
  • 引擎默认不去扩展的 image/ 子目录找立绘,武将/卡牌定义里要显式写 img 字段, 工坊的任务流程和规范文本里都有说明。
  • 技能配音的 audio 字段必须写扩展包内路径(audio: "ext:包名/audio/skill:句数"), 不带 ext: 的写法会被校验器警告(那会去游戏本体 audio/ 目录找文件);阵亡语音 则是零代码,mp3 放进包内 audio/die/ 即生效。
  • 新式 ES Module 多文件扩展包(如懒人包预装的英雄杀、杀海拾遗)已支持区块化 编辑:条目在子目录模块里(const character = {…} 形态)也能识别,读写按文件 进行。仍不支持运行时赋值形态(pack.skill.xxx = {},条目没有字面量可锚)。

测试

node scripts/test-tasks.mjs      # 任务状态机(含配音门禁、备份往返),90 项
node scripts/test-audio.mjs      # 配音复制与目标校验,13 项
node scripts/test-detect.mjs     # 游戏目录自动探测与遍历,9 项
node scripts/test-blocks.mjs     # 区块读写,85 项
node scripts/test-update.mjs     # 版本比较与更新检查,121 项
node scripts/test-preset.mjs     # preset 自检与安装,88 项
node scripts/test-online.mjs     # 联机助手(内核状态/桥/头像扫描/重试策略),45 项
node scripts/test-guard.mjs      # extension 目录写保护(路径归一化/bash 分析),63 项
node scripts/test-ui-calls.mjs   # 界面代码调用形态静态扫描(e()/h() 误用防护),6 项

合计 520 项断言。

反馈

插件有问题欢迎提 issue,附上复现步骤和报错更好。

杂谈

其实在 agent 这个概念兴起之前,就已经在用 AI 写复杂代码了——从 ChatGPT-3 一路用到 4.5。那时候的办法:建一个自定义智能体,把代码规范传进知识库,写之前再去官方源码里 找类似的实现粘进对话当参考,AI 写出来的东西才像样。这个插件,本质上是把那套网页版 习惯搬了过来:知识库变成了常驻注入的规范文本,手动粘参考变成了 noname_search_reference 自动搜索,每次手动调教变成了确认门禁和写入守卫——强制执行的那种。

之所以选 DSH,一是它可塑性高,能自定义地强制约束 AI 的行为;二是不像网页版那样 每次开新会话都得重新教一遍规矩,规范和工具由 preset 和插件常驻注入,上下文不浪费。 测试模型用的是 deepseek-v4.1-flash。 如果你也在玩无名杀、也在用 DeepSeek Harness,欢迎装上试试——把想要的武将或卡牌 用一句话描述给 AI,剩下的交给流程。用得顺手点个 star;遇到问题欢迎提 issue; 写出了有趣的扩展,更欢迎回来说一声。写扩展这件事,从翻代码、粘对话,到动动嘴 就行——工具已经准备好了,就等你了。

卸载

dsh plugin --profile web remove dsh-noname-kit

联机内核(游戏 extension/ 目录里的「联机助手」)不会被自动删除,不用了在游戏 「扩展」菜单里删掉即可。

MIT License