Yeah, its not really well documented or ergonomic, but diff-closures can do this:
https://nixos.org/manual/nix/unstable/command-ref/new-cli/nix3-profile-diff-closures.html
I have "nix profile diff-closures --profile /nix/var/nix/profiles/system | less"
aliased to diffboot
in my home-manager config so I can see what new packages have been installed.
Example output:
Version 80 -> 81:
firefox: 124.0b2 → 124.0b5
firefox-devedition-unwrapped: 124.0b2 → 124.0b5, -26.1 KiB
ibus: 1.5.28 → 1.5.29, +189.5 KiB
nixos-system-dio: 24.05.20240228.9099616 → 24.05.20240229.1536926
python3.11-botocore: 1.34.21 → 1.34.49, +611.7 KiB
qtquick3d: +8.1 KiB
source: +84.1 KiB