Follow all three steps in order. Each step is required for the app to work fully.
macOS blocks apps that aren't signed by a registered Apple developer. Script Tool is safe — use the below steps methods to allow it:
The inline Sanskrit IME intercepts keystrokes system-wide. macOS requires explicit Accessibility permission for this.
Without Accessibility permission the IME shortcut will do nothing. The offline converter and quick panel work without it.
Keystrokes intercepted system-wide. Text inserted directly, no copy-paste.
A slim indicator bar appears at the top of your screen showing your active scheme and script (e.g. ITRANS ▶ Active). Click into any text field in any app.
Start typing — e.g. namaskaara. The indicator bar shows namaskaara → नमस्कार live as you type. Your keystrokes are intercepted; nothing appears in the app yet.
Press Space — नमस्कार is inserted directly into the text field. Press Enter to insert with a newline. Continue typing the next word immediately.
Press Alt+Shift+O to cycle through all 7 scripts. Press Alt+Shift+1/2/3 to switch between ITRANS, Harvard-Kyoto, and SLP1 — without leaving your app.
Press Esc to cancel the current word and exit IME mode. Or press Alt+Shift+M again to toggle it off.
Side-by-side Indic script + IAST output. Copy with one click.
Press the shortcut from any app, or click the menu bar icon and choose Open Script Tool.
Type in or Paste your input which is auto-detected and select an output script (Devanagari, Kannada, Telugu, Tamil, Bengali, Malayalam, or IAST) using the buttons. Click Copy on whichever output you need.
Floating overlay — type once, paste directly into the active app.
A small floating panel appears over whatever you're working in. The app behind it stays focused.
Type your word phonetically. You'll see the Devanagari preview instantly below the input field.
Press Enter or click Paste ↵. The converted text is pasted directly into the app that was active behind the panel. Press Esc to close without pasting.
Global — work from any app, always active
While IME is active