Repository navigation
Description
Problem
Agent Code is a keyboard-heavy app, but the current interaction model is not modal. Users who live in Vim-style workflows should be able to navigate and edit across the app without constantly switching back to mouse-driven or platform-default controls.
This should be tracked as an app-wide capability, not a one-off editor feature. Vim mode needs to cover the places where users spend time: composer input, transcript navigation, panes/tabs, command palette flows, and file/editor surfaces where applicable.
Desired Behavior
Add a configurable Vim mode for the whole app.
At minimum, reason through support for:
- normal/insert-style mode semantics where they make sense
- composer editing and prompt navigation
- pane/tab/workspace navigation with Vim-like movement
- transcript scrolling and selection/navigation
- command palette behavior that does not fight modal key handling
- Monaco/editor integration using an existing Vim layer if practical
- clear visual indication of current mode/focus so users do not get trapped
Acceptance Criteria
- Vim mode is opt-in from settings or a command, not forced on existing users.
- Key handling has a central design so feature areas do not each invent incompatible mini Vim modes.
- Existing app shortcuts continue to work or have documented Vim-mode equivalents.
- Text input fields, composer, and editor surfaces handle Escape/Insert/navigation predictably.
- There is a clear escape hatch to disable Vim mode if key handling gets into a bad state.
- Manual QA covers composer, command palette, pane switching, transcript scrolling, and editor/file surfaces.
Notes
This probably needs design before implementation because the risk is not the keybindings themselves; it is focus ownership. The app has many interactive surfaces, so Vim mode should define which layer owns a keypress in each state.
Activity