Nix flakes, home-manager, and reproducible environment management
Manages reproducible development environments using Nix flakes, home-manager, and pixi.
npx claudepluginhub flexnetos/ripple-envThis skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill provides expertise in Nix-based environment management including flakes, home-manager, and cross-platform configurations.
nom develop # Preferred (with progress UI)
nix develop # Standard
direnv allow # Automatic via direnv
| Command | Description |
|---|---|
cb | colcon build --symlink-install |
ct | colcon test |
ctr | colcon test-result --verbose |
ros2-env | Show ROS2 environment variables |
update-deps | Run pixi update |
ai | AI chat assistant (aichat) |
pair | AI pair programming (aider) |
nix flake check # Validate flake
nix flake check --no-build # Quick syntax check
nix flake show # Show flake outputs
nix flake update # Update all inputs
nix flake lock --update-input nixpkgs # Update specific input
nix build .#package # Build specific output
nix build -L # Build with logs
nix log /nix/store/... # View build log
nix profile install nixpkgs#package # Install package
nix profile remove package # Remove package
nix profile list # List installed
nix profile upgrade '.*' # Upgrade all
nix search nixpkgs package # Search nixpkgs
nix search nixpkgs#python3Packages.X # Search Python packages
This flake exports home-manager modules that can be imported:
{
inputs = {
ripple-env.url = "github:FlexNetOS/ripple-env";
home-manager.url = "github:nix-community/home-manager";
};
outputs = { self, nixpkgs, home-manager, ripple-env, ... }: {
homeConfigurations.myuser = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
modules = [
ripple-env.homeManagerModules.default
# Your modules...
];
};
};
}
| Export | Description |
|---|---|
homeManagerModules.default | All modules (platform-detected) |
homeManagerModules.common | Cross-platform modules only |
homeManagerModules.linux | Linux-specific modules |
homeManagerModules.macos | macOS-specific modules |
nixosModules.default | NixOS system module |
darwinModules.default | nix-darwin module |
lib | Utility functions |
Each module supports enable/disable:
{
ros2-env.shell.zsh.enable = true;
ros2-env.shell.nushell.enable = true;
ros2-env.editor.helix.enable = true;
ros2-env.direnv.enable = true;
}
pixi add <package> # Add package
pixi remove <package> # Remove package
pixi search <pattern> # Search packages
pixi update # Update lockfile
pixi install # Install from lockfile
pixi info # Environment info
pixi add ros-humble-desktop # Full desktop
pixi add ros-humble-rviz2 # Visualization
pixi search ros-humble-* # List all ROS packages
direnv allow # Allow directory
direnv deny # Deny directory
direnv reload # Reload environment
# Standard flake integration
use flake
# With nix-direnv caching
use flake . --impure
{ pkgs, lib, ... }:
let
isLinux = pkgs.stdenv.isLinux;
isDarwin = pkgs.stdenv.isDarwin;
in {
config = lib.mkMerge [
(lib.mkIf isLinux { /* Linux config */ })
(lib.mkIf isDarwin { /* macOS config */ })
];
}
bootstrap.ps1 for automated setup.github/docs/self-hosted-runner-setup.mdnix flake check # Check for errors
nix flake show # Show structure
nix eval .#someOutput # Evaluate expression
nix repl # Interactive REPL
nix build -L # Verbose build output
nix log /nix/store/hash-name # View stored log
nix-store -q --references /nix/store/path # Show dependencies
nix store gc # Garbage collect
nix store optimise # Deduplicate store
nix-collect-garbage -d # Remove old generations
{ config, lib, pkgs, ... }:
{
options.mymodule = {
enable = lib.mkEnableOption "my module";
setting = lib.mkOption {
type = lib.types.str;
default = "value";
description = "Setting description";
};
};
config = lib.mkIf config.mymodule.enable {
# Implementation
home.packages = [ pkgs.sometool ];
};
}
modules/common/modules/linux/modules/macos/flake.locklib.types.* for validationstdenv.isLinux/isDarwinActivates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.