Keybindings: support shell command actions
Problem
Custom keybindings can only trigger built-in actions (e.g. chat:submit, app:toggleTodos). There's no way to bind a key to a shell command.
This means simple state toggles (like touching/removing a flag file to change a status bar indicator) must go through a skill → LLM round-trip, adding 3-6 seconds for what should be an instant operation.
Proposed solution
Allow keybindings to execute shell commands directly, e.g.:
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+shift+f": "shell:touch /tmp/my_flag_file",
"ctrl+shift+t": "shell:rm -f /tmp/my_flag_file"
}
}
]
}
Or alternatively, allow keybindings to trigger skills without LLM involvement (since some skills are just a single shell command).
Use case
I use the custom statusLine command to show mode indicators (FLOW/TASK, Deploy ON/OFF) backed by flag files in /tmp. Toggling these via skills works but is painfully slow due to the LLM round-trip. A direct keybinding → shell command path would make this instant.
🤖 Generated with Claude Code
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗