A declarative package manager helper. Define your entire system package configuration in a single JSON file and let nyw handle the rest.
Nyw allows you to declaratively manage packages across different operating systems and package managers using a simple JSONC configuration file. Instead of manually installing packages one by one, you describe your desired system state and nyw makes it happen.
- dnf/yum (Fedora/RHEL)
- brew (macOS/Linux)
- pacman (Arch Linux)
- apk (Alpine Linux)
- apt (Debian/Ubuntu)
- paru (AUR helper)
- yay (AUR helper)
- winget (Windows) - Currently in testing phase and is not fully implemented
- Android Package Manager via ADB - Planned
- Create your configuration file based on the provided
example.jsonc - Run nyw to apply your configuration
- Your system will be configured exactly as described
Nyw uses a JSONC (JSON with Comments) configuration file where you can define all your packages. Check out example.jsonc in this repository for a complete example of how to structure your configuration.
The configuration file allows you to:
- Specify packages for different package managers
- Set up package repositories
- Define system-specific configurations
- Comment your configuration for better maintainability
# AUR
paru -S nyw
# Linux/MacOS
already supported but no install instructions# Apply your configuration
nywBorn from the frustration of manually managing packages across different systems, nyw brings the declarative package management philosophy of NixOS to any Linux distribution (and beyond). Whether you're managing a single machine or multiple systems, nyw ensures consistency and reproducibility.
Nyw will always remain free and open source. If you find it useful and want to support its continued development, crypto donations are greatly appreciated.
BTC: bc1qayglvr4lkt27kw7w7zr78gaqgrecrg5d4pelwr
We welcome contributions! Whether it's adding support for new package managers, improving existing functionality, or enhancing documentation.
Apache license 2.0

