Chat UI lacks RTL support — Persian is LTR-containered; mixed Persian+English BiDi is scrambled

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Where does the bug appear?

Cursor IDE — Chat / Agent panel (message rendering + layout direction)

Describe the Bug

I work daily in Persian (Farsi). Two related problems make Chat unusable for serious work:

  1. Chat container is effectively LTR
    Persian replies are not rendered as true RTL (right-aligned paragraph direction). The model can write correct Persian logically, but cannot force the chat UI to display right-to-left. Users ask “why don’t you just write RTL like Persian?” — that is not controllable from the assistant side. Direction must be handled by Cursor’s chat renderer (dir=rtl / dir=auto on message containers).

  2. Mixed Persian (RTL) + English (LTR) is visually scrambled
    When Persian sentences include English technical terms mid-line (CRM, POS, Online, PC, EPS, SaaS, etc.), word order and punctuation jump. Logical text may be fine; visual BiDi rendering is broken.

Real broken example from my chat screenshot:
.کافی نیست EPS ،لازم است Online دسکتاپ PC برای

Readable intended meaning:
For desktop PC, Online is required; EPS is not enough.

Pure-ish Persian lines are somewhat readable; the scramble is worst with embedded Latin tokens.

Important: English terms are required for comprehension in product/business chats. “Write only Persian” is not an acceptable product workaround. Cursor must support proper RTL + Unicode BiDi isolates in Chat.

Steps to Reproduce

  1. Open Cursor Chat on macOS.
  2. Ask for a Persian reply that embeds English terms mid-sentence.
  3. Observe:
    • overall message direction/alignment is not proper RTL
    • mixed Persian+English lines appear reordered/scrambled
  4. Note that the assistant cannot fix container direction from markdown alone.

Expected

  • Dominant Persian messages render with RTL paragraph direction and right alignment
  • Latin segments are isolated without scrambling surrounding Persian
  • Punctuation follows natural Persian reading order
  • Official BiDi/RTL support in Chat (not community CSS hacks)

Actual

  • Chat behaves like an LTR container for Persian
  • Mixed RTL/LTR lines scramble visually
  • Users are forced into awkward formatting workarounds (split lines / backticks)

Operating System

macOS (Darwin 25.5 / 26.5.2)

Cursor Version

3.12.17

Does this stop you from using Cursor?

Sometimes — workable only with painful formatting workarounds. Official RTL + BiDi support is needed for Persian/Arabic users.

Ask

Please prioritize native RTL/BiDi in Chat message rendering (and input). This is a known limitation; please treat it as a product bug/priority, not a user workaround problem.

Steps to Reproduce

  1. Open Cursor Chat on macOS.
  2. Ask the agent to reply in Persian (Farsi).
  3. Ask it to include English technical terms mid-sentence (examples: PC, Online, EPS, CRM, POS, SaaS).
  4. Look at the rendered assistant message.
  5. Observe two problems:
    a) The chat message is not true RTL (container behaves like LTR).
    b) Mixed Persian + English lines become visually scrambled (word order and punctuation jump).
  6. Example broken visual line from a real chat:
    .کافی نیست EPS ،لازم است Online دسکتاپ PC برای
  7. Confirm the assistant cannot force RTL layout from its side; only Cursor UI can fix this.

Expected Behavior

Persian (RTL) chat messages should render correctly as right-to-left:

  • Message container uses proper RTL direction (dir=rtl or dir=auto)
  • Text is right-aligned for Persian-dominant content
  • English/Latin terms inside Persian sentences are isolated correctly (Unicode BiDi)
  • Word order and punctuation stay natural and readable
  • No scrambled mixed Persian+English lines
  • Official RTL/BiDi support in Chat UI (not community CSS hacks)

Operating System

MacOS

Version Information

Cursor: 3.12.17
OS: macOS 26.5.2 (Build 25F84)
Arch: Apple Silicon (arm64)
Area: Chat / Agent message rendering

For AI issues: which model did you use?

Not model-specific — UI/BiDi rendering bug in Chat.
Reproduced with Composer (Auto) and occurs across models when Persian + English are mixed.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the detailed report with examples, that’s really helpful.

This is a known limitation: the Chat/Agent renderer doesn’t support RTL or Unicode BiDi isolation yet, so Persian content gets laid out as LTR, and lines that include English terms like PC, Online, EPS, etc. can look visually reordered even though the underlying text is correct. Direction should be handled at the UI layer, not by the model, you’re right.

Full RTL/BiDi support in chat is on our radar, but I can’t share an exact timeline. It’s more complex than just dir=auto because we need to handle mixed RTL/LTR cleanly together with code blocks and markdown.

This is already being discussed and collecting votes here, I’d recommend subscribing and adding your vote so we can better gauge demand: Add RTL for chat

If there’s an update, I’ll follow up.