Kiro Chat RTL Support
kiro-chat-rtl-support is a minimal VS Code-compatible extension for Kiro IDE. It patches the built-in Kiro Chat webview so Hebrew and Arabic messages render RTL while English, code, paths, URLs, and editor surfaces remain LTR.
The extension is intentionally narrow:
- It only targets Kiro Chat assets under Kiro's installed application folder.
- It does not scan repositories.
- It does not modify user project files.
- It does not create Kiro Skills or Hooks.
- It does not patch
workbench.desktop.main.js.
- It does not send, store, or export chat content.
- Its DOM fallback reads rendered text locally only to choose
rtl, ltr, or auto direction.
Commands
Kiro RTL: Enable Chat RTL
Kiro RTL: Disable Chat RTL
Kiro RTL: Toggle Chat RTL
Kiro RTL: Reapply Chat RTL Patch
Kiro RTL: Show Controls
Kiro RTL: Open Logs
The status bar item shows the current state as Kiro RTL ON or Kiro RTL OFF.
Settings
kiroChatRtl.enabled: boolean, default true
kiroChatRtl.autoPatchOnStartup: boolean, default true
kiroChatRtl.logLevel: "error" | "warn" | "info", default "warn"
kiroChatRtl.patchDirAutoInChatBundle: boolean, default true
Logs are written to an Output Channel named Kiro Chat RTL.
How It Works
On activation, the extension searches under vscode.env.appRoot for Kiro Chat assets. Current Kiro builds can load chat from:
extensions/kiro.kiro-agent/packages/continuedev/gui/dist/assets/index.css
extensions/kiro.kiro-agent/packages/continuedev/gui/dist/assets/index.js
Older or alternate builds may use:
extensions/kiro.kiro-agent/packages/kiro-ui-agent-chat/dist/style.css
extensions/kiro.kiro-agent/packages/kiro-ui-agent-chat/dist/assets/*.js
The extension creates timestamped backups next to patched files and writes only between marked patch blocks:
/* --- KIRO CHAT RTL PATCH START --- */
/* --- KIRO CHAT RTL PATCH END --- */
/* --- KIRO CHAT RTL DOM PATCH START --- */
/* --- KIRO CHAT RTL DOM PATCH END --- */
The CSS patch handles broad RTL/LTR styling. The DOM fallback applies dir and inline styles to rendered chat message nodes and isolates inline English, URLs, paths, and code-like runs inside RTL text.
Rollback
Use Kiro RTL: Disable Chat RTL from the Command Palette. The command removes the marked patch blocks and prompts for reload.
Backups are created next to patched files using this naming pattern:
<original-file>.kiro-chat-rtl-backup-<timestamp>
Build
npm install
npm run compile
npm run package