用途:编写和维护 devenv 开发环境配置,聚焦 devenv 特有部分;Nix 语言语法、flake 结构与通用 NixOS 模块模式不在本技能范围。
主要能力:languages.* 语言环境与版本管理、services.* 服务定义、git-hooks 预提交钩子(格式化、lint、安全与卫生检查,treefmt 作为通用格式化包装)、scripts 注入 $PATH、tasks 依赖排序(before/after,可挂到 devenv:enterShell 实现每次进入 shell 自动执行)、processes 进程管理、dotenv 加载 .env 文件、profiles 配置组合与按主机名/用户自动选择、devenv.shells.<name> 多 shell 定义、devenv.outputs 暴露 flake 输出,以及语言模块的 import 构建器(如 config.languages.rust.import ./rust-app {})。
devenv 2.0(2026 年 3 月发布)要点:原生进程管理器成为默认,取代 process-compose;依赖 process-compose 行为(健康检查、depends_on、就绪探针)的配置会静默改用原生管理器,需显式设置 process.manager.implementation = "process-compose"; 才能保留。devenv 0.x 已弃用,支持将在 devenv 3 移除。其余变化对配置作者属外观层面:每条命令的实时 TUI、原生 shell 后台重建(Ctrl+Alt+R)、C FFI 后端、按属性增量求值缓存、跨仓库输出引用。
使用方式:需要 services.、git-hooks、进程监管或 languages. 版本管理时优先用 devenv;纯 derivation 或 NixOS 系统配置直接用 flake。自定义钩子示例:git-hooks.hooks.my-custom-hook = { enable = true; entry = "${pkgs.bash}/bin/bash -c 'echo Running custom hook'"; files = "\.nix$"; pass_filenames = true; };。
限制与注意:不要把真实密钥写入 env 属性,它会进入本机全局可读的 Nix store;enterShell 每次进入 shell 都运行,应保持快速且可离线,慢或依赖网络的初始化放入带显式触发的 task。选项表面随小版本变化较快,可参考 Context7 的 /cachix/devenv 获取最新选项与 2.0 迁移指南。相关技能:nix-ecosystem、serena-usage、context7-usage。