前言¶
在 DeepSeek Harness(DSH)的 Web profile 中,composer 里粘贴密钥、token 等敏感字符串时,明文可能直接进入发送给模型的消息和会话历史。dsh-secret-paste 针对这个场景:检测粘贴进 composer 的密钥,将密钥值存入官方 credentials seam,并在草稿中替换为 [secret:REF] 占位符。模型只有在需要时,才通过专用工具解析真实值。
这是什么¶
dsh-secret-paste 是一个 DSH 插件,维护者为 zhujiaqi,许可证为 MIT。它用于在 DSH Web profile 中减少敏感字符串以明文出现在消息和会话历史中的情况。
核心能力¶
- 检测粘贴进 composer 的密钥。
- 使用
@sanity-labs/secret-scan对粘贴文本进行扫描。 - 将密钥值存入官方 credentials seam:
~/.dsh/.credentials.yaml
文件权限为 mode 0600。
- 在草稿中将匹配范围替换为
[secret:PASTE_N]占位符。 - 提供
secret_resolve(ref)工具供模型按需解析真实值。 - 支持嵌套占位符的递归解析。
medium confidence命中时保留草稿文本,并提示确认Hide/Ignore。- 支持对检测器不识别的文本进行手动标记并
Hide & store。 - 使用碰撞安全的 refs,避免覆盖已配置 ref。
真实值只存在于当前标签页内存和 ~/.dsh/.credentials.yaml(mode 0600)。secret_resolve 的工具描述要求模型不要回显、重复或将值写入回复、文件、命令或工具参数。
安装与启用¶
要求 DSH Web profile;本文示例使用 web。
前置条件:
dsh CLI
pnpm
dsh CLI 和 pnpm 需要在 PATH 中。dsh plugin 是 pnpm forwarder。
安装插件:
dsh plugin --profile web add dsh-secret-paste
安装完成后,重启 dsh web 进程,因为服务器端 secret_resolve 工具在启动时加载。然后强制刷新浏览器标签页,使浏览器端 bundle 重新加载。
典型用法¶
1、在 composer 中粘贴 GitHub token(ghp_...)。检测命中后,文本会被替换为 [secret:PASTE_N],并显示 chip。
2、medium confidence 命中时,草稿文本会保留,并提示确认 Hide 或 Ignore。
3、对检测器不识别的文本,选中文本并使用 Mark selection as secret,然后 Hide & store。
4、模型需要真实值时调用:
secret_resolve(ref)
返回:
{ found, value, source }
5、若选择内容中已经包含 [secret:REF],secret_resolve 会递归解析嵌套占位符。
适用场景与注意¶
适合在 DSH Web profile 中需要处理密钥、token 等敏感字符串,并希望在消息与会话历史中避免明文出现的场景。
注意事项:
- 插件以当前
dsh进程权限运行,安装前应检查源码与许可证。 - 许可证为 MIT;
vendor/secret-scan.cjs为@sanity-labs/secret-scanv1.1.0(MIT),许可证保留在:
vendor/secret-scan.LICENSE
- 安装后需要重启
dsh web进程,并强制刷新浏览器标签页。 - 该插件面向 DeepSeek Harness Web profile;示例均使用
web。
项目仓库:
https://github.com/zhujiaqi/dsh-secret-paste