READMESource: main@08e356be
dsh-instruct-manager
DSH 指令管理插件 —— 在 DSH Web 的「设置 → 通用设置」中新增一个「指令」面板,用于编辑全局指令与项目级指令,让 AI 在每次会话中遵循自定义指令。
- 全局指令:写入
~/.dsh/Agents.md,对所有会话生效。 - 项目指令:写入
<workspace>/.dsh/Agents.md,仅对该项目会话生效,不影响全局。

功能
- 设置面板集成:在「语言」与「外观」之间插入可折叠的「指令」设置项。
- 全局 / 项目分段:以胶囊 tab 平铺所有已配置工作区,切换不同项目即可编辑对应项目指令。
- 不自动创建文件:插件加载时不生成任何文件;只有点击「保存」且内容非空时,才会落盘
~/.dsh/Agents.md或<workspace>/.dsh/Agents.md。 - 折叠状态记忆:首次安装默认展开,收起/展开后会记住选择,刷新或重新打开设置仍保持。
- 实时字数统计:右下角显示
当前字数/1500;超过 1500 字后统计变红,保存按钮禁用。 - 保存反馈:保存成功后右上角显示绿色
已保存 ✓,3 秒后自动消失。 - 空状态提示:textarea 为空时显示占位文案,引导用户写入指令。
- system prompt 注入:通过
ctx.systemPrompt.section将全局指令与当前项目指令拼接后注入每轮对话。
文件结构
dsh-instruct-manager/
├── index.js # 服务端入口:注册 /instruct/api/* 路由 + systemPrompt 注入
├── client/
│ └── client.js # 客户端入口:注册 settings.general.item 插槽 UI
├── cordis.patch.yml # cordis bundle 补丁
├── assets/
│ └── screenshot.png # 设置面板截图
└── README.md
安装
从 GitHub 安装(推荐)
dsh plugin add https://github.com/KeyboardPrince/dsh-instruct-manager
提示:git 源安装会执行仓库的
prepare脚本;pnpm ≥10 可能需要你授权allowBuilds。
从 npm registry 安装
dsh plugin --profile web add dsh-instruct-manager@latest
若插件以其他包名发布,替换为实际包名即可。
卸载
# 从当前 profile 移除插件
dsh plugin --profile web remove dsh-instruct-manager
# 如需彻底删除已写入的指令文件(可选)
rm ~/.dsh/Agents.md
rm <workspace>/.dsh/Agents.md
卸载插件不会自动删除你已保存的
Agents.md文件,避免误删自定义指令。
技术要点
- 合法 cordis bundle:服务端使用
ctx.webServer.register注册标准 Node HTTP 路由,不依赖 dynamic-package 的harness全局。 - 客户端插槽:客户端通过
settings.general.item插槽注入设置项,使用原生 DOM + React.createElement 渲染。 - 工作区来源:项目 tab 列表通过读取 DSH 工作区配置
~/.dsh/storages/workspace.json获取,不依赖当前 session 是否已打开工作区。 - 安全限制:API 仅接受本机回环(localhost / 127.0.0.1)请求;写入前会对 workspace 路径做规范化与绝对路径校验。
注意事项
- 字数上限为 1500 字(按 JavaScript 字符串长度计数)。
- 全局指令文件路径固定为
~/.dsh/Agents.md。 - 项目指令文件路径为
<workspace>/.dsh/Agents.md,保存后仅对该项目会话生效。 - 在任意目录启动
dsh web都能看到全部已配置工作区;切换到项目 tab 时,编辑和保存都针对所选工作区。
No comments yet. Be the first to write one.