Right-to-left text and a Persian font for AI chat sites.
A free, open-source browser extension for people who write in Persian, Arabic, Hebrew, Urdu and other right-to-left languages.
It runs in your browser only. No account, no tracking, no server.
Features · Supported sites · Install · Privacy · Documentation · FAQ · Contributing
Most AI chat sites are built for left-to-right text. When you write or read Persian, Arabic or Hebrew, the lines sit on the wrong side, punctuation lands in the wrong place, mixed English and Persian sentences get scrambled, and the default font is often poor for Arabic script.
RTLY fixes this on the page itself. For each message it looks at the text, and if the text is mostly right-to-left script it sets the direction to right-to-left and applies a bundled Persian or Arabic font. English messages stay left-to-right and keep the site's font. RTLY avoids code blocks, icons, menus and sidebars.
| Automatic direction Direction is chosen per message from the characters in it. Persian, Arabic, Hebrew, Urdu and other right-to-left scripts are detected. Mixed text follows the dominant language. |
Bundled fonts Vazirmatn is the default. You can pick another Persian or Arabic font in the settings. The fonts are bundled in the extension. It is applied only to text that contains Arabic-script characters, so English text keeps the site's own font. |
| Three modes per site Full (font and direction), Font only, or RTL only. Changing the mode applies to open tabs without a reload. |
On or off per site Switch any of the 16 supported sites off from the popup, the settings page, the right-click menu or the keyboard shortcut Alt+Shift+R. |
| Font size Scale chat text from 85% to 120% in steps of 5. |
Private by design No network requests, no analytics, no remote code. Settings stay in your browser's extension storage. |
| Light and dark, four colors The popup and settings page follow your system theme or your choice, with teal, blue, indigo or neutral accents. |
15 interface languages English, Persian, Arabic, Hebrew, Urdu and ten more right-to-left languages. Some strings are still English in some languages (see Translations). |
RTLY runs only on these sites. It does nothing anywhere else.
| Site | Address | Notes |
|---|---|---|
| ChatGPT | chatgpt.com | The older chat.openai.com address is also covered. |
| Claude | claude.ai | |
| Gemini | gemini.google.com | |
| Perplexity | perplexity.ai | |
| Microsoft Copilot | copilot.microsoft.com | |
| Google AI Studio | aistudio.google.com | |
| NotebookLM | notebooklm.google.com | |
| Grok | grok.com | |
| Poe | poe.com | |
| Z.ai | z.ai, chat.z.ai | |
| DeepSeek | chat.deepseek.com | |
| Qwen | qwen.ai, chat.qwen.ai | |
| Bing | bing.com | Runs on all of bing.com, not only the chat. |
| Mistral | mistral.ai, chat.mistral.ai | Runs on the whole host. |
| Hugging Face | huggingface.co/chat | Only the /chat section. |
| Cohere | cohere.com, coral.cohere.com | Runs on the whole host. |
Sites change their page markup without notice. When that happens RTLY can stop working on that site until its selectors are updated. If a site looks wrong, please report it.
| Browser | Status | How |
|---|---|---|
| Chrome (111 or newer) | Tested | Chrome Web Store |
| Microsoft Edge | Tested package, same as Chrome | Microsoft Edge Add-ons, or unzip the Chrome zip from Releases and load it unpacked. |
| Firefox 128+ (desktop) | Less tested | Firefox Add-ons, or load the zip temporarily |
| Safari | Not supported |
Chrome, Edge and Firefox: open the store page, click Add to Chrome (Get in Edge, Add to Firefox in Firefox), then click the puzzle icon in the toolbar and pin RTLY. Tabs that were already open before you installed need a reload.
Firefox (zip file): you can also try the Firefox zip without the store.
- Download
rtly-<version>-firefox.zipfrom the Releases page. - In Firefox, open
about:debugging#/runtime/this-firefox. - Click Load Temporary Add-on and choose the zip file.
Firefox removes temporary add-ons when it closes, so you repeat these steps after a restart. The Firefox package passes web-ext lint, but it has not been run in a real Firefox by the test suite in this repository.
From source: there is no build step. The extension/ folder is the extension. Open chrome://extensions, turn on Developer mode, click Load unpacked and choose the extension folder.
- Open one of the supported sites. RTLY is on by default.
- Click the RTLY toolbar icon to see the current site, the on/off switch, the mode and the font size.
- Open the settings (the three-dot menu in the popup, then Settings) for the live preview, the language and color options, and the full sites table.
The user guide covers every control, with screenshots.
- There is no server, no account, no analytics and no ads. RTLY makes no network requests of its own.
- Settings (on/off per site, modes, font size, theme, language) are saved in the browser's extension storage on your device.
- RTLY needs permission to read and change the pages of the sites listed above, because it sets direction and font on the text there. It reads the text only to decide its direction and never sends it anywhere.
- It requests two extension permissions,
storageandcontextMenus, plus access to the sites listed above. It does not request the tabs, history, cookies or downloads permissions. - Links in the popup and settings (GitHub, the support page, the store page) open in a new tab only when you click them.
Read the privacy policy for details.
| User guide | Every feature, with screenshots |
| Known limits | What does not work or is untested |
| Privacy policy | What the extension stores and what it can access |
| Changelog | What changed in each release |
| Contributing | How to report bugs, add a site and send changes |
| Support | Where to ask for help |
| Security | How to report a security problem in private |
Does RTLY read or send my chats?
RTLY reads the text on the page to decide whether a message is right-to-left. It does this inside your browser and sends nothing. It has no server to send to and makes no network requests.
Why is some text still left-aligned?
Direction is chosen per block from its characters. A block that is mostly English stays left-to-right on purpose. Code blocks, menus, sidebars and icons are left alone. If a Persian message is wrong, the site may have changed its markup. Report it.
Does it change the font of English text?
No. The RTLY font is applied only to elements whose text contains Arabic-script characters. If you only want the font or only the direction, choose the Font or RTL mode for that site.
How do I turn it off for one site?
Use the switch in the popup, the right-click menu item RTLY: Enable/disable for this site, or Alt+Shift+R. Turning a site on or off reloads that site's open tabs.
Does it work on other AI sites?
Only on the sites in the table above. Adding a site means adding its page selectors and a host permission. See Contributing, or ask in a feature request.
How do I report a problem?
Open an issue. Include the page address, a screenshot with private text hidden, your browser and the RTLY version. For security problems, see SECURITY.md.
The popup and settings page are available in 15 languages: English, Persian, Arabic, Hebrew, Urdu, Pashto, Central Kurdish, Sindhi, Uyghur, Yiddish, Western Punjabi, South Azerbaijani, Saraiki, Balochi and Kashmiri.
These translations are not all reviewed by native speakers. In ten of the languages (Pashto, Central Kurdish, Sindhi, Uyghur, Yiddish, Western Punjabi, South Azerbaijani, Saraiki, Balochi, Kashmiri) eight strings (mostly on the settings page) are still in English. The extension name, description and shortcut label (the part the browser shows in its own menus) are translated for 10 of the 15 languages; the other five show English there.
If you speak one of these languages and can improve a translation, please use the translation fix form or send a pull request. See CONTRIBUTING.md.
This README is also available in Persian and Arabic.
Bug reports, broken-site reports, translation fixes and small pull requests are welcome. Read CONTRIBUTING.md first.
If RTLY saves you time, you can support the project. A rating on the Chrome Web Store also helps other people find it.
MIT. Copyright 2026 Ehsan Enaloo.
The MIT license covers the code in this repository. The bundled font files in extension/fonts/ and the site logos in extension/logos/ are third-party material and keep their own terms.

