Keybindings: support shell command actions

Resolved 💬 3 comments Opened Apr 4, 2026 by bluemihai Closed Apr 8, 2026

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

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗