Terminal UI is hard to get right. Terminal UI that works with everyone’s keyboard preferences is even harder. Gitlawb Zero just solved this the right way: make everything configurable.
What Changed
Zero’s TUI shortcuts were hardcoded. Arrow keys for navigation, enter for selection, escape for cancel — standard choices, but not everyone’s preferences. The commit Make shortcuts reconfigurable via the config file changes that.
Every keyboard shortcut in Zero’s TUI is now remappable through the config file. You can bind any action to any key combination.
What’s Configurable
All of Zero’s interactive modes support custom shortcuts:
- Provider picker — search, select, filter, cancel
- Model selection — switch models, view details
- Session browser — navigate sessions, delete, export
- Permission prompts — approve, reject, inspect
- General navigation — scroll, search, exit
The config uses a declarative format:
{
"shortcuts": {
"provider_picker": {
"search": ["ctrl+f", "/"],
"confirm": ["enter"],
"cancel": ["escape", "ctrl+c"],
"page_down": ["ctrl+d", "pagedown"]
}
}
}
Why This Matters for Power Users
Customizable shortcuts might seem like a niche feature, but they’re a signal of a tool designed for power users. Developers spend hours every day in their terminal tools. The difference between a default keybinding and a personalized one might be milliseconds per action — but over thousands of actions, it adds up.
Zero’s approach — reconfigurable via config file — is the right one for a CLI tool. It doesn’t require a GUI preferences panel. It integrates with your dotfiles. It’s version-controllable.
This is one of those features that experienced developers immediately appreciate and casual users might never notice. But that’s who Zero is for.