Nix Installation
There is currently no separate publicnix-fased repository.
This page documents how to run Fased declaratively if you already use Nix,
NixOS, or Home Manager and want to package the main repo yourself.
Quick Start
If you want a Nix-based install, the practical order is:What a Nix wrapper can manage
- Node, pnpm, and the Fased CLI/runtime pinned in your own flake or module
- Launchd or systemd service wiring managed by your host config
- Config and state paths kept outside the immutable store
- Rollback through your normal Nix or Home Manager workflow
Nix Mode Runtime Behavior
WhenFASED_NIX_MODE=1 is set:
Fased supports a Nix mode that makes configuration deterministic and disables auto-install flows.
Enable it by exporting:
Config + state paths
Fased reads JSON5 config fromFASED_CONFIG_PATH and stores mutable data in FASED_STATE_DIR.
When needed, you can also set FASED_HOME to control the base home directory used for internal path resolution.
FASED_STATE_DIR(default:~/.fased)FASED_CONFIG_PATH(default:$FASED_STATE_DIR/fased.json)
Runtime behavior in Nix mode
- Auto-install and self-mutation flows are disabled
- Missing dependencies surface Nix-specific remediation messages
- UI surfaces a read-only Nix mode banner when present
Packaging note (macOS)
The macOS packaging flow expects a stable Info.plist template at:scripts/package-mac-app.sh copies this template into the app bundle and patches dynamic fields
(bundle ID, version/build, Git SHA, Sparkle keys). This keeps the plist deterministic for SwiftPM
packaging and Nix builds (which do not rely on a full Xcode toolchain).
Related
- Main repository
- Wizard — non-Nix CLI setup
- Docker — containerized setup