diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx index a7f24875..b33f2ac6 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx @@ -665,7 +665,11 @@ export function Prompt(props: PromptProps) { return } - const pastedContent = event.text.trim() + // Normalize line endings at the boundary + // Windows ConPTY/Terminal often sends CR-only newlines in bracketed paste + // Replace CRLF first, then any remaining CR + const normalizedText = event.text.replace(/\r\n/g, "\n").replace(/\r/g, "\n") + const pastedContent = normalizedText.trim() if (!pastedContent) { command.trigger("prompt.paste") return