dsh-project-env
Đã xác minhdsh-project-env · v0.2.0 · MIT · Giao diện web
Per-project runtime environments for DeepSeek Harness: auto-adopt or create a project-local Python venv (.venv_local/python) and wire in the toolchains/env vars for the runtimes each project uses.
Cài đặt
dsh plugin add dsh-project-env Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.
Mã nguồn
Phát hành lên npm mà không có repository công khai. Hãy kiểm tra nội dung package trước khi cài.
Thẻ
Tác giả
Readme
dsh-project-env
为每个 DSH 工作区 / 项目提供独立的运行时环境。自动识别项目用了哪些运行时,自动创建/接管 python venv,并把各运行时的环境变量注入到工作区——
python/pip永远走项目环境,绝不静默落到系统 Python。
DeepSeek Harness(DSH)项目环境管理插件。
为什么需要它
在 DSH 里打开多个项目时,如果所有会话共享系统 Python,容易出现:
- 不同项目依赖互相污染(A 项目装了包,B 项目"看到了")
- 系统 Python 被项目改动弄得不可控
- 换机器 / 换工作区,环境没法跟着项目走
dsh-project-env 给每个项目一个独立环境,让 agent 跑 Python 工具时永远用项目自己的解释器。
设计理念
- 有则接管,无则自动建:目录存在就接管,不存在就
python -m venv .venv_local/python自动创建——不需要任何配置步骤。 - 一个文件夹承载多运行时:
.venv_local/是环境容器,每种运行时一个子目录:项目根/ └── .venv_local/ ├── python/ ← Python(venv,自动创建/接管) ├── node/ ← Node(检测到 package.json 时链接) └── go/ ← Go(检测到 go.mod 时链接) - 自动识别,零配置:检测到
pyproject.toml/requirements.txt→python、package.json→node、go.mod→go,把对应运行时的工具链 bin 前置 PATH 并注入专属变量(VIRTUAL_ENV、NODE_PATH、GOBIN)。 - 安全优先:缺少/无效的环境会报错,绝不静默回退到系统 Python;绝不覆盖已存在的环境。
功能
| 能力 | 说明 |
|---|---|
| 🎯 工具 | project_env_status(查看/自动接管)、project_env_ensure(缺失即自动建 venv)、project_env_run(在项目环境中执行命令) |
| 🖥️ Web 面板 | 设置页新增「项目环境」区,列出所有会话工作区的环境,状态一目了然 |
| 🧩 多运行时 | python(venv 真环境)+ node / go(工具链接入、变量注入) |
| 🔒 安全 | 无 venv 即报错,不回落系统 Python;不覆盖已有环境 |
安装
# 发布到 npm 后:
dsh plugin --profile web add dsh-project-env
# 或从 GitHub 源码安装:
dsh plugin --profile web add github:<owner>/dsh-project-env
安装后重启 DSH 生效(重启是 DSH 加载新 plugin 层的条件)。
使用
装好即可用,无需配置。agent 在上述系统提示的引导下会自动调用 project_env_* 工具;你也随时可以在设置页的「项目环境」面板查看各工作区的环境状态。
目录结构
src/index.js— 核心:路径、detect/status/environment、resolveCommand、create、run、多运行时environmentAllsrc/plugin.js— DSH host 插件:工具 + web API + 系统提示src/client.js— DSH client 端:设置面板cordis.patch.yml— DSH profile 插入补丁
开发
cd dsh-project-env
npm test # 运行测试(node --test)
License
MIT