[FEATURE] Bindable bash-mode submit actions — enter = run+stay, shift+enter = run+exit

Resolved 💬 1 comment Opened Jun 2, 2026 by brianjholmes Closed Jul 6, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

Problem Statement

Bash-input mode (!) is sticky: Enter runs the command and the input stays
in bash mode; returning to the chat prompt requires Escape/Backspace/Ctrl+U
on an empty prompt.

For a fire-one-command-then-keep-talking workflow (e.g. driving a Makefile
of claude -p verbs inline, then immediately continuing the conversation),
that's a manual mode-switch keystroke appended to every single exchange.

Notably, the project has seen demand in BOTH directions: #24845 and #52939
asked for persistent bash mode back when it auto-exited (both closed
not-planned); the current behavior is persistent, and now the one-shot flow
is the one that costs a keystroke. That history suggests neither default
satisfies everyone — which makes this a keybinding problem, not a default
problem.

Proposed Solution

Expose bash-mode submit as bindable actions instead of changing the default:

  • bash:submit — run the command, stay in bash mode (today's behavior, default on enter)
  • bash:submitAndExit — run the command, return to the chat prompt (suggested default: shift+enter)

Today keybindings.json has no bash:* context or actions at all, and the
docs confirm mode persistence isn't configurable — so both camps from the
earlier issues could self-serve with two small actions and zero default-behavior
change.

Alternative Solutions

_No response_

Priority

Medium - Would be very helpful

Feature Category

Interactive mode (TUI)

Use Case Example

Workflow Context

Interactive sessions where the operator fires deterministic shell commands
(make <verb> wrappers around claude -p) between chat turns: batch users
keep Enter semantics untouched; one-shot users bind shift+enter and never
touch Escape again.

Additional Context

_No response_

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗