nix-ai

mcp
Security Audit
Warn
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Warn
  • process.env — Environment variable access in .github/workflows/ai-moderator.lock.yml
  • process.env — Environment variable access in .github/workflows/ci-doctor.lock.yml
  • process.env — Environment variable access in .github/workflows/daily-malicious-code-scan.lock.yml
Permissions Pass
  • Permissions — No dangerous permissions requested
Purpose
This project provides a Nix-based home-manager module that acts as a centralized toolkit for managing and reproducing configurations for various AI coding assistants (like Claude, Gemini, and Copilot) and 15+ MCP servers.

Security Assessment
Overall risk: Low. This tool acts primarily as a declarative configuration manager rather than standalone executable software. It does not request dangerous permissions or contain hardcoded secrets. The rule-based scan flagged environment variable access, but this is exclusively limited to GitHub Actions workflow files (such as automated CI and malicious code scans), which is a standard and safe practice for repository automation. As a Nix flake, the tool is designed to handle system configurations and relies on standard environment inputs rather than maliciously accessing sensitive user data. No unexpected outbound network requests or hidden shell command executions were found in the user-facing modules.

Quality Assessment
The project is licensed under the highly permissive MIT license and includes a comprehensive, detailed README. It is under active development, with the most recent repository push occurring today. However, it currently suffers from extremely low community visibility, having only 5 GitHub stars. Consequently, the community trust level is very low, meaning the project has not yet been widely vetted by a large audience.

Verdict
Safe to use, provided you are comfortable relying on a very new, largely unvetted personal project for your development environment configurations.
SUMMARY

Your AI coding toolkit, declared in Nix — Claude, Gemini, Copilot, 15+ MCP servers, one flake

README.md

nix-ai

Your AI coding toolkit, declared once. Reproduced everywhere

Ever spent hours configuring Claude Code plugins, Gemini settings, and MCP servers
-- only to lose it all when you switch machines?
nix-ai captures your entire AI setup as code using Nix.
One command rebuilds everything, identically, every time.


What it manages

Tool What you get
Claude Code Plugin ecosystem, hooks, agents, commands, rules, statusline
Gemini CLI Settings, custom commands, permission rules
GitHub Copilot Configuration, permissions
OpenAI Codex Settings
MCP Servers 15+ servers — GitHub, Terraform, Context7, PAL, filesystem, memory, and more
Plugin Marketplace Curated marketplaces with Nix-pinned flake inputs
AI Dev Tools cclint, doppler-mcp, claude-flow, sync-mlx-models
MLX Local Apple Silicon inference via vllm-mlx with macOS launchd integration

Prerequisites

  • Nix (Determinate Nix recommended)
  • home-manager
  • Compatible platform: aarch64-darwin or x86_64-linux

Quick start

Add to your Nix flake:

{
  inputs.nix-ai = {
    url = "github:JacobPEvans/nix-ai";
    inputs.nixpkgs.follows = "nixpkgs";
    inputs.home-manager.follows = "home-manager";
  };
}

Then in your home-manager config:

sharedModules = [ nix-ai.homeManagerModules.default ];

That's it. Every AI tool, every plugin, every permission rule — managed by Nix.

How it works

nix-ai exports home-manager modules that merge into your existing configuration:

Export What it includes
homeManagerModules.default Full AI stack — Claude, Gemini, Copilot, Codex, MCP, MLX, dev tools
homeManagerModules.claude Just Claude Code
homeManagerModules.codex Just OpenAI Codex
homeManagerModules.maestro Just Maestro orchestration
lib.ci.claudeSettingsJson Pure JSON for CI validation (no derivations needed)
lib.ci.codexRules Codex rules export for CI validation and downstream consumers

Self-contained design

The module injects its own dependencies via _module.args. Your consuming flake only needs two lines:

inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";

No AI-specific inputs to wire up. No extra configuration. It just works.

Available module options

Key enable toggles exposed by the default module:

Option Type Default Description
programs.claude.enable bool Enable Claude Code configuration
programs.claude.apiKeyHelper.enable bool false Headless API key authentication via Bitwarden
programs.claudeStatusline.enable bool false Claude Code powerline statusline
programs.claude.settings.sandbox.enabled bool false Filesystem/network sandbox isolation
programs.claude.settings.alwaysThinkingEnabled bool true Extended thinking mode
programs.claude.remoteControlAtStartup bool or null null Remote Control auto-start
programs.claude.model string or null null Override default model (e.g. "opus", "sonnet")
programs.claude.effortLevel enum or null null Adaptive reasoning effort ("low", "medium", "high"); null = upstream default (medium for Max/Team as of v2.1.68)
programs.claude.trustedProjectDirs list of str [] Base directories for auto-trust of CLAUDE.md imports

For the full option set, see modules/claude/options.nix.

Testing and validation

Run quality checks locally:

nix flake check

This runs formatting (nixfmt), static analysis (statix), dead code detection (deadnix),
shell script linting (shellcheck), and full module evaluation (module-eval) to verify
the home-manager module instantiates correctly with real inputs.

Fix formatting automatically:

nix fmt

Repository structure

modules/
├── claude/          # Claude Code module — see [modules/claude/README.md](modules/claude/README.md)
├── maestro/         # Maestro agent orchestration
├── mcp/             # 15+ MCP server definitions
├── common/          # Shared permission engine
├── gh-extensions/   # GitHub CLI extensions (gh-aw)
├── permissions/     # Per-tool permission rules
├── mlx/             # MLX inference server (vllm-mlx)
├── ai-tools.nix     # AI development tool packages
├── gemini.nix       # Gemini CLI configuration
├── copilot.nix      # GitHub Copilot configuration
└── codex.nix        # OpenAI Codex configuration
lib/                  # Key lib files (not full listing)
├── claude-settings.nix    # Pure settings generator
└── claude-registry.nix    # Marketplace format functions

Part of a trio

This repo is one of three that work together:

Repo What it does
nix-ai (you are here) AI coding tools
nix-home Dev environment (git, zsh, VS Code, tmux)
nix-darwin macOS system config (consumes both)

License

MIT

Reviews (0)

No results found