READMESource: main@f612b944
dsh-user-prompt
✍️ 给 DeepSeek Harness 加一段你自己的提示词:每次对话自动带上,设置页里能改,还能一键导入 Claude Code / Codex 的全局规则。
🧩 纯增量插件,不替换、不禁用任何官方插件。
✨ 是什么
- 📌 一段常驻提示词 —— 写一次,之后每个会话、每次请求都自动带上,不用重复交代背景和规矩。
- 🖱️ 设置页里直接编辑 —— 注入 DSH 设置 →「插件 → 插件配置」,一张卡片里开关、写 Markdown、保存,下一次提问就生效,不用重启。
- 📥 一键导入 —— 把
~/.claude/CLAUDE.md(Claude Code)或~/.codex/AGENTS.md(Codex)读进来,三个工具共用一套规则;导入块有边界标记,重复导入只替换自己那一块,不会越堆越长。 - 👀 独立一行显示 —— 注入走 DSH 的上下文通道,在对话流里单独一行「上下文注入」,可展开查看,能一眼确认规则注没注进去。
- 💾 导出成文件 —— 一键写到
~/.dsh/user-prompt.md,随你用任何编辑器改,再读回来。 - 🌍 不挑平台 —— Windows / macOS / Linux 同一份代码。
🚀 快速安装
dsh plugin --profile desktop add dsh-user-prompt
把 desktop 换成你实际在用的 profile 名(~/.dsh/profiles/ 下有哪个目录就是哪个)。装完重启 DSH、刷新界面生效。
# 直接装仓库
dsh plugin --profile desktop add github:Sxuan-Coder/dsh-user-prompt
# 克隆后本地注册(改代码不用重装)
git clone https://github.com/Sxuan-Coder/dsh-user-prompt
dsh plugin --profile desktop add "link:<克隆路径>/dsh-user-prompt"
🎯 怎么用
- 打开 设置 → 插件 → 插件配置 → 自定义提示词;
- 勾上「启用注入」,把规则写进文本框(或点「📥 导入 Claude Code」/「导入 Codex」);
- 点 保存 —— 下一次提问即生效。
导入内容会先落到草稿,确认后点保存才写进设置;「合并方式」可选「保留手工内容」(默认)或「整段替换」。
💬 斜杠命令:/user-prompt 看状态,/user-prompt path 看导出文件路径。
💡 亮点
| 亮点 | 说明 |
|---|---|
| 🧭 与系统提示词分离 | 走上下文通道,注入内容在对话流里单列一行、可展开,与系统提示词互不混淆 |
| ⚡ 保存即生效 | 注入内容是每次组装时求值的,保存后下一次请求就是新内容,不需要重启 |
| 🔁 导入幂等 | 导入块被 <!-- dsh-user-prompt:sync begin/end --> 包住,你手写的内容不会被覆盖 |
| 🛡️ 坏内容进不去 | 提示词里的完整 {{…}} 会被 DSH 当模板变量导致请求失败,插件在保存时就拒绝 |
| 🪂 失败可降级 | 设置服务、连接服务缺失时自动退回组合配置或只读,不会卡在 pending,也不连累提示词注入 |
| 🎨 与官方界面同族 | 卡片复用官方 PluginCard 的语义 token 与骨架,深浅色主题一致 |
📦 生效范围
standard(标准模式)、ptc、cordis三种 agent preset 以及 plan mode 都会注入;minimal模式用的是complete: true的固定极简提示词,它只覆盖"提示词段落"、不影响上下文通道,因此本插件同样注入(该模式本身没有 skill 目录,属它自身设计);- 提示词作为会话历史保留,中途修改只影响之后的请求。
⚙️ 配置项
一般不用手改,设置页里都能调;想写进 profile 配置:
| 字段 | 默认值 | 说明 |
|---|---|---|
enabled |
true |
总开关,关掉就不注入 |
prompt |
'' |
提示词正文(Markdown) |
syncSources |
[] |
上次导入选的来源(仅记录) |
lastSync |
'' |
上次导入时间(仅显示) |
maxSyncChars |
200000 |
单次导入的字符上限,超出会截断 |
🧑💻 开发
node test/smoke.test.mjs # 🧪 纯逻辑测试,10 项,不需要安装
node test/client-render.test.mjs # 🖼️ 设置卡片渲染契约
node test/host-integration.mjs # 🔌 用桩 ctx 跑真实 apply() + RPC(需已装进 profile)
代码结构:
lib/index.js Host 半区:设置注册、上下文注入、RPC、斜杠命令
lib/prompt.js 纯逻辑:路径解析、文件扫描、导入块合并、模板校验
lib/client.js 浏览器半区:设置卡片(预构建 JS,无需构建步骤)
cordis.patch.yml 插件注册补丁
🙋 排障
设置里看不到「自定义提示词」卡片 → 确认已重启 DSH(不是只刷新页面);再看 Host 日志 %APPDATA%\DSH Desktop\logs\host\dsh-<日期>.log 是否有这两行:
[I] [dsh-user-prompt] settings namespace "user-prompt" registered
[I] [dsh-user-prompt] RPC route /api/dsh-user-prompt registered
规则没生效 → 卡片里「启用注入」是否勾上、有没有点保存(标题会标「未保存」);对话里展开「上下文注入」看规则在不在;老会话可能保留历史快照,开个新会话确认。
导入按钮找不到文件 → 先确认 ~/.claude/CLAUDE.md / ~/.codex/AGENTS.md 存在,点「重新扫描」。
📄 License
MIT
No comments yet. Be the first to write one.