The following packages are provided by nixkit:
| Package | Description | Platforms |
|---|---|---|
| aerospace-swipe | switch workspaces in AeroSpace with trackpad swipes | macOS, macOS (ARM) |
| defaultbrowser | Utility to set the default browser on macOS | macOS, macOS (ARM) |
| dimclient | Python client for DIM (DNS and IP Management) | macOS, macOS (ARM), Linux (ARM), Linux |
| kubernetes-mcp-server | Kubernetes MCP server for AI tools to interact with Kubernetes clusters | macOS, macOS (ARM), Linux (ARM), Linux |
| ndcli | Command line interface for DIM (DNS and IP Management) | macOS, macOS (ARM), Linux (ARM), Linux |
| nixupdater | Menu bar app to check for updates on macOS | macOS, macOS (ARM) |
| opsops | A simple tool for managing secrets (with 1password integration) | macOS, macOS (ARM), Linux (ARM), Linux |
| prlsp | LSP server that surfaces GitHub PR review comments as editor diagnostics | macOS, macOS (ARM), Linux (ARM), Linux |
| prlsp-nvim | Neovim plugin for prlsp — view and reply to GitHub PR review comments via LSP | macOS, macOS (ARM), Linux (ARM), Linux |
| prometheus-mcp-server | MCP server for Prometheus integration | Linux (ARM), Linux, macOS, macOS (ARM) |
| skhd_zig | Simple Hotkey Daemon for macOS, ported from skhd by koekeishiya | macOS (ARM) |
Table of Contents
programs.aerospace-swipe.enable
Whether to enable aerospace-swipe configuration.
Type: boolean
Default:
false
Example:
true
Declared by:
modules/home/aerospace-swipe.nix
|
programs.aerospace-swipe.fingers
Number of fingers needed for swipe
Type: signed integer
Default:
3
Example:
"4"
Declared by:
modules/home/aerospace-swipe.nix
|
programs.aerospace-swipe.haptic
Enable haptic feedback
Type: boolean
Default:
false
Example:
"true"
Declared by:
modules/home/aerospace-swipe.nix
|
programs.aerospace-swipe.natural_swipe
Enable natural swipe
Type: boolean
Default:
false
Example:
"true"
Declared by:
modules/home/aerospace-swipe.nix
|
programs.aerospace-swipe.skip_empty
Skip empty workspaces
Type: boolean
Default:
true
Example:
"false"
Declared by:
modules/home/aerospace-swipe.nix
|
programs.aerospace-swipe.wrap_around
Wrap around workpsace
Type: boolean
Default:
true
Example:
"false"
Declared by:
modules/home/aerospace-swipe.nix
|
programs.default-browser.enable
Whether to enable Default browser configuration.
Type: boolean
Default:
false
Example:
true
Declared by:
modules/home/default-browser.nix
|
programs.default-browser.browser
The browser to set as default
Type: string
Default:
""
Example:
"firefox"
Declared by:
modules/home/default-browser.nix
|
programs.ndcli.enable
Whether to enable ndcli command line tool.
Type: boolean
Default:
false
Example:
true
Declared by:
modules/home/ndcli.nix
|
programs.ndcli.server
DIM server URL
Type: string
Default:
"http://localhost:5000"
Declared by:
modules/home/ndcli.nix
|
programs.ndcli.username
Username for DIM authentication
Type: string
Default:
{
_type = "override";
content = "";
priority = 1000;
}
Declared by:
modules/home/ndcli.nix
|
programs.nixupdater.enable
Whether to enable nixupdater configuration.
Type: boolean
Default:
false
Example:
true
Declared by:
modules/home/nixupdater.nix
|
programs.nixupdater.command
Command to run when updates are available. Can be used to trigger a notification or directly apply updates
Type: string
Default:
"jinx update"
Example:
"darwin-rebuild switch --flake .#my-mac"
Declared by:
modules/home/nixupdater.nix
|
programs.nixupdater.flake
Sets the flake path.
Type: string
Default:
""
Example:
"/Users/alice/other-dotfiles"
Declared by:
modules/home/nixupdater.nix
|
programs.nixupdater.interval
Set the interval in seconds for checking for updates
Type: signed integer
Default:
1800
Example:
"300"
Declared by:
modules/home/nixupdater.nix
|
programs.nixupdater.terminal
Terminal to use for running the update command. Options: terminal macOS Terminal.app iterm iTerm2 kitty new kitty window (default) kitty-tab new tab in the running kitty instance * kitty-overlay overlay in the focused kitty window * alacritty ghostty
kitty-tab and kitty-overlay use kitty’s remote-control protocol
(kitty @ new-window). They require allow_remote_control yes in
kitty.conf, or kitty launched with --listen-on / KITTY_LISTEN_ON.
Falls back to a new kitty window when no running instance is found.
Type: one of “terminal”, “iterm”, “kitty”, “kitty-tab”, “kitty-overlay”, “alacritty”, “ghostty”
Default:
"kitty"
Example:
"kitty-overlay"
Declared by:
modules/home/nixupdater.nix
|
Home Manager provides a
programs.mcp.servers option for configuring MCP servers. When multiple servers use
the same binary (e.g. two instances of prometheus-mcp-server pointed at different
clusters), Claude Code (v2.1.71+) incorrectly treats them as duplicates and silently
drops all but one — even when their environment variables differ.
Workaround: wrap each server in a pkgs.writeShellScriptBin stub so each entry
gets a unique store path:
let
mkWrapper = name:
pkgs.writeShellScriptBin "prometheus-mcp-server-${name}" ''
exec ${pkgs.prometheus-mcp-server}/bin/prometheus-mcp-server "$@"
'';
in {
programs.mcp.servers = {
"prometheus/cluster-a" = {
command = "${mkWrapper "cluster-a"}/bin/prometheus-mcp-server-cluster-a";
args = [];
env.PROMETHEUS_URL = "https://prometheus.cluster-a.example.com";
};
"prometheus/cluster-b" = {
command = "${mkWrapper "cluster-b"}/bin/prometheus-mcp-server-cluster-b";
args = [];
env.PROMETHEUS_URL = "https://prometheus.cluster-b.example.com";
};
};
}
Tracked upstream at anthropics/claude-code#32549.