DSH Plugins
返回列表
⚙️

dsh-direnv

工作流 更新于 2026.10.03

在终端中运行以下命令:

dsh plugin install Snowy117/dsh-direnv

将以下提示词粘贴到 DeepSeek Harness 对话框中:

在 DeepSeek Harness 中执行 dsh plugin install Snowy117/dsh-direnv 安装本插件(源码:https://github.com/Snowy117/dsh-direnv)。

插件介绍

在 monorepo、Nix/flake 或多项目工作区里,环境变量往往写在各目录的 .envrc 里,由 direnv 按当前路径加载。DeepSeek Harness 默认不会自动带上这些上下文,模型执行的 shell、子进程和 PTY 可能和你在终端里 cd 进去后的环境不一致,导致「本地能跑、Harness 里缺变量」的挫败感。

dsh-direnv 接管 Harness 的子进程接缝:按每次 spawn 解析后的工作目录调用 direnv export json,把差异合并进子进程环境。三条路径共用同一套事实来源且互不阻塞——注入在缓存命中时同步合并,未知目录先原样放行并在后台求值;会话启动时用 Gate 在环境尚未明确时短暂挂起工具调用;模型侧有简要通知,右侧 direnv 页签则用 DSH 自带组件展示状态、变量名、PATH 增删及凭据列表(可按需展开值)。子命令 cd 到子目录会拿到该目录的环境,.envrc 变更会在下一次工具调用时生效。

适合已经在工作区使用 direnv(且自行完成 allow)的开发者:需要 API Key、数据库 URL、toolchain PATH 等随目录切换,又希望 Agent 跑命令时与本地 shell 对齐。可选 injectSensitive 过滤形似凭据的变量名;需注意 .envrc 是可执行代码、MCP 与宿主侧辅助进程不经过此接缝,以及 nix 等场景下每次求值可能有可观开销。

使用场景

  • 工作区已配置并批准 .envrc,希望 Agent 执行的命令与本地 direnv 环境一致
  • 在 monorepo 或 Nix/flake 项目中按子目录切换 toolchain 与密钥
  • 需要侧栏查看 PATH 差异与变量加载状态,排查环境未注入问题

适合人员

  • 已在日常开发中使用 direnv 的工程师
  • 在 Harness 中跑 shell/git 等工具且依赖目录级环境的用户
  • 接受自行管理 direnv allow 与安全边界的技术团队