I have a Dmenu script to switch between the models. https://gitea.com/gnusupport/LLM-Helpers/src/branch/main/bin/rcd-llm-dmenu-launher.sh
I just click and then choose the model from the menu.

You mentioned switching modes and switching model. Now, what do you mean with switching the modes?
And finally, you can just talk to your model and ask it to give you the shell script or any other kind of programming code to help you switch the mode.
The important is that you have defined how to run the model by some command, and then you can put all those commands together in a list, and then you find a way how to switch modes.
I like speaking, even now I'm speaking and getting this comment in text. So that means I could basically speak and have my computer intercept the speech before it comes to any model. And then I can use embeddings to basically recognize if I have given some command. You can even use the simple script recognition. Like you could use string recognition. And then based on your spoken command or maybe the text which you are entering, then you could switch the mode or switch the model.