
对于许多 NixOS 用户说,它就像一个“令人着迷但又难以驯服的怪兽”。它拥有声明式配置、原子更新和不可变性等顶级特性,但其高耸的学习曲线和特殊的文件系统结构(FHS)常让人望而却步。
今天,我们将通过 VS Code 远程 + MCP-NixOS,把 NixOS 调教成一个真正“听话”的 AI 驱动开发平台。这套方案将彻底改变你编写 Nix 配置的体验。
参考视频:NixOS+MCP 实战
在传统的远程开发中,AI 只是一个“会写代码的聊天框”。但在本方案中,通过 mcp-nixos,AI 获得了直接查询 NixOS 官方文档、搜索软件包版本以及读取配置选项的“超能力”
在开始 AI 魔法之前,我们需要一条稳固且安全的通道。私钥登录不仅是为了免去输入密码的麻烦,更是为了让 VS Code 的自动化连接更加顺畅。如果你是本地的nix环境,可略过次步骤!
在 PowerShell 中执行:
ssh-keygen -t ed25519 -C "your_nixos_dev"记下 ~/.ssh/id_ed25519.pub 的内容。
不同于传统 Linux 需要手动修改 .ssh/authorized_keys,在 NixOS 中,我们直接在 configuration.nix 里声明:
users.users.demo = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" ];
# 将你的公钥粘贴在这里
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3..." ];
};
# 增强安全性:关闭密码登录
services.openssh = {
enable = true;
settings = {
PasswordAuthentication = false;
PermitRootLogin = "no";
};
};NixOS 不遵循标准的 /lib 或 /bin 路径,这会导致 VS Code Server 无法直接运行。我们需要通过 nix-ld 和专门的修复服务来打通关节。
在 configuration.nix 中引入 nixos-vscode-server:
{ config, pkgs, ... }: {
imports = [
(fetchTarball "https://github.com/nix-community/nixos-vscode-server/tarball/master")
];
services.vscode-server.enable = true;
# 启用 nix-ld:为非 Nix 编译的二进制文件提供运行环境
programs.nix-ld.enable = true;
# 基础工具链
environment.systemPackages = with pkgs; [ uv nodejs git ];
}注意:部署后需执行 systemctl --user enable --now auto-fix-vscode-server.service。
这是本配置的“灵魂”所在。通过 Roo Code 插件与 mcp-nixos 的联动,你的 AI 助手将变成一个真正的 NixOS 专家。
在 NixOS 终端执行:
uvx mcp-nixos --help这会利用 uv 自动处理 Python 环境依赖。
为了让 AI 助手(Roo Code)能够查询 NixOS 的官方包和配置项,我们需要 mcp-nixos 的 MCP。
uvx mcp-nixos --help 以预加载环境。{
"mcpServers": {
"nixos": {
"command": "uvx",
"args": ["mcp-nixos"],
"disabled": false
}
}
}For the enlightened--如果你是,请使用这个MCP Settings:
{
"mcpServers": {
"nixos": {
"command": "nix",
"args": [
"run",
"--extra-experimental-features", "nix-command flakes",
"github:utensils/mcp-nixos",
"--"
]
}
}
}并在 NixOS 终端执行一次(等同于第一步的预加载环境):
nix run github:utensils/mcp-nixos -- --help
配置完成后,你的开发流转将如下表所示:
组件 | 运行位置 | 职责 |
|---|---|---|
Windows VS Code | 本地 | 交互界面与指令输入 |
Roo Code 插件 | NixOS (远程) | 大脑:理解需求并生成 Nix 代码 |
nix-ld / vscode-server | NixOS (系统) | 桥梁:确保所有插件和二进制工具正常运行 |
mcp-nixos | NixOS (用户) | 字典:为 AI 提供实时的包搜索和选项查询 |
现在,你的 AI 助手已经具备了“专家证”。你可以尝试对它说:
“我想把现有的单文件配置转换成 Flake 结构,请分析我的 configuration.nix 并帮我编写迁移代码。”
有了 MCP-NixOS 的辅助,曾经繁琐的路径查错、依赖冲突和配置迁移都将成为过去。你不再是在“写配置”,而是在通过 AI “编织”你的操作系统。
这就是 NixOS 配置的终极开发形态。
提示:如果你在配置过程中遇到插件安装没反应,通常是 nix-ld 尚未生效或 VS Code Server 需要重启。请务必检查 sudo nixos-rebuild switch 是否执行成功!
一旦你选择了配置方法并将其添加到你的 MCP 客户端:
就是这么简单。无需复杂配置,没有长达 47 步的安装指南,更不用 “献祭” U 盘来讨好 Nix 大神。只需粘贴代码、重启客户端,就能拥有一个真正懂行的 AI 助手。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。