- Home
- Plugin
- Sessioni e messaggi
- dsh-plugins (dsh-session-manager)
dsh-plugins (dsh-session-manager)
wsxwj123/dsh-plugins/packages/dsh-session-manager
Delete sessions with a 5-second undo and a recycle bin, plus an archive view to browse and unarchive, for the DSH Web GUI.
Installazione
dsh plugin --profile web add github:wsxwj123/dsh-pluginsQuesto plugin si trova nella sottodirectory packages/dsh-session-manager del repository.
README
dsh-plugins 中文说明
这是一个用于 DeepSeek Harness 的插件集合仓库。仓库采用 monorepo 结构,每个插件放在 packages/ 下的独立目录里,互不影响。
当前插件
| 插件 | 功能 |
|---|---|
dsh-theme-gallery | 提供 15 个精选主题家族,跟随 DSH 原生“浅色 / 深色 / 跟随系统”外观设置。 |
dsh-skin-gallery | 独立承载 9 个完整 dsh-web-ui 皮肤复刻,避免主题设置页加载大体积皮肤资源。 |
dsh-turn-scrubber | 在对话右侧显示回合刻度,悬停展开,点击跳转到对应用户回合。 |
dsh-pet-bridge | 桌面宠物状态桥:把 dsh 会话状态(思考中 / 读取文件 / 运行命令 / 完成)实时推送到 cc-pet 桌面宠物气泡。 |
dsh-session-manager | 会话删除(5 秒可撤销 + 回收站式硬删)与归档视图(查看/取消归档)。 |
dsh-composer-tools | 输入体验增强:方向键输入历史(首/末行门槛)+ 指令查看/编辑面板(全局+项目 AGENTS.md/CLAUDE.md)+ 提示词库(780 条,发送到输入框/复制)。 |
界面预览
主题画廊
真实运行界面:

对话回合刻度
悬停时会显示对应回合摘要,点击刻度可跳转:
仓库结构
packages/
theme-gallery/ # 主题画廊插件
turn-scrubber/ # 对话回合刻度插件
pet-bridge/ # 桌面宠物状态桥插件(配合 cc-pet 使用)
dsh-session-manager/ # 会话删除 + 归档视图插件
dsh-composer-tools/ # 输入体验增强(方向键历史/指令面板/提示词库)
每个插件都有自己的:
- 源码;
- 构建产物;
package.json;cordis.patch.yml;- README;
- 更新日志。
以后新增插件时,在 packages/ 下新建独立目录,不把不同插件混在一个包里。
安装插件
先克隆仓库:
git clone https://github.com/wsxwj123/dsh-plugins
cd dsh-plugins
然后按需要安装某个插件。
安装主题画廊
dsh plugin --profile web add "link:$PWD/packages/theme-gallery"
安装回合刻度
dsh plugin --profile web add "link:$PWD/packages/turn-scrubber"
安装桌面宠物状态桥(需要先装 cc-pet)
dsh plugin --profile web add "link:$PWD/packages/pet-bridge"
前置条件:本机需已安装 cc-pet 桌面宠物(它监听
127.0.0.1:7779接收状态推送)。pet 端代码无需任何修改。详见 packages/pet-bridge/README.md。
安装会话管理
dsh plugin --profile web add "link:$PWD/packages/dsh-session-manager"
安装完成后,重启当前 dsh web 进程,并刷新已有页面地址。不要另起第二个 Web 服务。
安装后请检查
~/.dsh/profiles/web/node_modules/@deepseek-ai是否被创建成真实目录。若是,应按 DSH 本机规则处理,避免 Cordis / Tool Symbol 分裂。相关背景见 deepseek-harness discussion #783。
安装输入体验增强(方向键历史/指令面板/提示词库)
dsh plugin --profile web add "link:$PWD/packages/dsh-composer-tools"
同样先 cd packages/dsh-composer-tools && pnpm install && pnpm build(lib/ 不入库),装完重启 dsh web,并执行上面的 @deepseek-ai 物理复制检查。
提交到 DSH Plugins 目录
dshplugins.com 是独立的社区插件目录,不是 DeepSeek 官方站点。它的收录规则是:
- 仓库必须是公开 GitHub 仓库;
- 提交后进入人工审核队列;
- 审核者会检查名称、摘要、安装类型、目标 profile、README 和安装命令;
- 通过后才公开显示;
- 收录不等于安全背书,用户仍应阅读源码后安装。
本仓库目前适合按“Local checkout”类型提交,目标 profile 为 web。提交入口是:
提交页面要求登录。先使用仓库根 URL 做 repository inspect,再选择安装类型并填写简短摘要。建议分别提交多个插件时,使用各自独立 README 的安装路径说明,避免用户把整个 monorepo 误当成单个插件。
本地构建
pnpm build
pnpm check
仓库中的 DSH 运行时包被声明为可选 peer dependency,避免把第二份 DSH/Cordis 打进插件包,减少运行时符号不一致的问题。
主题画廊简介
主题画廊当前提供 15 个主题家族:
- 翠玉 / Jade
- 陶土 / Terracotta
- 余烬 / Ember
- 星夜 / Starlight
- 蔷薇雾 / Rose Mist
- 紫晶 / Amethyst
- 琥珀旧梦 / Amber Retro
- 墨川 / Ink River
- 苔境 / Mossland
- 日蚀 / Eclipse
- 天际 / Horizon
- 晴蓝 / Azure
- 黑白界 / Monochrome
- 粉霞 / Blush Dawn
- 紫雾 / Lilac Mist
插件只负责选择主题家族。浅色、深色和跟随系统仍由 DSH 自带的“外观”设置控制,两者不会互相覆盖。
自定义主题(CSS-only JSON 导入)
主题画廊支持导入自定义主题。自定义主题只做 CSS 变量注入,不执行任何 JS。JSON 形状:
{
"id": "my-jade-tweak",
"label": "我的主题",
"tokens": {
"--dsw-alias-bg-base": { "light": "#fff", "dark": "#111" },
"--dsw-alias-brand-primary": { "light": "#07c160", "dark": "#07c160" }
}
}
必须含 id、label、非空 tokens;每个 token 名必须以 --dsw- 开头,值是 { "light": 字符串, "dark": 字符串 }。导入后支持试穿 / 应用 / 删除 / 恢复默认。非法导入一律不改当前外观,并抛出带 code 的错误(见下文错误表)。
完整皮肤自定义(skin-gallery)
dsh-skin-gallery 内置 9 款完整皮肤复刻,每款支持试穿与应用,删除/恢复默认后回到 none。皮肤包为受控导入格式,三文件平铺:
my-skin/
├── skin.json # 元数据(必含 id / name / author / license)
├── client.js # 契约:注册 __ModuleLoader__.load 并导出 apply(ctx)
└── a11y.css # 可选;缺失则降级(皮肤仍可用,仅无对比修正)
skin.json缺id / name / author / license任一拒绝(author 与 license 必填,尊重 BSD-3 保留要求)。client.js必须window.__ModuleLoader__.load({ id, factory })、factory 导出apply(ctx),且apply只消费ctx.effect/ctx.get。- 高危能力拒绝:含
eval(、new Function(、import(、非内联require(、<script src=、fetch(、XMLHttpRequest(、WebSocket(、localStorage/sessionStorage直读写、document.cookie、chrome.runtime任一的包拒绝导入。 - 单包(skin.json + client.js)UTF-8 安全的 base64 后 ≤ 256KB;自定义皮肤总数 ≤ 8 个。
导入后同样支持试穿 / 应用 / 删除 / 恢复默认。
状态机与主题↔皮肤互斥
主题与皮肤各维护独立状态机(内置 + 自定义轨共用):
none ──import──▶ registry(未选) ──preview──▶ preview ──apply──▶ applied
▲ │ │
└───restore_default┴──delete(registry 移出;若为 applied 回默认)───┘
preview:仅运行时生效,刷新即丢,不写applied键。applied:写入applied键,页面加载时按轨恢复。- 两包经共享键
dsh-appearance-track-v1软互斥('theme' | 'skin' | ''):同一时刻至多一个轨激活外观。
错误码
导入/操作失败统一抛 { code, message },且不改当前外观、不写任何 storage 键:
| code | 说明 |
|---|---|
ERR_IMPORT_INVALID_JSON | 主题 / 皮肤 JSON 解析失败 |
ERR_THEME_MISSING_FIELD | 主题缺 id/label/tokens 之一,或格式非法 |
ERR_THEME_BAD_TOKEN | token 名非 --dsw- 前缀,或值非 {light,dark} 字符串 |
ERR_THEME_ID_CONFLICT | 与内置主题 id 冲突 |
ERR_SKIN_MISSING_FILE | 缺 skin.json / client.js |
ERR_SKIN_BAD_META | skin.json 缺 id/name/author/license(author/license 必填) |
ERR_SKIN_CONTRACT | client.js 不满足 ModuleLoader/apply/ctx.effect 契约 |
ERR_SKIN_DANGEROUS | client.js 含高危能力(eval/fetch/…) |
ERR_SKIN_SIZE | 单包 base64 后超 256KB |
ERR_SKIN_COUNT | 自定义皮肤超 8 个 |
ERR_UNKNOWN_ID | 试穿/应用不存在的自定义 id |
ERR_A11Y_MISSING | a11y.css 缺失(非致命,仅日志,皮肤仍可用) |
许可证
MIT
Plugin correlati
dsh-turn-rewind
anionex/dsh-turn-rewind
dsh-chat-import
nwflower/dsh-chat-import
dsh-suite (plugin-session-export)
whyihaveyou/dsh-suite
dsh-interconnect
chinesezjc/dsh-interconnect