microsoft / microsoft/terminal
Support Right to Left (RTL) text
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 105k
- Forks
- 9.6k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 29
Description
[!NOTE]
This issue is not eligible for LLM, Agentic, Copilot, AI, Claude, Opencode, Anthropic contributions. Users who submit pull requests authored solely by any of these tools will be discovered and banned.
-
What you're doing and what's happening: When writing some right-to-left characters (Farsi, Arabic, ...) after some left-to-right characters, the rtl text goes from the cursor position into the left, causing it to be mixed with the ltr text written before.
-
Steps to reproduce: Open a Windows Terminal window. write some english characters, like
abcdef. Then write some Farsi/Arabic text, like:سلامNotice that the Farsi text goes inside the english text.
-
Screenshot:

- what should be happening instead: As console is generally left to right, the rtl text should begin more on the right (cursor should go to right), and it should end exactly when the ltr text ended. See how Notepad (correctly) handles this situation:

- Windows build number: 10.0.18362.86
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
No source files or tests are named. Reproduce the behavior in a Windows Terminal window by typing English followed by Farsi or Arabic, then investigate the terminal's text input and rendering path; done means RTL text starts to the right without mixing into the preceding LTR text, matching the Notepad example.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- 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