[BUG] Thai IME composition renders incorrectly in Tabby terminal on Windows

Status Open
Reported on v2.1.217
Maintainer reply None cached
Activity 0 comments · opened Jul 22, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Summary

Thai text is rendered incorrectly while typing in Claude Code when running inside Tabby terminal.

The submitted text is always correct after pressing Enter.

Only the live composition preview is wrong.

---

Environment

  • OS: Windows 11
  • Terminal: Tabby 1.0.234
  • Claude Code: 2.1.217
  • Node.js (Windows): 24.15.0
  • Node.js (WSL): 24.18.0
  • Keyboard: Thai Kedmanee

---

Reproduction

  1. Open Tabby.
  2. Start Claude Code.
  3. Switch keyboard to Thai.
  4. Type Thai words.

Examples:

Typing:

เส้า

Preview while typing:

เา

Expected:

เส้า

---

Typing:

เลือก

Preview while typing:

เอก

Expected:

เลือก

---

Result

The preview while typing is incorrect.

After pressing Enter, Claude receives the correct text.

---

Tested

Works correctly

  • PowerShell inside Tabby
  • Claude Code inside VS Code Terminal

Reproduces

  • Claude Code inside Tabby
  • Claude Code inside WSL running in Tabby

---

Additional Information

  • WebGL and Canvas renderer both reproduce the issue.
  • Changing fonts does not help.
  • Setting TERM=xterm-256color does not help.
  • Pasting Thai text works correctly.
  • Only live IME composition is affected.

What Should Happen?

Claude Code should display the complete Thai text while it is being typed.

For example:

  • Typing เส้า should display เส้า
  • Typing เลือก should display เลือก

The live input preview should match the text that is submitted after pressing Enter.

Error Messages/Logs

No error message is shown.

Steps to Reproduce

  1. Install and open Tabby terminal on Windows.
  2. Start PowerShell in Tabby.
  3. Run claude.
  4. Switch the Windows keyboard layout to Thai Kedmanee.
  5. Type เส้า in the Claude Code input box.
  6. Observe that the live preview displays only เา.
  7. Press Enter and observe that Claude receives เส้า correctly.
  8. Repeat with เลือก.
  9. Observe that the live preview displays เอก, while the submitted text is เลือก.

The same issue occurs when Claude Code is run through Ubuntu WSL 2 inside Tabby.

Claude Model

Opus

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.1.217 (Claude Code)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Other

Additional Information

Environment:

  • Tabby: 1.0.234
  • Claude Code: 2.1.217
  • Node.js on Windows: 24.15.0
  • Node.js on WSL: 24.18.0
  • Keyboard layout: Thai Kedmanee
  • WSL distribution: Ubuntu, WSL 2

Troubleshooting already tested:

  • Tabby WebGL renderer: reproduces
  • Tabby Canvas renderer: reproduces
  • Different terminal fonts: reproduces
  • TERM=xterm-256color: reproduces
  • Claude Code on Windows inside Tabby: reproduces
  • Claude Code on Ubuntu WSL 2 inside Tabby: reproduces
  • Normal PowerShell input inside Tabby: works correctly
  • Claude Code inside VS Code terminal: works correctly
  • Pasting Thai text into Claude Code inside Tabby: works correctly

This appears to affect only the live interactive input rendering in Claude Code when used with Tabby. The actual submitted Unicode text remains correct.

View original on GitHub ↗