在 DeepSeek Harness (DSH) 中,新建会话通常由第一条消息自动生成标题。如果第一条消息不完整或噪音较多,生成的标题可能不符合预期。dsh-session-namer 修改了这一流程,在创建会话前增加一步手动命名,确保标题由用户直接定义。
这是一个 DSH 客户端插件,由 CHIP-PHILO-GH 维护。它拦截了新建会话的操作,通过对话框让用户输入名称,从而替代默认的自动标题逻辑。项目采用 MIT 许可证。
核心功能¶
- 新建会话时先弹命名对话框:点击侧栏的「新会话」时,不再直接创建会话,而是先弹出对话框。
- 填入名字后永久钉住会话名:确认后,会话建立即使用该名字,不会被后续消息的自动标题覆盖。
- 留空则按第一条消息自动命名:在对话框中留空或直接回车,保持 DSH 原有的自动命名行为。
- 取消操作不创建会话:按 Esc 或点击取消按钮,不会创建任何会话。
- 实时预览与会话名:在对话框中输入时,实时显示会话列表中的显示效果。
- 按宿主上限截断提醒:自动检测并按宿主 80 字节上限进行截断提示。
- 自动适配主题:自动跟随 DSH 的亮/暗主题与皮肤。
安装与启用¶
这是一个纯客户端插件,未发布到 npm,需使用本地 link: 方式安装。
- 克隆或解压到本地目录,即
<包所在目录>。 - 编辑 profile 的
package.json(路径为$env:DSH_HOME\profiles\<profile>\package.json):- 在
dsh.profile.bundles中添加一行"dsh-session-namer"。 - 在
dependencies中添加一行"dsh-session-namer": "link:<包所在目录>"。
- 在
- 建立符号链接:
New-Item -ItemType Junction `
-Path "$env:DSH_HOME\profiles\<profile>\node_modules\dsh-session-namer" `
-Target "<包所在目录>"
- 重启
dsh web生效。客户端插件代码在页面里加载,刷新页面无法生效。
典型用法¶
- 点击侧栏的「新会话」按钮。
- 在弹出的对话框中填入名字并确认,会话将以该名字建立。
- 留空或直接回车,则按第一条消息自动命名。
- 按 Esc 或点击取消按钮,不创建会话。
注意事项¶
- 依赖声明:插件需声明注入服务
locale,slots,sessions,uiWorkspace。如果缺少声明,插件可能因服务缺失而静默失效。 - 权限:插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
- 平台:纯客户端插件,运行在 web 平台。
- 截断限制:会话名按宿主 80 字节上限截断。
结语¶
通过这一插件,开发者可以更精确地控制会话的初始命名,提升会话管理的效率。更多技术细节与源码,可参考 GitHub 仓库。