dsh-workspace-envrc
在终端中运行以下命令:
dsh plugin install TTTPOB/dsh-workspace-envrc
将以下提示词粘贴到 DeepSeek Harness 对话框中:
在 DeepSeek Harness 中运行安装命令即可启用该插件,源码仓库为 https://github.com/TTTPOB/dsh-workspace-envrc。
插件介绍
DSH Agent 在执行 Bash 命令和启动本地 stdio MCP 时,进程环境是扁平的——它不会感知工作目录下的 .envrc,也无法继承 direnv 已经配置好的变量隔离。dsh-workspace-envrc 正是为这个断层而生:它把 .envrc 的发现、求值、hash 授权与 allow/deny 全部委托给系统已安装的 direnv 可执行文件,自身不解析文件、不维护授权库、不修改 Harness 的 process.env,只做一层可逆的 method 装饰。
核心路径有两条。其一,当发起调用的 Agent 沿 scope ancestry 映射到 canonical workspace 时,foreground 与 background Bash 在新进程启动的瞬间冻结由 direnv 决定的环境;workdir、timeout、sandbox policy 等参数保持调用方原值。其二,映射到同一 workspace 的本地 stdio MCP 行被同样包装,而 global、HTTP、foreign scope 或格式错误的行原样透传。两条路径都不使用 shell: true 拼接路径,fiber dispose 时按逆序恢复 descriptor,失败的 MCP 安装会回滚已挂的 Bash adapter。
适合已经在多项目或多 workspace 场景中重度使用 direnv、同时跑 DSH Agent 的开发者或团队。它不替代 direnv,也不引入新的环境管理层,只是让 Agent 侧的执行正确读取你早已写好的 .envrc。
使用场景
- Agent 执行 Bash 命令时自动继承工作目录下 .envrc 配置的环境变量
- 本地 stdio MCP 进程启动时加载 direnv 求值后的环境,无需手动 export
- 多 workspace 并行运行时按 Agent scope 隔离环境,互不污染
适合人员
- 重度使用 direnv 管理项目环境变量的开发者
- 同时运行 DSH Agent 与多个 workspace 的跨栈团队
- 需要 Agent 执行与本地 MCP 进程共享原生环境配置的 SRE 或平台工程师