DeepSeek Harness 插件

dsh-rename

Slash command to rename the current DeepSeek Harness session, or let the model pick a title.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
lmst2/dsh-rename
最近更新
2026年8月14日
分类
记忆
GitHub stars
2
载体类型
bundle
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/lmst2/dsh-rename
插件名:dsh-rename
作者:lmst2

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-rename

![test](https://github.com/lmst2/dsh-rename/actions/workflows/test.yml) ![license](LICENSE)

DeepSeek Harness 的会话重命名插件:给当前对话补上一条 /rename 斜杠命令。带上名字直接改;不带名字时,让模型读一遍当前对话,自己总结一个标题并重命名。

为什么只做命令,不做自动命名

DSH 本身已经内置了自动命名:基础组合层挂载了 session-title-first-prompt-llm,在首条 prompt 进入后由 ctx.sessionTitle 自动生成会话标题。这个能力不需要重复实现,本插件只补 DSH 缺的那一块——你随时一键让它重新想个名字

安装

前置要求:已安装 DeepSeek Harnessdsh 命令可用);Node.js ^22.19>=24;pnpm 11。

从 GitHub 安装:

dsh plugin --profile web add github:lmst2/dsh-rename

dsh plugin 会把插件装进 web profile,并按包内 dsh.bundle 声明把它加入组合层。重启 DSH 服务后,/rename 会出现在斜杠命令菜单里。

> 重启生效:安装完成后,重启正在运行的 DeepSeek Harness Web 服务并刷新页面。

安装完可以用 dsh plugin --profile web list 确认插件在列表里。

其他安装方式

本地源码开发(改完 pnpm build 即时生效,host 侧改动需重启服务):

git clone https://github.com/lmst2/dsh-rename.git
cd dsh-rename
pnpm install
pnpm build
dsh plugin --profile web add "link:$(pwd)"

指定 GitHub 分支

dsh plugin --profile web add github:lmst2/dsh-rename#main

使用

直接在当前会话输入:

/rename

模型会读取当前会话的对话记录(直接用户消息 + 助手回复),发一次 purpose: session-title 的辅助模型请求,生成一个简洁标题并重命名当前会话。

带上名字则直接重命名,不走模型:

/rename 重构会话标题服务

两种方式都通过 DSH 内置的 ctx.sessionTitle.rename 落盘为 session/title 事件(source: user),因此:

  • 标题会实时反映到侧边栏/会话列表;
  • 该标题会被 pin 住,后续内置自动命名不会覆盖它;
  • 本插件不写任何自定义 session 事件,卸载插件后历史会话仍能被任意 DSH 构建正常读取。

配置

插件行在 cordis.patch.yml 中不传配置即使用默认值。需要覆盖时,在 profile 的 cordis.patch.yml 里定位 dsh-rename 行:

- id: dsh-rename
  config:
    targetWords: 6
    targetCjkCharacters: 12
    maxInputBytes: 32768
    maxOutputTokens: 64
    maxTitleBytes: 80
    timeoutMs: 60000
    provider: deepseek-official
    model: deepseek-v4-flash
字段默认值说明
targetWords6非 CJK 语言标题的目标单词数
targetCjkCharacters12中/日/韩标题的目标字符数
maxInputBytes32768喂给标题模型的对话摘要最大 UTF-8 字节数
maxOutputTokens64辅助生成的最大输出 token 数
maxTitleBytes80接受标题的最大 UTF-8 字节数
timeoutMs60000辅助请求的端到端超时(毫秒)
provider / model不填可选显式模型路由;不填则使用会话最近一次 request/header 记录的路由

providermodel 必须成对出现;缺一个会在启动时直接报错(fail loud)。

工作原理

1. /rename@deepseek-ai/dsh-commands 的斜杠命令注册表分发,不进入模型上下文。 2. 显式名字直接调用 ctx.sessionTitle.rename。 3. 无名字时,插件从 session.events 收集直接用户消息和助手回复(跳过合成上下文、reasoning 和工具结果),按字节预算保留最新内容,然后通过 ctx.llm.stream 发一次 purpose: session-title 的辅助请求。 4. 模型输出经 normalizeSessionTitle 清理、按 maxTitleBytes 截断后,同样走 ctx.sessionTitle.rename 提交。 5. 命令注册是 effect:插件 fiber 卸载时 /rename 一并消失(运行时替换安全)。

开发

pnpm install     # 安装依赖
pnpm typecheck   # 严格类型检查
pnpm test        # vitest 单元测试
pnpm build       # tsc 输出 lib/types
pnpm verify      # typecheck + test + build + 发布冒烟检查

提交前请保证 pnpm verify 全绿。

文档

文档内容
[docs/usage.md](docs/usage.md)配置、命令语义、错误处理与已知限制
[AGENTS.md](AGENTS.md)仓库布局与开发约定

License

[MIT](LICENSE) © dsh-rename contributors