NousResearch/hermes-agent

Shift+Enter newline handling in Ghostty and WezTerm terminals

Cluster 1795 · hermes cli. Data as of

Nothing open on GitHub. Fix merged in #2345 on 21 Mar 2026. Check it covers your case.

The short answer

0open issues
0open PRs
3items grouped
Known?
Yes. 3 related items grouped here, 1 issue already closed.
Fix event
A fix was merged to main in PR #2345. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this resolved, deciding PR #2345. That is separate from the fix event.
Still open
Nothing open on GitHub.

One issue reports newline/multiline input problems in Ghostty on macOS, and two pull requests with identical titles propose CLI changes for Kitty keyboard protocol Shift+Enter handling in Ghostty and WezTerm. The titles suggest a shared theme, but the outcome of these changes is not stated.

Open issues0

No open issues.

Open PRs0

No open pull requests.

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

  • #2345 fix(cli): handle Kitty keyboard protocol Shift+Enter for Ghostty/WezTerm

    merged to main

    files: cli.py

    Show the diff
    • cli.py
      @@ -6044,6 +6044,7 @@ def handle_ctrl_enter(event):
                   """Ctrl+Enter (c-j) inserts a newline. Most terminals send c-j for Ctrl+Enter."""
                   event.current_buffer.insert_text('\n')
       
      +<<<<<<< Updated upstream
               @kb.add('tab', eager=True)
               def handle_tab(event):
                   """Tab: accept completion, auto-suggestion, or start completions.
      @@ -6080,6 +6081,19 @@ def handle_tab(event):
                   else:
                       # No menu and no suggestion — start completions from scratch
                       buf.start_completion()
      +=======
      +        @kb.add('s-enter')
      +        def handle_shift_enter(event):
      +            """Shift+Enter inserts a newline (standard terminals)."""
      +            event.current_buffer.insert_text('\n')
      +
      +        # Kitty keyboard protocol: Ghostty and other Kitty-protocol terminals
      +        # encode Shift+Enter as CSI 13;2u instead of a simple escape sequence.
      +        @kb.add('escape', '[', '1', '3', ';', '2', 'u')
      +        def handle_kitty_shift_enter(event):
      +            """Shift+Enter in Kitty keyboard protocol (Ghostty, WezTerm, etc.)."""
      +            event.current_buffer.insert_text('\n')
      +>>>>>>> Stashed changes
       
               # --- Clarify tool: arrow-key navigation for multiple-choice questions ---
       

1 PR closed without merging

From the close comments: merged via another change 1

  • #1798 fix(cli): handle Kitty keyboard protocol Shift+Enter for Ghostty/WezTerm · merged via another change → #2345
Closed issues · 1
  • Closed#1795[Bug]: Newline/multiline input broken in Ghostty terminal on macOS
How this cluster was grouped
  • Link evidence (structural links throughout): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
  • Pairwise link density 0.67: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. 1.00 means every pair is linked.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Subsystem
hermes cli
Merged PRs
#2345
Closed issues
1
Attempts
1 PR closed without merging
Fix link checked
21 Mar 2026. This confirmation is old and may be out of date (a revert or reopen would not have invalidated it here); re-verify.

For your agent

The same facts, typed.