# 发布到 DSH 插件市场 **插件名**:`dsh-whale-girl-live2d` | **中文名**:鲸鱼娘桌宠 —— DSH 里的 Live2D 鲸鱼娘 **作者**:Andersen216()| **分类**:`fun` | **许可**:代码 MIT / 模型素材 CC BY-NC-SA 4.0(非商业) --- ## 一条命令发布 ```bash cd "/Users/andersen/DSH Workplace/dsh-live2d-pet" # 1) 先自检(不写任何东西):名字有没有撞车、dsh.bundle 在不在、署名齐不齐、git 干不干净 npm run publish:check # 2) 真发布:建仓库 → 推代码 → 给市场列表提 PR GITHUB_TOKEN=你的token npm run publish ``` `GITHUB_TOKEN` 需要的权限: | 仓库 | 权限 | | --- | --- | | `Andersen216/dsh-whale-girl-live2d` | Contents: **Read and write** | | `awesome-dsh-plugin/awesome-dsh-plugin` | Contents: Read and write + **Pull requests: Read and write** | (或者一个 classic token 勾 `public_repo` 就够了。) token 只从环境变量读,**不落盘、不写进 git config、不打日志**,推完还会把 remote 里的 token 换成干净地址。 不想给 token 也行:照下面的「手动三步」做,一样能上架。 --- ## 手动三步(不给 token 的路线) 1. **建仓库**: → 名字填 `dsh-whale-girl-live2d`,**不要**勾 README。 2. **推代码**: ```bash cd "/Users/andersen/DSH Workplace/dsh-live2d-pet" git remote add origin https://github.com/Andersen216/dsh-whale-girl-live2d.git # 已配过就跳过 git push -u origin main ``` 3. **提市场 PR**:打开下面这个链接,GitHub 会自动 fork 精选列表并把文件名填好, 把 `docs/投稿条目.yml` 里那段 YAML 粘进去、提交 PR: PR 合并后,站点与 `dshmarket`(市场界面)当天收录。 --- ## 以后怎么发新版本(一次配置,之后两步) **2026-09-25 已经发布过一次**: - 仓库: - 市场 PR: - Release: 把 token 存进 macOS 钥匙串一次(在你自己终端里跑,会提示你手动输入,**不会进 shell 历史**): ```bash security add-generic-password -a Andersen216 -s dsh-whale-girl-live2d-publish -w ``` 之后发新版本只有两步: ```bash # 1) 改代码、跑测试、改 package.json 的 version npm test && npm run smoke # 2) 一键发布(脚本自动从钥匙串读 token;仓库已存在,会直接推 + 更新市场条目) npm run publish ``` 撤销:钥匙串里删掉那条(`security delete-generic-password -s dsh-whale-girl-live2d-publish`), 或去 吊销 token。 ## 为什么名字长这样 - `dsh-whale-girl`、`dsh-whale-girl-pet`、`dsh-whale-pet` **在 npm 上都被别人占了** (分别是 nickkkkkk123123 / yanzwzz / eric0v0 的鲸鱼娘桌宠)。 插件名撞车最坏的结果是**市场把别人的包装给用户**,所以必须挑一个两边都空着的名字。 - `dsh-whale-girl-live2d` 在 npm 与 GitHub 上**都空闲**,同时把「鲸鱼娘」和「Live2D」都写进去了。 - 展示名不靠包名:README 首行与市场 `description` 才是「这是干啥的」—— 中文名「鲸鱼娘桌宠 —— DSH 里的 Live2D 鲸鱼娘」,英文名 “Whale Girl Pet — the Live2D whale-girl companion for DeepSeek Harness”。 ## 许可与署名(发布前自查清单) 1. `package.json` → `author: Andersen216`;`LICENSE` → `Copyright (c) 2026 Andersen216`。 2. `AUTHORS.md` / `PROVENANCE.md` / `README.md` 三处都写了 **上善无形 / ZipZipPipe / 氵六青**, 并给了 B 站主页链接。 3. 三处都写了**非商业**:不收费、不带货、不接广告变现、不卖周边、不作为付费产品的卖点。 4. 模型包的《使用须知》原文保留在 `PROVENANCE.md`(允许商用直播/自印、禁止盗用与出售)。 5. **只要模型素材还在仓库里,整个仓库都不能商用**——哪怕代码是 MIT。 ## 本地这份插件改名之后要注意 工作区目录没动(还是 `dsh-live2d-pet`),但 `package.json` 的 `name` 已经改成 `dsh-whale-girl-live2d`。你 DSH profile 里现在装的还是旧名 `dsh-live2d-pet`: - **正在跑的实例不受影响**(插件已经加载进内存了)。 - **下次重启 DSH 之前**,把 profile 里的依赖名一起改掉,否则可能认不出这个 bundle: ```bash dsh plugin --profile web remove dsh-live2d-pet dsh plugin --profile web add "link:/Users/andersen/DSH Workplace/dsh-live2d-pet" # 再把 ~/.dsh/profiles/web/package.json 里 dsh.profile.bundles 的 dsh-live2d-pet 换成 dsh-whale-girl-live2d ``` ## 别的 DSH 怎么装 ```bash dsh plugin --profile web add github:Andersen216/dsh-whale-girl-live2d ```