DeepSeek软件写代码交付AI 评分 · 80/100AI 辅助编辑·未发现明显提示词注入风险GitHub

为 DeepSeek Harness 安装 nix-dev-shell 插件

输入:含 flake.nix 的代码仓库 → 处理:安装插件并重启 DSH → 输出:bash 命令自动运行在 Nix devShell 环境

经验丰富步骤流程贴士
给谁
使用 DeepSeek Harness 且项目采用 Nix flake 管理开发环境的开发者
你会得到
Harness 的 bash 命令自动进入对应目录的 Nix devShell,无需手动 nix develop
你需要
DeepSeek

硬约束

前置条件:已安装 DeepSeek Harness 与 Nix,工作区包含有效的 flake.nix。安装插件后必须重启 DSH 进程。默认 env 模式无 per-command 开销;wrap 模式语义更完整但每条命令多 0.3–1s。沙箱内自动处理 NIX_CACHE_HOME 以避免只读 ~/.cache 导致 nix 失败。

他们做了什么

作者 running-grass 为 DeepSeek Harness 编写并发布了一个 Host 插件 dsh-nix-dev-shell。该插件通过修饰 ctx.shell 实例的 execute 方法,在命令执行前自动查找工作目录或其祖先目录中的 flake.nix,并将对应 devShell 的环境注入到 spawned 进程中。

效果如何

作者报告:默认 env 模式一次性捕获环境后复用,无 per-command nix 启动开销;wrap 模式语义与手工 nix develop 一致但每条命令多约 0.3–1s。冷缓存(全新临时目录)下 nix develop --command true 约 540ms,热缓存(工作区内持久目录)约 125ms。251 步、9.5 小时的会话只产生 2 条 system/message。(author_report,未实测)

值得知道

安全边界:祖先查找意味着 $HOME 或任意上层目录的 flake.nix 会作用于子树下的每条 bash 命令;首次执行即运行 shellHook,请只在可信仓库启用。捕获 helper 沿用调用方沙箱策略,不额外提权。已知限制:仅覆盖 ctx.shell(bash 工具、子代理、hooks、后台任务),PTY 终端子系统与 tmux 会话不在范围内;env 模式不传递函数、别名、set -x 等交互状态;与替换执行器的插件不兼容。插件自动注入 NIX_CACHE_HOME 解决 workspace-write 沙箱下 ~/.cache 只读问题,但 danger-full-access 下不注入。宿主 SHELL 被保留,插件始终显式调用 bash。

步骤

  1. 安装 nix-dev-shell 插件

    在终端执行安装命令,将插件添加到 DSH 的 web profile。

    运行提示词 · 来源原文。终端执行安装插件

    dsh plugin --profile web add github:running-grass/dsh-nix-dev-shell
  2. 重启 DSH 进程

    Host 插件为 JS 模块,安装或更新后必须重启 DSH 进程才能加载新代码。

  3. 验证 Nix devShell 已生效

    在含 flake.nix 的目录或其子目录执行命令,确认环境变量与工具路径来自 Nix store;在不包含 flake.nix 的目录(如 $HOME)执行命令,确认保持原生环境。

    运行提示词 · 来源原文。验证 devShell 状态,预期输出 impure

    echo $IN_NIX_SHELL

    运行提示词 · 来源原文。验证工具来自 /nix/store/…(宿主机上不应存在)

    command -v ocaml dune

    运行提示词 · 来源原文。验证沙箱可写的 nix 缓存目录已注入

    echo $NIX_CACHE_HOME

可复制提示词

参考提示词 · 本站建议版本。使用前确认粘贴位置、输入变量及输出格式。

这一段是提示词,页面不会在这里插入广告。

无提示词,按步骤操作即可。

按安装命令、重启、验证三步执行;无需额外提示词。

来源

安装 nix-dev-shell,让 DSH 在 nix shell 里跑命令 · running-grass · GitHub · 2026-10-31T09:07:36Z

留言与反馈

试过这个方法吗?分享效果、遇到的问题或改进建议。留言审核后公开,请勿填写敏感信息。

正在加载…

    相关用例