Bundle
dsh-instruct-manager
DSH 全局指令管理插件 — 在设置界面中编辑 Agents.md 指令文件
- Source
- KeyboardPrince
- Updated
- Updated 19 days ago
Readme
# 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 安装(推荐) ```bash dsh plugin add https://github.com/KeyboardPrince/dsh-instruct-manager ``` > 提示:git 源安装会执行仓库的 `prepare` 脚本;pnpm ≥10 可能需要你授权 `allowBuilds`。 ### 从 npm registry 安装 ```bash dsh plugin --profile web add dsh-instruct-manager@latest ``` > 若插件以其他包名发布,替换为实际包名即可。 ## 卸载 ```bash # 从当前 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 时,编辑和保存都针对所选工作区。
Install
dsh plugin --profile web add github:KeyboardPrince/dsh-instruct-manager#08e356be18a70b417f4ca9ed265b533d87ed21d3
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-instruct-manager from the hub