Skip to content

feat: add autoUpdates option for ~/.claude.json#45

Merged
JacobPEvans-personal merged 1 commit into
mainfrom
feat/auto-updates-option
Jun 2, 2026
Merged

feat: add autoUpdates option for ~/.claude.json#45
JacobPEvans-personal merged 1 commit into
mainfrom
feat/auto-updates-option

Conversation

@JacobPEvans-personal
Copy link
Copy Markdown
Member

What

Adds a programs.claude.autoUpdates home-manager option (nullOr bool, default null), mirroring the existing autoUpdatesChannel / remoteControlAtStartup options, and wires it into the claudeJsonOverlay (modules/settings.nix) so it deep-merges into ~/.claude.json at activation time.

Why

autoUpdates is a ~/.claude.json key with no Nix knob today — the overlay only managed mcpServers and remoteControlAtStartup. Without this option, enabling/disabling Claude Code's in-app auto-updater required hand-editing ~/.claude.json, which is exactly the kind of user-level config that should be declarative.

  • null (default) → unmanaged (Claude Code's own default is true); no behavior change for existing consumers.
  • true/false → written verbatim into ~/.claude.json.

Pairs with autoUpdatesChannel to give Nix full control of the updater (channel + on/off).

Verification

  • nix flake check passes (treefmt, pre-commit, lib-tests, programs-claude-eval).
  • Verified end-to-end via downstream nix-ai consumer: darwin-rebuild switch with autoUpdates = true set ~/.claude.json "autoUpdates": true through the overlay (no hand-edit).

Refs: dryvist/nix-ai (consumer PR sets autoUpdates = true and bumps the lock to this rev)

🤖 Generated with Claude Code

Adds a nullOr bool `programs.claude.autoUpdates` option, mirroring the
existing `autoUpdatesChannel` and `remoteControlAtStartup` options, and
wires it into the claudeJsonOverlay so it deep-merges into ~/.claude.json
at activation time.

null (default) leaves the key unmanaged (Claude Code's own default is
true). Pairs with autoUpdatesChannel to give Nix full declarative control
of the in-app auto-updater instead of hand-editing ~/.claude.json.

Assisted-by: Claude:claude-opus-4-8[1m]
@JacobPEvans-personal JacobPEvans-personal merged commit 9d0a82c into main Jun 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant