DeepSeek Harness 插件

173787247/dsh-wsl-secret

Star 数 ★ 1 分类 WSL 与 Windows 互操作 收录于 2026-09-24

只读 pass / age 密钥(需 allowPrefixes);默认不明文回显。

安装

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

dsh plugin --profile web add github:173787247/dsh-wsl-secret

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWEDERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yamlallowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。

README

语言: 中文(本页) · English

在 DSH(Cordis)里安全读取 pass / age 密钥。

npm dsh-wsl-secret
环境 WSL/Linux,PATH 上有 pass 和/或 age
默认 不配 allowPrefixes 就读不了(故意的)
对比 dsh-wsl-cred = Git 凭据提示;本插件 = 应用 API Key

为什么要单独插件

  • dsh-wsl-cred → 只给 Git 推送/拉取的凭据提示
  • dsh-wsl-secret → OpenRouter、Discord Bot Token 等应用密钥

secret_status 显示 ready=false = 已安装但未配置,属正常安全默认。

5 分钟上手

1. 装工具(一次)

sudo apt install pass age
# 需要时: pass init <gpg-id>

2. 密钥放在同一前缀下

pass insert dsh/openrouter
pass insert dsh/discord-bot

3. Cordis 放行该前缀

编辑 profile 的 cordis.patch.yml(例如 ~/.dsh/profiles/web/cordis.patch.yml):

plugins:
  dsh-wsl-secret:
    enabled: true
    path: /mnt/c/Users/你/Desktop/AIFullStackDevelopment/dsh-wsl-secret
    config:
      allowPrefixes:
        - dsh
        # - ~/secrets          # age 用文件系统根
      reveal: false
      timeoutMs: 15000

重启 / 重载 profile。

4. 推荐工具链

步骤 工具 结果
检查 secret_status ready=true
列举 secret_pass_list 只有名字
确认 secret_pass_exists { exists: true }
使用 secret_to_env 写入 process.env,聊天里只有 preview
可选 secret_pass_get 预览(少用;勿开 reveal)
{ "name": "secret_to_env", "arguments": {
  "name": "dsh/openrouter",
  "envKey": "OPENROUTER_API_KEY"
}}

之后同一 dsh 进程内其它工具可读 process.env.OPENROUTER_API_KEY

工具一览

工具 作用
secret_status pass/age、allowlist、ready
secret_pass_list 只列名字
secret_pass_exists 是否存在
secret_to_env 首选 pass → 环境变量
secret_pass_get 预览读取
secret_age_to_env age → 环境变量
secret_age_decrypt age 解密(预览)

安全模型(摘要)

  1. allowPrefixes → 全部拒绝
  2. pass 名必须匹配前缀(dshdsh/...
  3. age 路径必须在列表里的目录根下
  4. 默认 reveal: false,结果不含完整密钥
  5. 优先 secret_to_env,避免把明文塞进模型上下文
  6. 永远不要把密钥贴进聊天

更细的英文说明见 README.en.md

License

MIT

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →

社区评论

评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。