前言¶
在 DSH Web UI 里长会话堆久了,侧栏会话列表会越来越长,当前对话的上下文也会越来越重。想「换个干净环境」时,通常做法是点侧栏新建会话,或输入 /new。dsh-plugin-context-cleanup-master(上下文清理大师)把这条路径包了一层客户端 UI:悬浮球常驻、先扫近期会话的真实 token 投影,再播放清理流程,最后调用与侧栏相同的 uiWorkspace.startSession() 开一个空白会话。作者 JJJACKsong 在 README 中写明这是整蛊向插件——「清理」是演出,唯一真实副作用是新建会话。
这是什么¶
- 名称:
dsh-plugin-context-cleanup-master(npm 包名相同) - 维护者:JJJACKsong
- 分类:客户端(纯浏览器半插件,平台 web ui)
- 许可证:MIT
- DSH 要求:
engines.dsh >= 0.2.0 - 当前版本(npm / package.json):1.0.2
插件不调模型、不注册 Tool、不发布 Service,对模型侧不可见。Host 半几乎是空壳 apply();界面通过 ctx.slots.inject('shell.overlay', …) 挂在帧级悬浮层,切会话不消失。
核心功能:哪些是真的,哪些是演的¶
README 用表格区分了环节。下面按使用顺序说明。
扫描(真实数据)¶
从宿主 sessions.list 快照读取近期会话,使用每行自带的 tokenUsage 投影(未缓存输入 / 输出 / 缓存读 / 缓存写等)。不打开任何会话正文,零模型调用。界面上出现的「无效上下文碎片」「重复会话缓存」等扫描项属于文案演出。
报告(部分真实)¶
- 真实:由真实 token 总量推导的上下文健康度评分(上下文越重分越低)、消耗最多的近期会话 Top3、真实 token 数与会话数。
- 演出:例如「可清理垃圾 XX.X GB」「已有大量用户使用」等数字。
流程是两段式:先看报告,再决定是否点「一键清理」。
清理与完成(演出 + 一个真实动作)¶
点「一键清理」后大约 1.9 秒清理动画与进度环;不删除任何会话、不写工作区文件、不写会话日志。完成页显示 100 分后,自动调用 uiWorkspace.startSession(),与侧栏「新建会话」同一入口。演出文案里的「已释放 XX.X GB」等不是真实磁盘或上下文回收。
若点「暂不清理」、右上角关闭或按 ESC,可随时退出,不会开新会话。
悬浮球与交互¶
- 默认在右下角;可拖动,位置写入
localStorage(键名ccm.ball.position.v1)。 - 点击球后从球边弹出管家卡片并自动扫描(约 2 秒)。
- 球上红点角标仅为装饰。
安装与启用¶
安装前请自行查看 GitHub 源码与 MIT 许可证;插件在当前 DSH 进程权限下运行,仅只读会话列表快照(标题 + tokenUsage),不 retain 会话历史,也不发起模型请求。
将 <profile> 换成你使用的 DSH profile 名。
从 npm 安装(README 推荐)¶
dsh plugin --profile <profile> add dsh-plugin-context-cleanup-master
也可在 DSH Desktop 插件管理页搜索包名安装。包页:https://www.npmjs.com/package/dsh-plugin-context-cleanup-master
从 GitHub 安装(锁定 main 分支源码)¶
dsh plugin --profile <profile> add github:JJJACKsong/dsh-plugin-context-cleanup-master
本地目录安装¶
将仓库落到本地目录后:
dsh plugin --profile <profile> add ./dsh-plugin-context-cleanup-master
亦可通过 Agent 的 plugin_manager 的 install_bundle,target 传目录绝对路径。安装后若 Web UI 未热更新,刷新一次页面。
卸载:
dsh plugin --profile <profile> remove dsh-plugin-context-cleanup-master
典型用法¶
- 在 DSH Web UI 或 DSH Desktop(
dsh web)中启用插件后,界面右下角(或你上次拖动后的位置)出现悬浮球。 - 点击悬浮球 → 等待约 2 秒自动扫描 → 查看健康度与 Top3 会话及 token 账本。
- 需要新空白会话时点「一键清理」→ 看完动画与完成页 → 自动进入新会话。
- 仅想看统计、不想新会话时,用「暂不清理」或关闭面板即可。
依赖宿主 Client 服务:slots、locale、sessions.list、uiWorkspace。任一缺失时插件不会弹出面板。
适用场景与注意¶
适合谁
- 希望在 DSH 里用可视化方式浏览近期会话 token 消耗,并习惯性用「清理」隐喻触发
/new的开发者。 - 写 DSH 客户端 UI 插件的同学:README「技术笔记」里记录了
corner-shape: superellipse导致圆形变 squircle、以及role="dialog"会被套上宿主模态皮肤等适配点,自绘卡片可用role="region"规避。
务必注意
- 本项目明确标注为整蛊插件:不要用于任何需要真实删除数据或回收上下文的场景。
- 所有「垃圾体积 / 释放空间」均为演出,不执行删除。
- 文案随宿主
locale中英切换;配色为插件自有「管家风」,不复用宿主主题色。
社区目录页(与 DeepSeek / 幻方无官方从属,仅为社区收录站点):https://www.skillhub.cn/plugins/JJJACKsong/dsh-plugin-context-cleanup-master
源码与完整说明:https://github.com/JJJACKsong/dsh-plugin-context-cleanup-master