[Feature Request] Vim-style j/k navigation in selection menus (/effort, /model, /agents, etc.)
Description
Add vim-style j/k (and/or Ctrl+J/Ctrl+K) navigation to selection menus invoked by slash commands such as /effort, /model, /agents, /permissions, etc. Currently these menus only respond to arrow keys.
Current Behavior
When invoking commands like /effort that present a list of options, navigation requires arrow keys (↑/↓).
Expected Behavior
In any selection menu, users should also be able to:
- Press
j(orCtrl+J) to move selection down - Press
k(orCtrl+K) to move selection up
Use Case
Users running Claude Code inside terminal-heavy vim/neovim workflows (tmux + nvim + fzf + telescope) have muscle memory for j/k navigation. Reaching for arrow keys breaks flow, especially since much of Claude Code's audience is terminal-native developers.
Related Prior Issues
Two previous issues requested the same thing but only for the @ file picker, and both were auto-closed:
- #6517 — Vim-style keyboard navigation (Ctrl+J/K) for file picker
- #16547 — Customizable keyboard shortcuts for @ file picker navigation
This request is broader: apply vim navigation consistently across all selection menus, not just the file picker.
Possible Implementation
- Always-on:
Ctrl+J/Ctrl+K(unambiguous — does not conflict with filter typing) - Opt-in: bare
j/konly when/vimmode is active, or behind a config flag insettings.json - Expose bindings in
~/.claude/keybindings.jsonso users can rebind
Environment
- Platform: darwin
- Terminal: ghostty (inside tmux + neovim)
- Version: Claude Code with Opus 4.7
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗