Feature request: Enter on empty input sends "continue"

Open 💬 0 comments Opened Jul 4, 2026 by ezz-ae

Feature description

When the input box is empty and the user presses Enter, Claude Code should submit continue — resuming the agent's work with a single keypress.

"continue" is plausibly the most-typed word in every Claude Code user's history. Today, Enter on an empty input does nothing, so this shortcut costs nothing in discoverability or conflicts. Similar empty-Enter / one-key continue conventions exist in other REPLs and agent CLIs, so the muscle memory reads as industry-standard rather than surprising.

Design safeguards (accidental-trigger concerns addressed)

The obvious objection is an accidental Enter tap silently sending continue and burning a turn. Three constraints kill that vector:

  1. Mid-conversation only — never active on a fresh/new session, where continue is meaningless anyway.
  2. Debounce — ignore empty-Enter within ~1 second of the previous submit. This eliminates the classic double-tap-after-send mistake (press Enter to submit, reflexively press again a beat later onto the now-empty box).
  3. Idle only — only fires when Claude has stopped and is waiting for input; never during streaming/tool execution.

With those, the worst case is a deliberate but unneeded continue, which is the one prompt that's nearly always safe to send.

Discoverability suggestion

Show a greyed-out placeholder hint in the empty input box when the shortcut is active, e.g. ↵ continue — makes the behavior visible and clearly intentional. Alternatively (or additionally), gate the whole feature behind a settings.json opt-in.

Why it can't be done locally today

  • ~/.claude/keybindings.json only binds keys to predefined actions (chat:submit, chat:clearInput, …) — there is no action that injects or submits literal text.
  • UserPromptSubmit hooks can validate/block/add context but cannot transform an empty submission into a prompt (and empty Enter never submits, so the hook never fires).

So there is no workaround; this needs first-class support.

View original on GitHub ↗