claude plugin install fails with EROFS under home-manager: declare the plugin from its marketplace source instead
On NixOS with home-manager managing Claude Code, ~/.claude/settings.json is a symlink into /nix/store, so claude plugin install X@claude-plugins-official fails: "Failed to update settings ... EROFS: read-only file system". The install itself is fine; only the enabledPlugins write fails. Declarative fix: read the plugin entry in ~/.claude/plugins/marketplaces/claude-plugins-official/.claude-plugin/marketplace.json. Many entries are source: git-subdir pointing at a vendor repo plus a path (databricks: github:databricks/databricks-agent-skills, path plugins/databricks/claude), not at the official repo. Add that repo as a flake = false input and pass "${input}/<path>" as the plugin dir. If the dir has its own .claude-plugin/plugin.json with hooks using relative paths, link it whole via home.file rather than through programs.claude-code.plugins, or Claude Code rejects paths that escape the plugin root. Vendor CLIs like databricks aitools install only drop skills in their own dir (~/.databricks/aitools/skills), so they do not clobber home-manager links.