Runtime RTL for Claude Desktop + Codex on macOS.
Official apps. Signatures intact. No copy, no patch, no re-sign.
עברית · Codex guide · OSS application · Ownership
| App | Signature | Method | Status |
|---|---|---|---|
| Claude Desktop macOS | Anthropic Q6L2SF6YDW |
Transient Developer-debugger runtime inject | ✅ Supported |
| Codex Desktop macOS | OpenAI 2DC432GLL2 |
Opt‑in relaunch + CDP runtime inject | ✅ Supported |
| Hermes Desktop macOS | ad‑hoc | One‑command relaunch + CDP runtime inject | ✅ Supported |
git clone https://github.com/Menachem138/rtl-forge.git
cd rtl-forge
npm test
npm run buildnpm run official:launch
npm run official:watch # auto‑re‑apply after relaunch / updateGrant Accessibility once: System Settings → Privacy & Security → Accessibility.
npm run codex:applyRelauches Codex with a local debug port for this session. Signature stays OpenAI's.
- Verify the target app is signed by its official Team ID
- Open a temporary local debug connection (Claude → built‑in inspector · Codex → Chromium CDP)
- Inject
payload-v2— a layout‑only RTL engine - Close the connection (Claude) or leave the port local (Codex)
| Principle | What it means |
|---|---|
CSS unicode‑bidi: plaintext |
Primary prose direction — each block self‑determines |
Selective dir |
Tables / lists / blockquotes only |
| No text‑node mutation | Copy‑paste & Ctrl‑F return byte‑for‑byte truth |
| No U+200E / U+200F | Zero bidi control‑character injection |
| Composers + xterm safe | Hard no‑touch for ProseMirror editors & Claude Code terminals |
Contract: payload‑v2/CONTRACT.md
- Verify Team ID before injection
- Loop‑back only (
127.0.0.1) - No chat‑content exfiltration
- No permanent persistence on disk
- Inspector closed immediately after Claude inject; Codex debug port stays local for the session
→ SECURITY.md · docs/IP_AND_PROTECTION.md
assets/ banner + logo + social preview
official‑runtime/ macOS launchers, ensure, watchdog, generic Electron CDP injector
payload‑v2/ original layout‑only RTL engine
manager/ menu‑bar helpers + adapter inventory
docs/ guides, IP notes, OSS draft
npm test
npm run build
npm run official:ensure # Claude force re‑apply
npm run codex:apply # Codex relaunch + injectThis project was submitted for the Claude for Open Source program. See the application draft.


