I’ve created a small program which wraps nix-shell but persists the derivation preventing it from getting cleaned by nix garbage collector similarly to how nix-direnv persistence works
It requires no additional programs/configuration/setting up and is much simpler by being manual compared to direnv. Nip works just as nix-shell would work with shell.nix/default.nix files
I thought that it might be useful for some people. You can find it here