I use nix-shell -p for infrequently used commands, or nix shell flake#packagename for flakes. I prefer the shell environment because I rarely need to run something only one in a session. Usually I forget the cli arguments, and then have to run --help and so on.
For anything I need more frequently, I usually install either via home manager if I care about a specific/newer version, or just as a system package (I don't use NixOS).