跳到正文

Momojie-S/dsh-workspace-env

30最近提交 2026年8月14日

dsh-workspace-env DSH 插件

dsh-workspace-env 是一个 DSH 插件,在每次调用 pwsh 工具时自动读取工作区根目录的 `.env` 文件,并将其变量注入子进程环境。修改 `.env` 后立即生效,无需重启 agent。支持 `${VAR}` 引用、忽略 `DSH_*` 前缀变量,并让工作区 `.env` 拥有最高优先级。

如何安装 dsh-workspace-env DSH 插件

dsh plugin --profile web add github:Momojie-S/dsh-workspace-env

复制不会执行命令。安装 dsh-workspace-env DSH 插件前请核对仓库和版本。

dsh-workspace-env DSH 插件数据来源

dsh-workspace-env DSH 插件快照日期:2026年8月16日

discovered

dsh-workspace-env DSH 插件能做什么

  • 每次命令调用时实时读取工作区的 `.env` 文件
  • 支持 `${VAR}` 引用父环境变量及同文件中先定义的变量
  • 忽略以 `DSH_*` 开头的键,避免与 DSH 管理变量冲突
  • 工作区 `.env` 中的同名变量覆盖系统变量和 DSH 注入的变量
  • 自动去除值两端的单引号或双引号
  • 支持 `#` 注释行和空行

dsh-workspace-env DSH 插件适合哪些场景

  • 在不同项目间隔离 API Token,避免泄露到其他工作区
  • 切换工作区时自动切换对应的环境变量,无需手动配置
  • 临时调试时修改 `.env` 文件,下次工具调用立即生效
  • 在系统 PATH 前追加自定义路径,同时保留原有环境变量

dsh-workspace-env DSH 插件适合谁

  • 使用 `pwsh` 工具的 DSH 用户,需要每个工作区独立的环境变量
  • 管理多个项目、每个项目环境配置不同的开发者

dsh-workspace-env DSH 插件的限制

  • 仅支持 Windows PowerShell(pwsh),bash 链路未覆盖
  • 需要 DSH `0.1.0-rc.6` 或兼容版本(依赖 shell 服务的 `spawnSpec` 内部方法)
  • 必须安装在使用了 `pwsh-sandbox` 的 profile 中,且通过 patch 方式保留文件沙箱能力

dsh-workspace-env DSH 插件的仓库 README 摘录

以下文字摘自 dsh-workspace-env DSH 插件的上游仓库 Momojie-S/dsh-workspace-env 的 README,版权归原作者,仅作引用。

> npm 包名:`@momojie-s/dsh-workspace-env` DSH 插件:`pwsh` 工具每次调用时,自动把当前 workspace 目录下的 `.env` 注入子进程环境变量——workspace 级环境变量隔离,切项目自动切 env,agent 无感知。 ## 环境要求 - DSH `0.1.0-rc.6`(已验证。依赖 shell 服务的 `spawnSpec` 内部方法,升级 DSH 后建议重跑验证) - Windows pwsh(bash 链路未覆盖) ## 用法 workspace 根目录(session cwd)放一个 `.env`: ```bash GH_TOKEN=gho_xxx QUOTED="value with spaces" # 成对单/双引号自动去除 PATH=D:\mytools;${PATH} # ${VAR} 引用父环境,PATH 前置追加 # # 开头是注释;空行、无 = 的行跳过 ``` - `.env` 每次命令调用现读,**改完立即生效,无需重启** - `DSH_*` 前缀的 key 一律忽略(DSH 管理变量有自己的通道) - **同 key 覆盖**:workspace `.env` 优先级最高,赢过系统环境变量、DSH 注入的一切同名变量(`DSH_*` 除外) - **`${VAR}` 引用**:展开自父环境(系统变量 + DSH 注入)+ 同文件中更早定义的变量;未定义展开为空串。覆盖是整体替换,要追加就用引用:`PATH=D:\tools;${PATH}` ## 安装 本插件是**组合包**(`dsh.bundle`),用 `dsh plugin` 安装进 profile,自动追加配置层,无需手编 patch: ```bash # GitHub(私仓需 git 凭据;pnpm ≥10 首次 add 会提示授权构建,按提示把包键 # 写进 ~/.dsh/profiles/web/pnpm-workspace.yaml 的 allowBuilds 后重新 add) dsh plugin --profile web add github:Momojie-S/dsh-workspace-env # 或 tarball(pnpm pack 产物,无授权要求) dsh plugin --profile web add momojie-s-dsh-workspace-env-0.1.0.tgz ``` 验证层就位后重启 DSH: ```bash dsh web --dump-config | Select-String workspace-env # 应看到 "# == dsh-workspace-env" 层 ``` <details><summa

阅读完整 README仓库许可: MIT

dsh-workspace-env DSH 插件常见问题

如何安装 dsh-workspace-env 插件?

使用命令 `dsh plugin --profile web add github:Momojie-S/dsh-workspace-env` 安装。如果是私有仓库,需要 git 凭据。也可以使用 `pnpm pack` 打出的 tarball 安装:`dsh plugin --profile web add <tarball>`。安装后重启 DSH,运行 `dsh web --dump-config | Select-String workspace-env` 确认配置层已加载。

是否支持 Linux 或 macOS?

不支持。目前仅支持 Windows PowerShell(pwsh),bash 链路未覆盖。如果你使用 Linux 或 macOS,需要寻找其他方案。

如何配置 .env 文件?

在工作区根目录(session cwd)下放置一个 `.env` 文件,每行格式为 `KEY=VALUE`。支持引号(自动去除)、`#` 注释、空行,以及 `${VAR}` 引用其他变量。例如:`GH_TOKEN=gho_xxx` 或 `PATH=D:\mytools;${PATH}`。

修改 .env 文件后需要重启 agent 吗?

不需要。插件每次命令调用时都会重新读取 `.env` 文件,所以修改后立即生效,下次执行 `pwsh` 命令就会使用新值。

如果系统环境变量和工作区 .env 中有同名变量,哪个优先级更高?

工作区 `.env` 中的变量优先级最高,会覆盖系统环境变量以及 DSH 注入的同名变量(`DSH_*` 前缀的变量会被忽略)。如果你希望追加而不是覆盖,可以使用引用语法:`PATH=额外路径;${PATH}`。