Back to home@KeyboardPrince

dsh-instruct-manager

DSH 插件:在设置面板管理全局与项目级 Agent 指令,支持多工作区 tab 切换与 system prompt 自动注入。

Stars
0
Language
JavaScript
Created
Aug 21, 2026
Updated
Aug 21, 2026
GitHub repo

Introduction

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 时,编辑和保存都针对所选工作区。