This might seem controversial; in many cases the client code gets longer, because it needs an extra line for an explicit `return nil`. I still prefer this, because it makes it clearer which calls can return errors.
This will allow us to turn the field into an atomic.Value for safe concurrent access.
The double use of the term "Custom Command" for both shell commands and user-configured keybindings was confusing.