Spawns lightweight NixOS virtual machines in a shell for testing and development.
nixos-shell is a command-line tool that spawns lightweight, headless NixOS virtual machines using QEMU for testing and development. It allows developers to quickly create isolated environments based on NixOS modules, with automatic mounting of the user's home directory and Nix profile. The tool integrates seamlessly with the Nix ecosystem, supporting flake-based configurations and cross-architecture VM execution.
NixOS developers and system administrators who need to test NixOS configurations in isolated virtual machines without extensive setup. It's particularly useful for those working on NixOS modules, flake-based projects, or cross-platform development.
Developers choose nixos-shell for its simplicity and deep integration with NixOS, enabling rapid VM creation directly from Nix configurations. Unlike generic virtualization tools, it automatically handles Nix-specific mounts and supports flake workflows, making it ideal for testing NixOS changes in a reproducible environment.
Spawns lightweight nixos vms in a shell
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically mounts the user's home directory and Nix profile, and works directly with NixOS modules and flakes, enabling accurate testing of Nix configurations in isolated VMs.
Spawns headless QEMU VMs with minimal overhead, allowing quick setup and teardown for testing NixOS changes without full VM management.
Supports running VMs of different architectures, such as aarch64-linux on macOS, using remote builders or emulation, which is ideal for cross-platform development.
Offers granular control through NixOS options for port forwarding, shared folders, RAM, CPUs, and disk size, with examples provided for common use cases.
Requires nixpkgs with the `extendModules` function or manual overridability using `lib.makeOverridable`, which can cause failures with incompatible or older versions.
Bridge networking setups need manual configuration, setuid bits, or root access, and default user-mode networking may not meet all testing needs.
No firewall is enabled by default, which could lead to vulnerable VMs if not explicitly configured, posing a security risk in testing environments.
Features like SSH server, graphics support, and external disk mounting require additional configuration, adding overhead for basic use cases.