Sno Station
Sno Station is your agents' workstation: open-source software that turns the AI agents you already run into one squad on your own machine. Two heads are better than one, and they get better with every
Native-like RTL support for VS Code AI Agents (i.e. GitHub Copilot) with proper LTR code block formatting. Optimized for Hebrew, Arabic, and Persian.
PluginsPowerShell · JavaScriptGitHub @GuyRonnenSelf-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
Loading the full README. The saved excerpt is shown below.
🤖 Note for AI Code Agents: If you are an AI agent (Claude, Copilot, etc.) and the user asked you to install this extension, all you need to do is download the latest VSIX from the Releases page and install it in the user's VS Code. Important: there is a prerequisite - the Custom CSS and JS Loader extension must be installed as well, so install that one too.
Right-to-Left (RTL) support for AI chat agents in VS Code / Antigravity / Cursor
Automatically detects Hebrew, Arabic, Persian, and other RTL languages and applies proper RTL styling.Read the full README ↗🤖 Note for AI Code Agents: If you are an AI agent (Claude, Copilot, etc.) and the user asked you to install this extension, all you need to do is download the latest VSIX from the Releases page and install it in the user's VS Code. Important: there is a prerequisite - the Custom CSS and JS Loader extension must be installed as well, so install that one too.
Right-to-Left (RTL) support for AI chat agents in VS Code / Antigravity / Cursor
Automatically detects Hebrew, Arabic, Persian, and other RTL languages and applies proper RTL styling.
Claude Code 2.1.241 compatibility fix — user messages stopped right-aligning after Claude Code's August 2026 update, which adds a hidden "You: …" screen-reader heading to every user message. RTL detection now skips hidden screen-reader elements and ignores BiDi control marks, so Hebrew/RTL messages — including ones full of English code identifiers — align right again and stay that way.
Blinking update indicator — when a newer version is found on GitHub, the RTL status bar item blinks and shows Update available; click it to update. Update checks now run automatically every 5 hours by default (configurable via the Update Check Interval Hours setting).
User message layout controls — two new settings for Claude Code. Collapsed User Message Lines (default 3, range 3-8) sets how many lines a long user message shows before "Show more". Sticky User Message (off by default) toggles Claude Code's built-in pin-to-top of the latest user message — turning it off lets the message scroll away, freeing screen space to read the agent's reply on shorter screens.
Search in conversation 🔍 — click the 🔍 button in the footer to open a search bar. Finds your query across all user and agent messages, highlights every match in-place with a yellow/orange marker, and lets you jump between matches with ↑/↓ or Enter / Shift+Enter. Case-insensitive. Close with × or Esc.
Plan Documents RTL — Claude Code's Plan/Review documents (displayed in a separate tab) now fully support RTL. Headings, paragraphs, lists, tables, and blockquotes align right for Hebrew/Arabic/Persian content, while code blocks stay LTR.
Codex (ChatGPT) support — Full RTL support for OpenAI Codex: messages, input, title, Previous Messages, nav buttons, YOLO auto-approve, user borders, and neutral text colors
Smart message collapse for Codex — Long user messages are automatically collapsed to ~5 lines with a fade-out effect. Hover to reveal a Show more button; click to expand the full message (and Show less to collapse back). Keeps the chat clean without losing context!
YOLO Mode 💪 (auto-approve with countdown) — toggle YOLO mode to auto-approve all tool calls. A progress bar counts down before each approval, with a NO! button to cancel. Right-click the 💪 button to set the countdown delay and toggle Auto Approve Plans (off by default), so Accept this plan? stays manual unless you enable it. The settings are persistent across sessions.
User message navigation (↑↓) — jump between user messages in Claude Code with cyclic up/down buttons in the input footer
User message accent borders — coral border on user messages in Claude Code and Copilot Chat
Check for updates - Any RTL issues? Click the RTL status bar button to check for updates! The extension also checks automatically on startup and every 5 hours (configurable). When an update is available, the status bar indicator blinks and shows Update available.
Conversation History RTL — session titles in the history dropdown align right for RTL content, with a wider and taller dropdown
Agent Questions RTL support — question text, options, and navigation tabs align right in Plan Mode and other agent prompts
Copilot, Claude Code & Gemini Code Assist!
RTL is automatically applied for all RTL texts in: user messages, agent responses, input box, and even agent questions in Plan Mode. All align right for RTL content:
When Claude Code asks you questions (e.g. in Plan Mode), the popup now fully supports RTL — question text, option labels, descriptions, and navigation tabs all align right for Hebrew/RTL content. The free-text "Other" input also switches to RTL automatically.
Session titles in the chat history dropdown now align right for RTL content. The dropdown is wider and taller, and titles wrap instead of being truncated. The current session title in the header also wraps and grows with content.
Any RTL issues? Click the RTL status bar button to check for updates!
The extension also checks automatically on startup and every 5 hours (configurable via Update Check Interval Hours).
When an update is available, the status bar indicator blinks and shows Update available — click it to update.
Download the latest .vsix file from Releases
In VS Code: Ctrl+Shift+X → ... → "Install from VSIX..."
Select the downloaded file
Restart VS Code
That's it! The extension automatically injects RTL support into Claude Code, Codex (ChatGPT), and Gemini Code Assist - no additional setup needed.
Copilot Chat requires the Custom CSS and JS Loader extension:
is all you need!
| Setting | Default | Description |
|---|---|---|
rtlForVsCodeAgents.autoInject | true | Automatically inject RTL into new Claude Code / Codex / Gemini versions |
rtlForVsCodeAgents.checkIntervalHours | 0 | How often to check (0 = startup only) |
rtlForVsCodeAgents.autoConfigureCustomCss | false | Automatically configure Custom CSS Loader |
rtlForVsCodeAgents.autoCheckUpdates | true | Automatically check for extension updates from GitHub on startup |
rtlForVsCodeAgents.updateCheckIntervalHours | 24 | How often to check for updates (0 = startup only) |
rtlForVsCodeAgents.userMessageBorder | true | Show coral border on user messages. Easier to toggle via right-click on ↑↓ buttons |
rtlForVsCodeAgents.yoloCountdownSeconds | 5 | YOLO mode countdown before auto-approve (0 = instant). Easier to change via right-click on the 💪 button |
| Problem | Solution |
|---|---|
| "[Unsupported]" in title bar | Normal - this is expected when using Custom CSS |
| RTL not working in Claude Code / Codex / Gemini | Run "Check and Inject" command |
| RTL not working in Copilot | Run "Configure Custom CSS Loader", then "Enable Custom CSS and JS" |
| RTL stopped after VS Code update | The extension will notify you automatically — click "Enable Custom CSS" and run "Reload Window" |
For manual installation or troubleshooting, scripts are available:
powershell -ExecutionPolicy Bypass -File .\install.ps1
./install.sh
# Windows
powershell -ExecutionPolicy Bypass -File .\diagnose-rtl.ps1
# Mac/Linux
./diagnose-rtl.sh
RTL: Update available (vX.Y.Z) and blinks its warning background until updated.Update Check Interval Hours; 0 = startup only.Collapsed User Message Lines setting (default 3, range 3-8) controls how many lines a long user message shows before "Show more". Previously fixed at ~5 lines. Default now matches Claude Code's own ~3 lines.Sticky User Message setting (off by default) controls Claude Code's built-in behavior of pinning the latest user message to the top of the conversation. Off frees up screen space to read the agent's reply — helpful on shorter screens. Both settings require a reload (Restart Extension Host) to apply.Auto Approve Plans to the YOLO right-click popup, off by default, so Accept this plan? stays manual unless explicitly enabled<mark> highlighting for every match across user + agent messages. Navigate with ↑/↓ or Enter / Shift+Enter. Case-insensitive, closes on × or Esc. Counter shows position (e.g. 3/12).userMessageBorder setting and instant right-click toggle on ↑↓ navigation buttons — toggle the coral border on user messages on/off without reload (persisted via localStorage)yoloCountdownSeconds) or right-click on the 💪 button for instant changes, including the new Auto Approve Plans toggle**term** (English explanation)) now correctly align RTL. Fixed by injecting RLM anchors and switching from unicode-bidi: plaintext to isolate.unicode-bidi: bidi-override across all chat content (tables, lists, headings, etc.) — not just RTL-marked elementsdata-rtl-applied marker so the bidi-override CSS fix covers them too* { unicode-bidi: bidi-override } rule added in Claude Code v2.1.63 that broke all RTL text renderingvscode_custom_css.imports — old RTL paths are cleaned up automatically on each configureRTL v7.5.1 button in the status bar to open a quick menu with all extension actions — also triggers an update check in the backgroundautoCheckUpdates and updateCheckIntervalHours control automatic checkingThe YOLO Mode feature (auto-approve with countdown) is based on the original idea and JavaScript snippet by Chris Le — see the original gist.
GPL-3.0