
Security News
PHP Foundation Says Chainguard Broke Security Embargo Ahead of Emergency Patches
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.
dsh-dotenv-toolkit
Advanced tools
dotenv toolkit for DeepSeek Harness: parse_env (parse .env into key-value pairs), diff_env (compare .env vs .env.example for missing/extra keys), mask_env (mask sensitive values for safe display). Zero runtime dependencies, read-only.
DeepSeek Harness 的 .env 环境配置工具箱:parse_env 解析 .env 为键值对、diff_env 对比 .env 与 .env.example 找缺失 / 多余 / 值不一致、mask_env 对敏感键脱敏展示。只读、零运行时依赖,帮你把环境配置管清楚又防泄露。
.env 是项目的敏感配置仓:里面躺着 API Key、数据库密码、令牌。看得时候怕泄露、排查环境差异时怕漏配。本插件用三档工具把 .env 管理起来:
parse_env):把 .env 文本解析成键值对,自动识别敏感键并脱敏展示(只留首尾 4 位 + 长度),输出键、值、是否引号包裹与行号。diff_env):对比 .env 与 .env.example,找出缺失键(example 有而 .env 没有,建议补充)、多余键(.env 有而 example 没有,可能已废弃)与值不一致的键。用于环境配置一致性检查。mask_env):完整展示 .env,但自动识别敏感键(键名含 secret / token / password / api_key 等提示词)并脱敏,其余键原样展示。安全地看环境配置。解析是启发式的:支持注释、空行、export 前缀、单双引号值、值内等号与行尾内联注释,不做 shell 语义完整展开。核心安全约束:敏感键绝不输出完整值。
npm install dsh-dotenv-toolkit
安装后在 cordis.patch.yml 中加入:
- insert:
- id: dotenv-toolkit
name: "dsh-dotenv-toolkit"
解析 .env 为键值对。path 传 .env 文件或所在目录;mask 控制是否对敏感键脱敏(默认 true);show 控制列出多少。
文件:E:\project\.env;解析到键 5 个
键值对(前 5 / 共 5):
1. APP_NAME=myapp
2. PORT=8080
3. API_KEY=abc1…cret(len=15)(敏感,已脱敏)
4. DB_URL=postgres://localhost/db
5. LEGACY_KEY=old
其中敏感键 1 个已脱敏展示,避免泄露完整值。
说明:启发式解析,不做 shell 语义完整展开;export 前缀与引号已处理。
参数:path(必填);max_size;show(默认 20);mask(默认 true);max_chars。
用户:这个 .env 里配了哪些键,别把密钥打出来
助手:调用
parse_env,path=.env,输出键值对且敏感键自动脱敏
对比 .env 与 .env.example。path 传 .env 文件或目录;example 指定 .env.example 路径(缺省在 .env 同目录找);top 控制每类列出多少。
.env:E:\project\.env
.env.example:E:\project\.env.example
.env 键 5 个,.env.example 键 5 个
缺失键(.env.example 有但 .env 没有,建议补充,共 1):
1. NEW_RELIC_KEY(example 值:please-set)
多余键(.env 有但 .env.example 没有,可能已废弃,共 1):
1. LEGACY_KEY(.env 值:old)
值不同(两文件都有但值不一致,共 1):
1. API_KEY:.env=abc1…cret | example=changeme
说明:仅比较键集合与值;大小写敏感,顺序不参与比较。敏感键值已脱敏。
参数:path(必填);example(可选);max_size;top(默认 20);max_chars。
用户:我的 .env 跟 .env.example 比差了什么、多了什么
助手:调用
diff_env,path=.env,列出缺失 / 多余 / 值不一致
完整展示 .env 内容,敏感键脱敏。path 传 .env 文件或目录;visible 控制脱敏保留的首尾字符数(默认 4,上限 8)。
文件:E:\project\.env;键 5 个(敏感键已脱敏)
APP_NAME=myapp
PORT=8080
API_KEY=abc1…cret(敏感)
DB_URL=postgres://localhost/db
LEGACY_KEY=old
说明:识别到敏感键 1 个并脱敏,绝不输出完整敏感值。
参数:path(必填);max_size;visible(默认 4);max_chars。
用户:把 .env 完整展示一遍,但密钥要打码
助手:调用
mask_env,path=.env,完整展示且敏感键脱敏
diff_env 对比 .env 与 .env.example,确认没漏配、没残留废弃键。mask_env,敏感键自动打码。diff_env 快速定位缺失 / 多出的键。diff_env 告诉新成员缺哪些键、example 值是多少,照着补。.env.example 该更新哪些键,diff_env 的多余键提示能反向暴露。$(...) 命令替换、变量展开、多行折叠);敏感识别靠键名提示词,个别命名不规范的敏感键可能漏判。max_size 跳过超大文件,二进制文件不解析。| 协作插件 | 集成方式 |
|---|---|
| dsh-credential-scan | dotenv-toolkit 管 .env 文件本身,credential-scan 扫描整个目录的密钥泄漏,内外互补 |
| dsh-template-render | 把 diff_env 的差异清单渲染成 Markdown 报告发给团队 |
| dsh-env-inspector | dotenv-toolkit 看 .env 静态配置,env-inspector 看运行时 process.env,两视角对照 |
| dsh-deps-audit | 环境配置与依赖一起纳入上线前的完整性检查 |
| dsh-chart-ascii | 把各环境配置差异数量画成条形图,直观对比 |
parse_env:解析 .env 为键值对,支持注释 / 空行 / export 前缀 / 单双引号 / 值内等号 / 行尾内联注释;敏感键自动脱敏diff_env:对比 .env 与 .env.example,输出缺失键 / 多余键 / 值不一致;敏感值脱敏mask_env:完整展示 .env 且敏感键脱敏,可调脱敏保留位数v0.2(计划)
.env.local / .env.production 等多文件支持,按优先级分层展示${VAR})与引用校验(引用了未定义键)check_env:校验必填键、类型提示(端口应为数字等)v0.3(展望)
format=json,便于脚本消费配置审计结果Q:怎么判断一个键是否敏感?
键名小写后包含 secret / token / password / passwd / pass / api_key / apikey / access_key / private_key / auth / credential / client_secret / jwt / cipher / pwd 等提示词之一即视为敏感。对命名不规范的敏感键(如 ABC=xxx)可能漏判,可用 parse_env 的 mask=false 谨慎核对。
Q:脱敏后还能看出来什么?
maskValue 保留首尾各若干位(默认 4,可调)+ 总长度,如 abc1…cret(len=15)。这样能区分不同密钥、判断是否为空,但无法还原完整值。
Q:diff_env 的缺失 / 多余 / 值不同怎么理解? 以 .env.example 为「标准模板」:缺失键 = example 有而 .env 没有(本地没配,建议补充);多余键 = .env 有而 example 没有(模板没收录,可能已废弃或新加);值不同 = 两文件都有但值不一致(通常正常,仅提示)。
Q:为什么不做 shell 语义完整展开?
展开 $(cmd)、${VAR}、多行折叠属于 shell 语义,需要执行环境且可能触发命令,超出「只读、安全」边界。本插件只做静态 .env 子集解析,足够覆盖绝大多数配置管理场景。
Q:会执行 .env 里的内容吗? 不会。只读文本解析,不 source、不 eval、不加载 .env 到进程环境,也不运行任何内容。
Q:.env 里有敏感值,我截图给同事看会不会泄露?
用 mask_env 再展示:敏感键自动打码,只留首尾 + 长度,同事能看出配了哪些键、值是否为空,但看不到完整密钥。
MIT
FAQs
dotenv toolkit for DeepSeek Harness: parse_env (parse .env into key-value pairs), diff_env (compare .env vs .env.example for missing/extra keys), mask_env (mask sensitive values for safe display). Zero runtime dependencies, read-only.
The npm package dsh-dotenv-toolkit receives a total of 0 weekly downloads. As such, dsh-dotenv-toolkit popularity was classified as not popular.
We found that dsh-dotenv-toolkit demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.

Security News
PHP releases emergency patches for two critical RCE vulnerabilities as agencies urge organizations to take unpatched sites offline.

Threat Research
/Security News
A supply chain attack compromised LiteLLM 1.107.0 on PyPI and Docker, spreading malware that steals cloud credentials, developer secrets, and AI provider keys.