u/kyledock11

Fix for Wispr Flow not pasting into Cursor terminal on Windows (Claude Code / TUI apps)

If you're using Wispr Flow to dictate into the Cursor terminal — specifically while running Claude Code or any other interactive TUI application — you may have noticed that auto-paste completely stops working. Dictation finishes fine (you can see it in the Wispr app and sometimes it copies to clipboard), but nothing lands in the terminal. Alt+Shift+Z doesn't work either. The only way to get text in is to manually right-click and paste.

After a lot of digging, here's what's happening and how to fix it.

---

**Why it happens**

Claude Code (and similar TUI apps) take full control of the terminal's stdin when they launch. This blocks all programmatic paste injection — Ctrl+V, Wispr's internal paste method, Alt+Shift+Z, all of it. The only paste method that bypasses this is Ctrl+Shift+V, which routes through the terminal emulator itself rather than the input layer the TUI controls.

This appears to be Windows-specific. Mac users don't seem to hit this.

---

**The fix — two parts**

**Part 1: Cursor terminal settings**

Open the command palette (Ctrl+Shift+P), select *Open User Settings (JSON)*, and add these two lines inside the curly braces:

```json

"terminal.integrated.allowChords": false,

"terminal.integrated.sendKeybindingsToShell": true

```

Save and fully restart Cursor (not just the terminal panel).

**Part 2: AutoHotkey paste bridge**

Install AutoHotkey v2 (free at autohotkey.com), create a new script called WisprCursorPaste.ahk, and paste this in:

```autohotkey

#Requires AutoHotkey v2.0

#SingleInstance Force

LastClipTime := 0

OnClipboardChange(ClipboardChanged)

ClipboardChanged(DataType) {

global LastClipTime

if DataType != 1

return

clipText := A_Clipboard

; Ignore empty clips

if StrLen(clipText) < 2

return

; Only act if Cursor is active

activeWin := WinGetTitle("A")

if !InStr(activeWin, "Cursor")

return

; Wispr takes at least 800ms even for one word

; Manual copies are instant — ignore them

now := A_TickCount

timeSinceLast := now - LastClipTime

LastClipTime := now

if timeSinceLast < 800

return

Sleep 300

Send "^+v"

}

```

Run it as administrator (right-click → Run as administrator). You should see a green AHK icon in your system tray.

To make it run on every boot: press Win+R, type `shell:startup`, create a shortcut to the .ahk file there, then right-click the shortcut → Properties → Advanced → check *Run as administrator*.

---

**How it works**

The script watches the clipboard for changes. When something new lands on the clipboard, it checks three things before firing:

  1. The content is at least 2 characters (filters empty clips)
  2. Cursor is the active window
  3. At least 800ms has passed since the last clipboard change — manual copies are instant, Wispr dictations always take longer

If all three pass, it sends Ctrl+Shift+V into Cursor, which bypasses the TUI input layer and lands in the terminal correctly.

---

**Disclaimers and caveats**

- This was developed and tested on a single Windows 11 machine. Your mileage may vary depending on your exact Windows version, Cursor version, Wispr Flow version, and system configuration.

- The 800ms timing gate is the main thing you may need to tune. If accidental pastes happen when you copy code inside Cursor, increase it to 1000–1200. If dictations are being missed, try lowering it slightly.

- The script triggers on any clipboard change while Cursor is focused, not just Wispr dictations. The timing gate handles most false positives, but if you copy large blocks of text very slowly inside Cursor it could trigger.

- Running AHK as administrator is required for it to inject keystrokes into elevated processes. If you're not comfortable running scripts with elevated permissions, this approach isn't for you.

- This does not affect Wispr Flow's behavior in any other app — it only acts when Cursor is the active window.

- I am not affiliated with Wispr Flow, Anthropic, or Cursor. This is a community workaround, not an official fix.

- If a future update to Wispr Flow or Cursor resolves the underlying paste injection issue natively, you can simply stop running the AHK script and revert the Cursor settings.

**UPDATE:** There is a known bug with the AutoHotkey script above. Because the script monitors the clipboard to detect when Wispr finishes a dictation, it cannot reliably distinguish between a Wispr transcription and a manual copy made inside the Cursor terminal. If you copy text from the terminal while the script is running, it may automatically paste that text into Claude Code and erase whatever was already in the input buffer.

I attempted several workarounds including timing gates, character length filters, and previous-window tracking, but none of them are robust enough when using Wispr as a full keyboard replacement — where you might dictate a single word like "yes" just as often as a full sentence.

The root problem is that Wispr Flow does not currently expose a native hook, local API, or any event that third-party tools can listen to in order to detect when a transcription completes. Without that, any clipboard-based detection will always have false positives.

I have submitted a support ticket to Wispr Flow requesting either a native fix for paste injection into TUI-based terminal applications on Windows, or a local event/API that tools like AutoHotkey can hook into cleanly.

In the meantime, the script is still useful if your workflow is primarily dictation with minimal copying from the terminal. If you copy frequently, you may want to hold off until Wispr addresses this at the application level.

Will update this post if a proper fix is found.

reddit.com
u/kyledock11 — 9 hours ago