keep writing when the active keyboard source is wrong. the text stays exactly where you typed it.
typed in the wrong layout? don't retype it.
double shift turns ghbdtn into привет right where you typed it. language relay repairs the last word by default, keeps phrase repair explicit, switches the input source and leaves the cursor ready.
double shift or clean option · last word by default · one window contract · v2.5.3
npx github:aPoWall/language-relay install
this browser demo uses relay or ⌘↩. the installed app uses clean double shift or option.
ghbdtn? vbh becomes привет? мир. one gesture repairs the tail of the thought.
double shift or a clean option tap converts the latest word without opening a window. phrase repair is a visible setting.
the app verifies the write, switches the layout and leaves the insertion point ready for the next word.
small surface. explicit behavior. a contract for agents.
the last word is repaired by default. phrase repair is a visible setting in the panel.
two system gestures, both optional, both without opening a window. ⌥⌘L opens and closes the panel from any app and the combination is chosen in the panel. a repair that dies mid-run releases its own lock after five seconds, so the gestures keep answering.
preserve, sentence, upper or lower. short sound cues 75–200 ms with four volume levels.
the voxel character stands in the panel header at 40 pt, follows the cursor and mirrors its arrows on click; the flat mark keeps the menu bar, where the item is drawn as mark, mark + value, value or hidden. reduce motion keeps the character still.
small surface. explicit behavior.
the menu bar shows the active alphabet in all three visible modes: a filled mark for Russian, an outline for English, plus RU/EN in value modes. every setting names the exact part of the correction it changes, the bar row prints the item as the bar draws it, and the bridge row prints the state of the gesture bridge with one press that restarts it.
a keyboard tool with a machine-readable contract.
agents get deterministic conversion, readiness checks, stable capabilities and useful exit status. conversion returns the requested text; diagnostic receipts contain no typed content.
$ language-relay convert ghbdtn
{"sourceID":"…US","targetID":"…RussianWin","text":"привет"}
$ language-relay doctor
{"accessibilityTrusted":true,"ready":true}
$ language-relay capabilities
{"scopes":["word","phrase"],"localOnly":true}
eight short signals. one clear receipt.
one command. ready for the next word.
npx github:aPoWall/language-relay install- run the command above. it builds the app from source and installs it into ~/Applications with a launch agent.
- approve accessibility access when macos asks. the app needs it to repair the focused field.
- type ghbdtn anywhere and tap double shift. the menu bar mark shows the active alphabet.
what's new
release-notes.txt · five latest entries load here
your text stays on your mac.
language relay runs as a small native menu bar app. it needs accessibility access to repair the focused field. there is no account, advertising surface, analytics sdk or cloud processing path.
current release: u.s. ⇄ russian–pc. the engine uses explicit verified layout pairs, so every future language pair can ship with its own deterministic map and tests.