I really like UTM for VM that I just need to shell into. It's not as complete as something like VirtualBox or VMware Fusion, but it does what I need.
The only thing I'd like to have is some sort of background daemon, so my VM don't stop if I accidentally close the UTM window.