I tried
vagrant snapshot push
vagrant destroy
vagrant snapshot pop
But of course the VM is gone so that won't work. The problem is that if I want to debug provisioning from scratch then I don't want to nuke my whole dev setup each time. As a workaround I can redefine my Vagrant file into a multi-machine setup probably and make abuse that to get new boxes.
Is there vagrant cli way of saving and restoring my setup?
If I understand you right you need to create your own box with predefined setup. You may try package for this.