nixboost is a fast, improved frontend for managing packages on NixOS. It makes searching and installing packages from nixpkgs and NUR feel instant, predictable, and actually enjoyable.
Think pacman UX, but for NixOS β without breaking purity :3
nix searchis slow and doesn't cache results π’nix profile installgives cryptic errors π΅- No unified way to search nixpkgs AND NUR together
- Managing generations requires remembering multiple commands
- No progress feedback during long operations
| Feature | Raw Nix | NixBoost |
|---|---|---|
| Search speed | 2-5 seconds | <100ms (cached) β‘ |
| NUR integration | Manual | Automatic fallback π |
| Batch install | Sequential | Parallel π |
| Progress feedback | None | Real-time spinners π |
| Error messages | Cryptic | Human-readable + suggestions π‘ |
| Configuration | None | TOML config file βοΈ |
| Caching | None | SQLite + LRU memory cache ποΈ |
- Intelligent Caching - SQLite disk cache + LRU memory cache for sub-100ms responses
- Parallel Search - Multi-core fuzzy search with rayon
- Batch Operations - Install multiple packages in a single transaction
- Connection Pooling - HTTP/2 with automatic retry and exponential backoff
- Unified Search - Search nixpkgs and NUR from one command
- Smart Fallback - If a package isn't in nixpkgs, automatically check NUR
- Fuzzy Matching - Find packages even with typos ("firefx" finds "firefox")
- Dry Run Mode - Preview what would happen without making changes
- JSON Output - Machine-readable output for scripting
- Health Checks - Verify systemd services, Nix store integrity, daemon status
- Smart Garbage Collection - Preview space savings before cleaning
- Generation Management - List, diff, and rollback generations
- NixOS News - Stay updated with the latest blog posts
- TOML Configuration - Customize behavior via
~/.config/nixboost/config.toml - Shell Completions - Tab completion for bash, zsh, fish, PowerShell, elvish
- Structured Errors - Error codes and recovery suggestions
- Verbose/Quiet Modes - Control output verbosity
nix profile install github:NacreousDawn596/nixboostReproducible, rebuild-safe, zero
/usr/localcrimes. π
git clone https://github.com/NacreousDawn596/nixboost
cd nixboost
nix-shell
cargo build --release
./target/release/nixboost --versionnixboost -S <pkg> # Install package (checks nixpkgs, then NUR)
nixboost -S pkg1 pkg2 pkg3 # Install multiple packages (batch) π
nixboost -R <pkg> # Remove package with confirmation
nixboost -Ss <query> # Search nixpkgs
nixboost -A <query> # Search NUR
nixboost -l # List installed packages# Dry run - see what would happen
nixboost -S firefox --dry-run
# JSON output for scripting
nixboost -Ss browser --output json
# Skip confirmations
nixboost -R firefox --yes
# Verbose mode for debugging
nixboost -S firefox --verbosenixboost --news # Latest NixOS news π°
nixboost --history # View generation history π
nixboost --health # System health check π₯
nixboost --clean # Garbage collection π§Ή
nixboost --clean --dry-run # Preview what would be cleanednixboost generation list # List all generations
nixboost generation diff 10 15 # Diff two generations
nixboost generation rollback # Rollback to previous
nixboost generation rollback 10 # Rollback to specific generation
nixboost generation delete --keep 5 # Keep only last 5 generationsnixboost --cache-stats # Show cache statistics
nixboost cache clear # Clear all cache
nixboost cache prune # Remove expired entries
nixboost --no-cache -Ss vim # Search without using cachenixboost config show # Display current config
nixboost config init # Generate default config file
nixboost config edit # Open config in $EDITOR
nixboost config path # Show config file location# Bash
nixboost completions bash > ~/.local/share/bash-completion/completions/nixboost
# Zsh
nixboost completions zsh > ~/.zfunc/_nixboost
# Fish
nixboost completions fish > ~/.config/fish/completions/nixboost.fishNixBoost stores its configuration at ~/.config/nixboost/config.toml:
[general]
verbose = false
check_updates = true
[search]
max_results = 50
fuzzy = true
fuzzy_threshold = 0.6
[cache]
enabled = true
max_size_mb = 500
package_ttl_secs = 3600
search_ttl_secs = 300
[network]
timeout_secs = 30
max_retries = 3
[ui]
colors = true
progress = true
unicode = trueNIXBOOST_VERBOSE- Enable verbose outputNIXBOOST_DEBUG- Enable debug loggingNIXBOOST_NO_COLORS- Disable colored outputNIXBOOST_NO_CACHE- Disable cachingNIXBOOST_TIMEOUT- Set network timeout in secondsHTTP_PROXY/HTTPS_PROXY- Configure proxy
- SQLite Caching - Search results, package metadata, and NUR index are cached to disk with configurable TTL
- LRU Memory Cache - Hot data stays in RAM for sub-millisecond access
- Parallel Processing - Search uses all CPU cores via rayon
- Batch Operations - Multiple packages are installed in a single
nix profile installcall - Connection Reuse - HTTP client pools connections and uses HTTP/2
- Lazy Loading - Modules are loaded on-demand, keeping startup time under 100ms
| Operation | Raw Nix | NixBoost | Speedup |
|---|---|---|---|
| Search (cold) | 3.2s | 0.8s | 4x π |
| Search (cached) | 3.2s | 0.05s | 64x β‘ |
| Install 5 packages | 45s | 12s | 3.7x π₯ |
| List installed | 1.5s | 0.2s | 7.5x π¨ |
src/
βββ main.rs # CLI orchestration
βββ core/ # Config, errors, domain types
βββ cli/ # Argument parsing, subcommands
βββ cache/ # SQLite + LRU caching
βββ search/ # Parallel fuzzy search
βββ package/ # Package operations
βββ nur/ # NUR integration
βββ system/ # Health, GC, generations
βββ network/ # HTTP with retry
βββ ui/ # Progress, output formatting
- 5,500+ lines of production Rust π¦
- 54 unit tests β
- 10 modular components π¦
- Zero unsafe code π
- Fast feedback - Never wait more than a second for common operations β‘
- Minimal friction - Sensible defaults, optional configuration
- No magic state - Everything is reproducible and cacheable
- Nix-first - Respects NixOS semantics, never fights the system
- Helpful errors - Every error includes a suggestion for recovery π‘
If it doesn't respect NixOS semantics, it doesn't belong here.
See CONTRIBUTING.md for guidelines.
GPL-3.0
Copyright (C) 2025 nacreousdawn596, compiledkernel-idk and NixBoost contributors
Built with too much caffeine β, exam pressure, zero sleep, and β€οΈ for the NixOS community.