A community-driven registry for the Claude Code ecosystem. Not affiliated with Anthropic.
“Smart RTL patch for Hebrew/Arabic in Claude Desktop on macOS. Creates a separate Claude-RTL.app — original untouched. Ad-hoc re-signed, verified clean.”
Are you the author? Sign in to claim
Smart Hebrew/Arabic RTL support for Claude Desktop on macOS
Adds automatic right-to-left (RTL) text support to Claude Desktop on macOS. Hebrew and Arabic text is detected in real-time and aligned properly — both in the chat input and in Claude's responses — while code blocks stay left-to-right.
Based on claude-desktop-rtl-patch by @shraga100, which provides the same functionality for Windows. The RTL detection JavaScript is from that project; this repository adapts the patching mechanism for macOS (different app structure, Electron fuses, code signing).
| Without patch | With patch |
|---|---|
| Hebrew/Arabic text left-aligned, hard to read | Hebrew/Arabic text properly right-aligned |
שלום עולם / مرحبا بالعالم stuck to the left | שלום עולם / مرحبا بالعالم aligned to the right |
/Applications/Claude.appnpx which runs @electron/asar and @electron/fuses
brew install node# Clone the repo
git clone https://github.com/soguy/claude-desktop-rtl-mac.git
cd claude-desktop-rtl-mac
# Install the patch
./patch.sh --install
Downloaded the ZIP instead of cloning? You may need to make the script executable first:
chmod +x patch.sh
That's it. A patched copy is created at ~/Applications/Claude-RTL.app (your home folder, not /Applications/) and launches automatically.
# Install (or update after Claude updates)
./patch.sh --install
# Remove the patched copy
./patch.sh --uninstall
# Check status
./patch.sh --status
# Interactive menu
./patch.sh
# Show help
./patch.sh --help
The patcher performs these steps:
/Applications/Claude.app → ~/Applications/Claude-RTL.appapp.asar archive.vite/build/*.js renderer filesapp.asar archiveEnableEmbeddedAsarIntegrityValidation Electron fuse — this is required because the modified archive has a different hash, and Electron would crash on startup without this stepThe original /Applications/Claude.app is never touched.
Unlike the Windows version which patches the original installation directly, the macOS version creates a separate copy. This is safer because:
~/Applications/ is user-writable, so the script never needs elevated privileges/Applications/Claude.app is never touched; you can always fall back to it/Applications/Claude.app is owned by root and protected by App Management permissions; modifying it would require sudo and bypassing macOS security featuresWhen Claude Desktop auto-updates, it updates the original at /Applications/Claude.app. Your patched copy at ~/Applications/Claude-RTL.app is a separate, independent app — it won't receive auto-updates. After Claude updates, re-run the patcher to create a fresh patched copy from the new version:
./patch.sh --install
This creates a fresh patched copy from the updated original.
Tip: Keep the original Claude.app around for updates. Let it update itself normally, then re-run the patcher. The patched copy may show update prompts, but updates won't apply correctly to it — always update via the original app.
./patch.sh --uninstall
This removes ~/Applications/Claude-RTL.app. The original Claude.app is unaffected.
The ASAR integrity fuse was not properly disabled. Re-run ./patch.sh --install — it handles this automatically. If the problem persists, check that npx works: npx --yes @electron/fuses --help.
Install Node.js: brew install node or download from nodejs.org.
Claude-RTL.app from ~/Applications/, not the original Claude.appשלום עולם[Claude RTL] log messagesOn first launch, macOS will show a dialog asking for your password to allow access to "Claude Safe Storage" in your keychain. This is safe to approve. Claude Desktop uses Electron's safeStorage API to encrypt local data (like your login session). Since the patched copy has a different code signature than the original, macOS asks you to re-authorize access. This is a one-time prompt — macOS remembers the approval for future launches.
Since the app is ad-hoc signed (not signed by Anthropic), macOS may show a warning on first launch. Right-click → Open to bypass it, or go to System Settings → Privacy & Security → Open Anyway.
The patched Claude-RTL.app has a custom icon with a visible "RTL" badge in the bottom-right corner, making it easy to distinguish from the original Claude.app in the Dock and Finder. The badge uses a white background with a dark border, so it's visible on both light and dark wallpapers/themes.
claude-desktop-rtl-mac/
├── patch.sh # Main patcher script
├── rtl-payload.js # RTL detection JS (injected into Claude)
├── icon.icns # RTL-badged app icon
├── README.md
└── LICENSE
MIT — see LICENSE.
The RTL detection JavaScript (rtl-payload.js) is from claude-desktop-rtl-patch, which is also MIT licensed.
Give Claude Code memory that evolves with your codebase via hooks and LLM-compiled knowledge
Security hooks with SSRF protection, MCP compression, and OpenTelemetry tracing
Context management with hooks for state via ledgers, MCP without context pollution
An LLM council that reviews your coding agent's every move for quality assurance