Skip to content

Configuration reference

hearth adds a small set of options under the hearth.* namespace. Set them in a host file under nixos/hosts/ (for example nixos/hosts/workstation.nix). Stock NixOS options work as normal alongside them.

hearth.adminKeys

  • Type: list of string
  • Default: [ ]
  • Module: nixos/modules/admin.nix

SSH public keys allowed to log in as the operator admin account. SSH password authentication is disabled, so without at least one key here you can only reach the box through the local console.

hearth.adminKeys = [ "ssh-ed25519 AAAAC3Nz... you@laptop" ];

hearth.gpu.enable

  • Type: boolean
  • Default: false
  • Module: nixos/modules/gpu-nvidia.nix

Enables the NVIDIA proprietary driver and CUDA for the discrete GPU. Off by default on purpose: on a laptop with switchable graphics the driver is the most likely thing to break a boot, so the first install runs without it. Turn it on with a later nixos-rebuild switch, which keeps the previous generation bootable for rollback. See GPU passthrough.

hearth.gpu.enable = true;

hearth.llm.enable

  • Type: boolean
  • Default: true
  • Module: nixos/modules/llm.nix

Enables the LLM stack: Ollama built with CUDA, plus the model-pull service. Setting it false (as the workstation-minimal config does) skips compiling CUDA so a first image builds in minutes. See Hosts & images.

hearth.llm.models

  • Type: list of string
  • Default: [ "llama3.2:3b" "mistral:7b" ]
  • Module: nixos/modules/llm.nix

Models to pull on activation. Each string is passed verbatim to ollama pull. The hearth-model-pull service iterates this list once Ollama is up. Pulling is idempotent, so models already present are skipped.

hearth.llm.models = [ "llama3.2:3b" "qwen2.5:7b" ];

hearth.agents.enable

  • Type: boolean
  • Default: true
  • Module: nixos/modules/agents.nix

Installs the agent runtime: the /var/lib/hearth directory layout, the Python and Node runtimes, and the hearth-agent runner on PATH.

hearth.sandbox.enable

  • Type: boolean
  • Default: true
  • Module: nixos/modules/sandbox.nix

Provides the reusable least-privilege systemd profile that agent services merge in. The profile itself (hearth.sandbox.profile) is internal and read-only: other modules consume it, you do not set it by hand. See Sandboxing & threat model.

hearth.mcp.servers

  • Type: list of submodule
  • Default: [ ]
  • Module: nixos/modules/mcp.nix

Declared MCP servers and whether each requires an audit approval before it may start. Each entry has:

FieldTypeDefaultMeaning
namestring(required)Identifier, also the approval file name.
commandstring(required)Command that launches the server.
auditRequiredbooleantrueIf true, the server cannot start without an approval file.
hearth.mcp.servers = [
{
name = "filesystem";
command = "mcp-server-filesystem /var/lib/hearth/agents";
auditRequired = true;
}
];

An auditRequired server stays blocked until /var/lib/hearth/mcp-audit/<name>.approved exists. See MCP audit gate.

hearth.mapui.enable

  • Type: boolean
  • Default: true
  • Module: nixos/modules/mapui.nix

Enables hearth-mapd, the web map that visualizes agent runtime state in the browser. It reads the audit database and never contacts an LLM, so it costs zero tokens. See Map dashboard.

hearth.mapui.port

  • Type: port
  • Default: 8770
  • Module: nixos/modules/mapui.nix

The TCP port hearth-mapd listens on.

hearth.mapui.openFirewall

  • Type: boolean
  • Default: true
  • Module: nixos/modules/mapui.nix

Opens the map port on the firewall so other devices on your network can view it. For a tighter setup, set it false and reach the map over Tailscale only (the tailscale0 interface is already trusted). See Networking & remote access.

hearth.desktop.enable

  • Type: boolean
  • Default: false
  • Module: nixos/modules/desktop.nix

Enables an optional KDE Plasma 6 desktop (SDDM, auto-login) for hosts that have a screen. Off by default; a headless VM does not need it. See Desktop.

hearth.desktop.autoLoginUser

  • Type: string
  • Default: "operator"
  • Module: nixos/modules/desktop.nix

The user auto-logged into the Plasma session at boot.

hearth.grow.enable

  • Type: boolean
  • Default: false
  • Module: nixos/modules/grow.nix

Enables the always-on growth daemon that proposes, validates, and compounds small self-improvements. Opt-in.

hearth.grow.* (other options)

  • Module: nixos/modules/grow.nix
OptionTypeDefaultMeaning
hearth.grow.modelstring"qwen2.5-coder"The local model the growth loop uses.
hearth.grow.sourceRepostring"/home/operator/hearth-desktop"The live config the grow repo is seeded from.
hearth.grow.cyclesPerRunint12Self-improvement cycles per service run before it restarts.
hearth.grow.restartSecint300Pause between growth runs, so the box is not pegged.

hearth.creator.enable

  • Type: boolean
  • Default: true
  • Module: nixos/modules/creator.nix

Installs the local content toolchain (ffmpeg, yt-dlp, imagemagick, sox, piper-tts). Set false to leave it out.

A note on the agent runtime and spawn

The agent runtime (hearth.agents.enable, default true) also provides the tool-using loop (hearth-loop) and the on-demand spawn queue that the command center uses. Those are wired automatically when the runtime is enabled; there are no extra options to set. See Agent engine.