From ripple-env
Nix flakes, home-manager, and reproducible environment management
npx claudepluginhub flexnetos/ripple-envThis skill uses the workspace's default tool permissions.
This skill provides expertise in Nix-based environment management including flakes, home-manager, and cross-platform configurations.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
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/isDarwin