nix-ai
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
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.
Your AI coding toolkit, declared in Nix — Claude, Gemini, Copilot, 15+ MCP servers, one flake
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-darwinorx86_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)
Sign in to leave a review.
Leave a reviewNo results found