DSH 的《轻音少女》部费挂件:茶桌 + 五人 + 余额 / 峰谷 / 今天花费 / 每轮消耗,带双击彩蛋与中日台词
31.5/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add xiao2236/dsh-kon-fee-widget该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · desktop
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 1 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 21 处,展示前 21 条)
- 读取本地文件lib/index.js:255
const raw = await readFile(configFile(), "utf8"); - 写入本地文件lib/index.js:261
await mkdir(dirname(configFile()), { recursive: true }); - 写入本地文件lib/index.js:262
await writeFile(configFile(), renderConfig(fallback), "utf8"); - 写入本地文件lib/index.js:274
await mkdir(dirname(configFile()), { recursive: true }); - 写入本地文件lib/index.js:275
await writeFile(configFile(), renderConfig(next), "utf8"); - 读取本地文件lib/index.js:332
const stream = createReadStream(file); - 读取密钥环境变量lib/index.js:360
const env = process.env.DEEPSEEK_API_KEY; - 发起网络请求lib/index.js:405
const response = await fetch(BALANCE_URL, { - 读取本地文件lib/index.js:518
const missing = required.filter((rel) => !existsSync(join(ASSETS, rel))); - 读取本地文件lib/index.js:538
info = await stat(file); - 读取本地文件lib/index.js:604
const raw = await readFile(dailyFile(), "utf8"); - 写入本地文件lib/index.js:629
await mkdir(dirname(dailyFile()), { recursive: true }); - 写入本地文件lib/index.js:630
await writeFile(dailyFile(), JSON.stringify(daily), "utf8"); - 发起网络请求lib/client.js:726
const response = await fetch(`${ASSET_BASE}/config`, { cache: "no-store" }); - 发起网络请求lib/client.js:737
const response = await fetch(`${ASSET_BASE}/config`, { - 发起网络请求lib/client.js:892
const response = await fetch(`${ASSET_BASE}/balance?ts=${Date.now()}`, { cache: "no-store" }); - 发起网络请求lib/client.js:949
const response = await fetch(`${ASSET_BASE}/last-turn?ts=${Date.now()}`, { cache: "no-store" }); - 发起网络请求src/client.js:86
const response = await fetch(`${ASSET_BASE}/config`, { cache: "no-store" }); - 发起网络请求src/client.js:97
const response = await fetch(`${ASSET_BASE}/config`, { - 发起网络请求src/client.js:252
const response = await fetch(`${ASSET_BASE}/balance?ts=${Date.now()}`, { cache: "no-store" }); - 发起网络请求src/client.js:309
const response = await fetch(`${ASSET_BASE}/last-turn?ts=${Date.now()}`, { cache: "no-store" });
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-host-webserver给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成轻音部费罐 · dsh-kon-fee-widget
DSH 上的《轻音少女》部费挂件:原版大茶桌当底座,五人坐成一排;平时不显示数字,点一下茶桌才弹「部费账本」。
不是桌宠、不做提示音轰炸:只干三件事——看余额、看今天花了多少、看现在是不是高峰。
卡带气泡
功能
| 功能 | 说明 | 截图 |
| 茶桌底座 | 原版 desk00 背景 + 五人坐姿 + desk01 前景三层切分,中间三人有坐姿动画 | 见下 |
| 点开账本 | 点茶桌弹出:右上角高峰/谷价标签、余额、今天花费、计价进度条、左下角更新时间;8 秒自动收起 | 卡带|动物 |
| 高峰/谷价 | 标签配色区分(高峰橙红、谷价绿),进度条显示当前时段进度;周末与法定节假日全天谷价 | 同上 |
| 今天花费 | 宿主按 turn/end 累计当日金额,跨天自动归零 | 同上 |
| 每轮消耗 | 一轮对话结束用信息窗弹出:右上角「本轮」、金额、今天累计、更新时间(和余额账本同一套卡面) | 截图 |
| 双击彩蛋 | 按在场的人弹台词:单人在场只出本人台词;组合按概率触发 | 截图 |
| 中日对照 | 每条台词 {zh, ja},配置里 lang 切换 | — |
| 语音 | 台词可带 voice 文件名,播放 assets/voices/ 下的音频;齿轮菜单可关 | — |
展开完整文档(README 剩余 1 节)
轻音部费罐 · dsh-kon-fee-widget
DSH 上的《轻音少女》部费挂件:原版大茶桌当底座,五人坐成一排;平时不显示数字,点一下茶桌才弹「部费账本」。
不是桌宠、不做提示音轰炸:只干三件事——看余额、看今天花了多少、看现在是不是高峰。
卡带气泡
功能
| 功能 | 说明 | 截图 |
| 茶桌底座 | 原版 desk00 背景 + 五人坐姿 + desk01 前景三层切分,中间三人有坐姿动画 | 见下 |
| 点开账本 | 点茶桌弹出:右上角高峰/谷价标签、余额、今天花费、计价进度条、左下角更新时间;8 秒自动收起 | 卡带|动物 |
| 高峰/谷价 | 标签配色区分(高峰橙红、谷价绿),进度条显示当前时段进度;周末与法定节假日全天谷价 | 同上 |
| 今天花费 | 宿主按 turn/end 累计当日金额,跨天自动归零 | 同上 |
| 每轮消耗 | 一轮对话结束用信息窗弹出:右上角「本轮」、金额、今天累计、更新时间(和余额账本同一套卡面) | 截图 |
| 双击彩蛋 | 按在场的人弹台词:单人在场只出本人台词;组合按概率触发 | 截图 |
| 中日对照 | 每条台词 {zh, ja},配置里 lang 切换 | — |
| 语音 | 台词可带 voice 文件名,播放 assets/voices/ 下的音频;齿轮菜单可关 | — |
| 剧本连播 | 律+澪同时在桌时,双击进入「阳台相会」剧本:点一次播一句(共 17 句,按顺序、不随机,带配音),播完循环;17 句内置在代码里,配置留空即可用 | — |
| 人物可勾选 | 设置页五个按钮,关掉谁就连它那段桌子一起收起;全关则整桌不显示 | 截图 |
| 拖拽 / 吸附 / Q 弹 | 拖动挪位置,边缘 24px 内自动贴边,按下有回弹 | — |
| 齿轮菜单 | 右上角齿轮:大小滑杆 + 声音开关 + 回到右下角 | 截图 |
| 气泡比例 | 气泡面积 =(桌子+人物面积)× bubbleAreaRatio(默认 1.3),人少时自动变小 | 0.7× 示例 |
| 配置 | ~/.dsh/kon-fee-widget.json(带注释 JSON)或设置页「编辑配置」弹窗 | — |
两种气泡背景
| 卡带 | 动物 |
| 卡带 | 动物 |
其它截图
| 单人在场(桌子收短、气泡变小) | 双击彩蛋 |
| 单人 | 彩蛋 |
| 每轮消耗 | 齿轮菜单 |
| 消耗 | 齿轮 |
| 设置页 | 整张卡带原图 |
| 设置 | 整图 |
交互一览
| 操作 | 效果 |
| 单击茶桌 | 开/关账本 |
| 双击茶桌 | 弹彩蛋台词:单人在场只出本人一句;组合台词按「上一句 → 下一句」依次播放 |
| 点茶桌外任意处 | 收起账本 / 收起台词 |
| 台词显示时单击茶桌 | 剧本站下一句(律+澪场景) |
| 拖动 | 挪位置,松手吸附 |
| 右键 | 刷新余额并开账本 |
| 齿轮 | 开/关小菜单(会先收起账本) |
| 齿轮 → 大小 | 缩放整张桌子(气泡按面积比例跟随) |
| 齿轮 → 声音 | 开/关配音 |
| 齿轮 → 回到右下角 | 一键贴右下角 |
安装
桌面客户端(Electron)
1. 把本仓库复制到 %USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-kon-fee-widget;
2. 该 profile 的 package.json 里加依赖 "dsh-kon-fee-widget": "file:<仓库路径>",并加进 dsh.profile.bundles;
3. 重启 DSH(客户端包在启动时加载)。
DSH Web
dsh plugin --profile web add github:xiao2236/dsh-kon-fee-widget
配置
完整字段、默认值、范围、示例:docs/config.md。
概要(文件在 ~/.dsh/kon-fee-widget.json,带注释,手改后刷新页面生效):
{
"visible": true,
"characters": { "mio": true, "ritsu": true, "yui": true, "tsumugi": true, "azusa": true },
"scale": 1,
"snap": true,
"refreshSeconds": 60,
"warnBelow": 5,
"turnBubble": true,
"panelDurationMs": 8000,
"bubbleStyle": "cassette",
"bubbleAreaRatio": 1.3,
"easterEgg": true,
"eggLines": {},
"eggComboChance": 0.5,
"lang": "zh",
"voice": true,json
"easterEggLines": []
}
余额与消耗怎么来的
浏览器 GET /dsh-kon-fee-widget/balance → 宿主 lib/index.js ├─ ctx.credentials.get("DEEPSEEK_API_KEY") → GET api.deepseek.com/user/balance ├─ 没 key 时退到 DSH 账号服务 deepseekAccount.getBalance()(充值钱包 + 赠金相加) ├─ 45 秒缓存 + 并发合并 └─ 失败沿用上次余额(前端标注)
每轮消耗:宿主订阅 session/event,assistant/message 带真实 usage,按 (session, turn) 聚合, turn/end 时用官方价目表(Flash / Pro,谷价/高峰两档)算钱,写进当天累计与 last-turn。
API key 不会下发到前端。
开发与测试 bash
node scripts/build-client.mjs # src/core.cjs + src/client.js → lib/client.js
node scripts/check.mjs # 清单/素材/常量自检
node --test test/core.test.mjs test/host.test.mjs
npm run deploy # 原子部署到桌面 profile(拷贝 → 校验 → 整体替换)
npm run deploy:dry # 只拷贝+校验,不替换
npm run pack:dist # 打 dist/dsh-kon-fee-widget-<版本>.tgz(可挂 Release / 给 npm 装)
npm run release # build + check + test + pack + deploy 一条龙
node scripts/verify-install.mjs <安装目录> # 单独校验某个安装副本是否漏文件
curl http://127.0.0.1:<端口>/dsh-kon-fee-widget/health # 安装完整性:{ ok, missing[], version }
部署为什么要「原子」:直接删目录再拷到运行中的插件目录,Windows 文件占用或杀软扫描会让部分文件复制失败,结果是一个缺 assets/table/ 的半成品——canvas 拿不到贴图,表现就是「挂件完全不显示」,而宿主接口照常返回 200。
deploy.mjs 先拷到同级隐藏目录、逐个文件比对通过后才整体改名替换,失败会回滚到旧目录。
目录:
src/core.cjs 纯逻辑(几何、峰谷、金额、吸附、彩蛋选择) src/client.js React 挂件 + 设置页(h() 创建元素,无打包器) lib/index.js 宿主(静态素材、余额、配置、每轮消耗) lib/client.js 构建产物 assets/table/ 茶桌与五人坐姿 assets/ui/ 气泡背景(卡带、动物、Logo) assets/voices/ 语音文件(放这里) docs/ 配置文档与截图 test/ 单元测试 + 本地夹具
素材与许可
- 代码:MIT。
- 茶桌、角色立绘:取自原版 Windows 桌宠 MascotTable.exe(经 dsh-k-on-pet 项目整理),不属于 MIT,详见 THIRD_PARTY_NOTICES.md。
- 气泡背景(卡带 / 动物 / Logo):由使用者提供,版权归《K-ON!》相关权利方。
- 与 dsh-whale-widget 只有交互思路上的参考,未复制其代码或素材,见 NOTICE。
- 本项目是非官方同人作品,与权利方无关联。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
xiao2236/dsh-kon-fee-widget
DSH 的《轻音少女》部费挂件:茶桌 + 五人 + 余额 / 峰谷 / 今天花费 / 每轮消耗,带双击彩蛋与中日台词
相关插件 · 桌面端
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,111已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,341已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,449已汉化DSH
70.8
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,532已汉化DSH
70.7
桌面宠物伴侣OpenPetsHQ/openpets
桌面伴侣平台,带宠物、插件,还能选配本地智能体集成。
★ 1,353已汉化DSH
70.2