No seriously, I have never written anything in Rust until now. This might eat your kubeconfig or something. But it seems to work okay for me. It does not support multiple configs merged via KUBECONFIG. I did this to learn a little about Rust and have something ever so slightly faster than kubectx/kubens.
Run mise run install
kubeswitch <context|namespace> [context name|namespace name]
If you omit the context or namespace name, it will use skim to let you find the target context/namespace.
I use the following in my fish config to make it easier to work with:
abbr -a ktx 'kubeswitch context'
abbr -a kns 'kubeswitch namespace'
An alias in bash will accomplish the same thing as the above abbreviations.