microsoft / microsoft/terminal
Visual Studio Code + zsh + ConPTY = input issues
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 105k
- Forks
- 9.6k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 29
Description
I was sent here via https://github.com/Microsoft/vscode/issues/67227
-
Your Windows build number:
Microsoft Windows [Version 10.0.18323.1000] -
What you're doing and what's happening: (Copy & paste specific commands and their output, or include screen shots)
I type in the VS Code integrated terminal. Always at the second letter after the prompt, the cursor seems to jump momentarily. Sometimes single characters of my input aren't processed, but I couldn't reproduce this when trying to take a video. However, it is definitely related to the jumping/flickering.
Looks like this:

NB: I can only reproduce this issue with zsh (version 5.4.2 (x86_64-pc-msys)), not with PowerShell nor bash.
@Tyriar pointed me at the terminal.integrated.windowsEnableConpty option. With that option disabled, the problem is gone.
- What's wrong / what should be happening instead:
The cursor shouldn't flicker/jump, all input should be processed, the same way as when ConPTY is disabled. Like this:

Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the input flicker in the VS Code integrated terminal with zsh and terminal.integrated.windowsEnableConpty enabled, then compare it with ConPTY disabled and with bash or PowerShell. Trace the ConPTY input path; done means zsh input is fully processed and the cursor no longer jumps or flickers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- vscode, zsh
- Domain
- cli, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100