This relates quite a bit to agentic materials, but I think our tools should grow with us. One of my favorite examples of this in a prototype form is Arc Browser telling you that when you do Cmd-L Cmd-C, you can instead do Cmd-Shift-C. It’s not forcing you to use the new keybind but noting an inefficiency with what you do and trying to help you with it.
I kind of think of this like information theory where a tool should constantly be looking at how frequently you do something and trying to ensure the keybinds to do those things are as optimal as possible. If you have idiosyncrasies, a tool should adapt and suggest different new keybinds to you. I don’t think it should force it or get rid of your old ones (ala AI & Agency), but it should help you figure out where you can come up with more efficient things. If we view a tool as something living and a process between a human and the tool, then things unused should decay and constantly used things should be more and more compressed. Tools should suggest ways to make my life easier while also freeing up keybinds for things I’ve never touched.
Vim as a text editor is amazing because everyone has a different
.vimrc
(config file). These things grow with you and change with you. I recently pulled my old config and had to clear out keybinds that were from when I used to do competitive programming. I’m a new person now who needs different keybinds.
In the physical world, you learn where you like things, you mise en place a certain kind of way, the world naturally adapts. In the digital world, this isn’t the case. Tools have set things and even if you can set keybinds, this isn’t the same as having keybinds for actions that you care about.