Repository navigation
Releases: tlgnkl/perekey
Release list
Perekey 0.2.0
Perekey is now signed with its own certificate, the same for every release.
After this update macOS asks once more for the access Perekey had
(Accessibility, Input Monitoring); later updates keep it. The DMG is still not
signed by Apple, so a download from the browser asks you to confirm the first
launch.
Added
- Voice input. Tap the right Option key, say a phrase, tap again, and the
text lands at the cursor, in any field. Or hold a shortcut such as ⌥Space
while you speak. Russian, English and Ukrainian work in one phrase, and
Perekey can switch the layout to the language you spoke. The right Option key now belongs to
voice, so retyping moves to the left one; the first launch explains this,
and you can pick another key to keep Option as it was. Voice needs a Mac with
Apple Silicon and macOS 15 or newer. On any other Mac Perekey works as
before, and the Voice tab says why. - Speech models on your Mac. Pick Parakeet (Russian, Ukrainian, English and
22 more European languages) or Whisper (99 languages, Belarusian included)
in Settings → Voice, and download it with one button. Nothing is
downloaded before you click, and recognition runs on this Mac: with a local
model voice makes no network requests. - Clean text without a language model. Filler words go, and your
dictionary of names and terms helps the recognizer. Recent dictations stay
for 7 days, so a lost phrase can be pasted again; turn the history off or shorten it in Settings.
Audio of dictations is not kept unless you tick “Keep the audio of
dictations”. - Voice modes. A mode decides what happens to the text after recognition:
as said, a clean draft, a short message, an email, a terminal mode that adds
nothing and never presses Enter, or a translation into English. Perekey
picks the mode by the site, then by the app, and you can write your own. - Dictation shows in full in terminals. In Terminal, iTerm2, Ghostty, Orca
and other terminals the text is typed, not pasted, so Claude Code and
similar tools no longer fold a long dictation into “[Pasted text #1]”. Text
with a line break is still pasted, and typing leaves the pasteboard alone.
Settings → Apps lets you choose paste or typing for any app. - Your own LLM or cloud, only on your terms. Point a mode at OpenAI, Groq,
Ollama, LM Studio or any server with an OpenAI-compatible API. The key stays
in the Keychain, and Perekey asks before the first request to each server.
Cloud is off until you set it up. - Transcripts. A new window lists your transcripts: drag in an audio or
video file to turn it into text with timestamps and speakers, search inside
a transcript, click a phrase to hear it, and export to TXT, Markdown, SRT, VTT
or JSON. A long recording is split, queued, and finished in the background. - Summary and meeting minutes. A finished transcript can become a summary
or meeting minutes, made by a language model on this Mac by default. A cloud
model works only if you pick it and allow sending the transcript, which holds
other people’s words. The text is saved beside the transcript. - Record a call. Record a call from the menu: your microphone is “Me”, the
sound of one app or of the whole Mac is “Others”, and each gets its own
track, so the transcript tells who said what. Perekey asks for “System Audio
Recording” the first time. A recording survives a crash or a change of
headphones. After you stop, the call is transcribed and the audio stays on
this Mac; choose to keep it always, for 30 days, or to delete it after
transcription. Calls and transcripts stay out of Time Machine unless you
turn that on. - Keep the macOS shortcut. If you switch layouts with ⌃Space, ⌘Space or
the 🌐 key, pick “As now in macOS”: Perekey leaves switching to macOS and
only adds Option to retype the word. Onboarding picks it for you when you
have changed that shortcut yourself. - Your own switch shortcut in onboarding. Click the keys of “Switch layout”
and press any shortcut, such as ⌥Space. - For organizations. Configuration profiles can turn voice, cloud
services, model downloads, call recording, call audio and the Time Machine
option off, and cap how long the history is kept. See
docs/managed-preferences.md. - Dictation that was not saved. When a dictation goes into a field Perekey
cannot see (Electron apps, or no Accessibility), the menu now shows it at the
top of «Recent dictations» with the note that it is not saved, and «Copy» and
«Paste again» get the text back after the HUD is gone. Only the latest one is
kept, in memory: it is not written to disk, and it goes away when a newer
dictation is saved, on «Clear history» and when Perekey quits. Password
fields, excluded apps and a switched-off history never show anything. - Search in Settings. A field above the sections: type a word and the
sections without it dim, and the others show how many rows match. Return
goes through the matches and opens each row with a highlight; clicking a
section shows its first match; Escape clears the field. It finds «ё» as
«е», ignores case, and from five letters it forgives an ending («пароль»
finds «паролей»). It searches the names of rows and groups in your language
and in English, not the apps, sites and words you added: those lists have
their own filters. - Menu bar icon. Settings → General → Menu bar: keep the capsule, or show
the layout as plain letters, as the system's own icon, or as a single
Perekey mark. The icon can show always, only when there is news (a pause,
automatic switching off, a call being recorded), or never. Open Perekey
again from Finder or Spotlight and Settings opens, so a hidden icon is
never a dead end. Settings also tells you when the system's input menu and
Perekey show the language twice, or when neither shows it. With voice on
and the icon hidden, you can still record a call and transcribe a file:
Settings → Voice → Recordings and the Transcripts window have the same
buttons, and Finder's “Open With” offers Perekey for audio and video files. - Hyphen. Settings → General → Corrections: a Russian word typed without
its hyphen gets it back: «вопервых» → «во-первых», «чтото» → «что-то»,
«изза» → «из-за», «помоему» → «по-моему». Rules over the dictionary cover
whole classes, not just a list: по- with an adverb («поновому»,
«попрежнему», «поанглийски», «полисьи»), -то, -либо, -нибудь, -таки after
pronouns and adverbs («вообщето», «наконецто», «опятьтаки»), a word typed
twice («тихотихо»), -ка after an imperative («давайка», «нука»), and вице-,
лейб-, унтер-, штаб- («вицемэр»). Only words whose merged spelling is no
word; a rule word that starts with a capital is a name or another language
and stays (only the fixed list fixes «Чтото»). On the Tatoeba sentences
83 % of hyphenated words typed merged come back, up from 78 %. A hyphen typed as a space comes back too
where the two words cannot be right text: «во первых» → «во-первых», «что
нибудь» → «что-нибудь», «кое что» → «кое-что»; «что то», «по моему», «кое с
кем» stay as typed. Off by default; Backspace undoes it and Perekey leaves
that word alone from then on, in both spellings. - Choose what the menu shows. Settings → General → Menu: switch off the
blocks you never use (the mode card, the pause, the update, About and the
rest), pick 0, 3 or 5 rows for recent corrections and dictations, and bring
back what is hidden by default: «Launch at login», «How to Use Perekey» and
the layouts as a list in the menu instead of opening them from the header.
A small copy of the menu next to the list follows each switch and says
whether it fits this screen or will scroll. In the menu itself, a right
click (or Control-click) on a block offers «Hide from Menu» and «Customize
Menu…». The layout header, «Settings…», «Quit», a found update and a
dictation that was not saved always stay. «Reset to Default» puts it all
back.
Changed
- Voice and privacy. Voice is silent where macOS hides the keys (Secure
Input) and in password fields. Everything else about privacy is as before:
typed text is never saved. The network now has two more reasons to wake up,
both yours: the “Download” button of a speech model, and a mode that you
pointed at a cloud server or an LLM. - Words joined by a slash are fixed one by one. In “доходы/расходы”,
“менеджер/CEO” or “приход/расход” automatic switching judges each word on its
own: “ghbdtn/vbh” becomes “привет/мир”, and “привет/цщкдв” becomes
“привет/world”. Addresses and code such as “github.com/user” or
“~/docs” stay as typed. Short parts (“B/C”) and parts with capitals inside
(“UX/UI”) stay as they are too. On Russian – PC, where “/” is Shift+,
the token is judged whole, as before. - Option retypes the part after a slash. In “менеджер/сущ” the first
press gives “менеджер/ceo” and leaves the word before the slash alone.
Press again to put it back, and a third time to retype the whole word.
If the word before the slash is in the wrong layout too, the first press
retypes everything, as before. With phrase retype off, every press
toggles only the part after the slash. - Conflict warnings read your Mac. Perekey warns about Spotlight or the
macOS input switch only when that shortcut really does it on this Mac. - Paste without formatting leaves passwords to your password manager.
If you copied a password (from 1Password, for example), Perekey no longer
puts it back on the clipboard after the paste: the clipboard is left empty,
so your password manager's own clearing still works. Anything else you
copied comes back as before. The plain text Perekey pastes stays on this
Mac and is not sent to your iPhone or iPad. - A bigger download. Voice adds the speech libraries to the app. The
speech models themselves are not in the DMG. - **The menu a...
Perekey 0.1.1
Fixed
- Settings open again. Settings… in the menu did nothing on macOS 14 and
later. It opens the Settings window now, in front of other apps. - No window at launch. Perekey no longer opens Settings by itself when it
starts. - Launch at login can now be turned on. In 0.1.0 the switch stayed grey
with "Works in the installed app only" even in the installed app, because
macOS reports an app that has never been added to Login Items as unknown. - Asking for Accessibility. macOS no longer shows its access alert at
launch and again every second, before Perekey has said why it needs the
access. Only the button in the welcome window asks now. - The welcome window comes back. Once you switch Perekey on in System
Settings, the window returns to the front by itself. Before, it stayed under
System Settings, and a menu bar app has no Dock icon to bring it back. - Starting without access. If Perekey starts without access, or loses it,
it opens the access step instead of doing nothing silently.
Install
Download Perekey-0.1.1.dmg
· macOS 14 or later · Apple Silicon and Intel
- Open the DMG and drag Perekey to Applications.
- Start Perekey from Applications.
- Allow Accessibility and Input Monitoring when Perekey asks: without them it
cannot see keystrokes or replace a word.
Or with Homebrew: brew install --cask tlgnkl/tap/perekey.
Important
This build is not signed by Apple yet, so macOS blocks the first launch.
- macOS 15 and later: open Perekey once, close the warning, then go to
System Settings → Privacy & Security and click Open Anyway. - macOS 14: Control-click Perekey in Applications, choose Open, then
Open again.
Check the download: shasum -a 256 -c Perekey-0.1.1.dmg.sha256 in the
folder with both files. All changes: CHANGELOG.md.
Perekey 0.1.0
The first public preview. The DMG is not signed by Apple yet, so macOS asks you
to confirm the first launch (the release notes say how).
Added
- Retype on a shortcut. Option, or any shortcut you pick, retypes the last
word or the selection in the other layout. Press it again to bring the text
back. - Automatic switching. A language model inside the app checks each word as
you finish it and fixesghbdtn→приветby itself. One Backspace right
after a fix undoes it, and Perekey remembers the word. - Typo fixes. One-key typos such as
прриветare fixed the same way, with
the same undo. Turn it off in Settings → General. - Languages. Russian, English, Ukrainian and Belarusian, in any mix of
installed layouts. Perekey loads the language of each layout you have. - Shortcut presets. Shift, Double Shift, ⌥⇧ and ⌃⇧ like on Windows, ⌘⇧,
two separate keys, Caps Lock, or record your own with conflict warnings. - Rules per app and per website. Auto, manual only or off. Terminals and
IDEs start as manual only, games as off. - Word lists. "Mine", "Learned" (with how often you undid each word) and
"Always fix". Export and import in Settings → Words. - Hint at the caret. Shows each fix with Undo, "Forget" for a learned word
and "Why?" with the reason behind the decision. - Menu bar. A live layout indicator, the latest fixes, pause, and the mode
of the app in front. - Optional statistics. Corrections per day and kind, with no words stored.
- Automation.
perekey://links and AppleScript commands to pause, resume
and change modes, for Raycast, Alfred and Shortcuts. - Extras. Change case, transliterate, paste without formatting, sounds.
- Updates. Sparkle checks for a new version at most once a day. Turn it
off in Settings → General; organizations can forbid it with a profile.
Privacy
- Typed text is never saved. Password fields, Secure Input, password-like and
captcha-like strings are left alone. - The only network request is the update check.
Install
Download Perekey-0.1.0.dmg
· macOS 14 or later · Apple Silicon and Intel
- Open the DMG and drag Perekey to Applications.
- Start Perekey from Applications.
- Allow Accessibility and Input Monitoring when Perekey asks: without them it
cannot see keystrokes or replace a word.
Important
This build is not signed by Apple yet, so macOS blocks the first launch.
- macOS 15 and later: open Perekey once, close the warning, then go to
System Settings → Privacy & Security and click Open Anyway. - macOS 14: Control-click Perekey in Applications, choose Open, then
Open again.
Check the download: shasum -a 256 -c Perekey-0.1.0.dmg.sha256 in the
folder with both files. All changes: CHANGELOG.md.