Welcome to Keyli focus-safe
An on-screen keyboard in your menu bar. Click a key and it types into the app you're using, which keeps its focus. It works offline and needs no account.
A floating keyboard for your Mac. Click keys to type into Notes, Safari, your editor or any other app, without switching away from it.
Try it here
click the keysShift latches for one key, like in Keyli. Press keys on your own keyboard and they light up here too.
How it works
Typing- 1Put your cursor somewhereA note, a search field, a chat box, your editor. Any app that takes text.
- 2Open Keyli from the menu barClick the icon to show the floating keyboard. Click again to hide it.
- 3Click keys and keep goingEach key lands in that app. Its window stays in front and keeps the cursor.
The real app
Ember Graphite theme
Install
Runs on macOS 14 and later, on Apple Silicon and Intel, without an account. 0 downloads
curl -fsSL https://keyli.kiron.dev/install.sh | bashThe script downloads the latest release, copies Keyli into Applications and skips the install if you're already up to date.
- Open Keyli from Spotlight or Applications. If macOS says it can't verify the app, go to System Settings › Privacy & Security and click Open Anyway.
- The welcome window walks you through Accessibility, which Keyli needs to type for you.
- Click the keyboard icon in the menu bar to show or hide the floating keyboard.
- Download
Keyli-v<version>.dmgfrom Releases, open it and drag Keyli into Applications. - Keyli isn't notarized by Apple. The first time you open it, go to System Settings › Privacy & Security and click Open Anyway.
- Allow Accessibility when asked, then click the menu bar icon to bring up the keyboard.
Floating keyboard
A real Mac keyboard that floats above your work.
One click in the menu bar.
Click the Keyli icon to show the keyboard, and click it again to hide it. If the keyboard is hidden behind other windows, the click brings it to the front.
- Pin it to keep it above other windows, or let it sit behind them.
- Drag any edge or corner to resize. Keys keep their proportions and never stretch.
- Set the opacity, layout and theme from the … menu on the keyboard itself.
- The footer shows the app you're typing into and your current input source.
Typing
The app you're using keeps its focus.
If a Keyli window is in front when you press a key, Keyli switches back to the last app you used and types there. If an app misses keys, raise Settings › Typing › Key press duration.
Modifiers & fn
Shortcuts without holding four keys with one mouse.
Tap once, or lock it on.
Tap Shift, Control, Option or Command and it stays on for the next key. Tap it again to keep it on until you turn it off.
Labels follow along: hold Shift or Option and the keyboard shows the characters you'll get.
- Tap fn to do what your Globe key does, such as switching input source or opening Emoji & Symbols.
- Hold fn to latch it for F1–F12, Home, End, Page Up and Page Down.
- Turn off Release modifier keys after the next key in Settings › Typing to keep them on.
Layouts
Four physical shapes. Labels come from your input source.
Key labels follow your active input source, so French, German, Dvorak or any other layout shows the right characters, including Shift and Option. Change the input source in Settings › Keyboard and the keyboard updates live.
Key highlighting
See your physical keyboard on screen.
Themes
52 built in, from macOS-native to retro terminals and glass.
Pick a look. Change it any time.
A theme changes how keys look, never what they do. Choose one from Settings › Themes or the … menu on the keyboard.
- Five keycap styles: Raised, Flat, Glass, Chiclet and Layered Flat.
- macOS Native follows your system light and dark appearance.
- The default is Ember Graphite: graphite keys with an amber accent.
Theme Studio
Make a theme your own.
Duplicate, tweak, share.
Built-in themes are read-only. Duplicate one and change its colors, keycap style, font, spacing, borders and background, with a live keyboard preview as you go.
- Rename, delete, import and export themes as JSON files.
- Preview keys in Theme Studio never type into other apps.
- Your themes live in
~/Library/Application Support/Keyli/Themes.
Settings
Keyboard, typing, themes, startup and permissions in one window.
Everything in one window.
Open Settings… from the keyboard's … menu or by opening Keyli again from Finder.
- Keyboard: show, keep on top, opacity, layout, input source, key highlighting.
- Typing: modifier release, key repeat, key sound, key press duration.
- Themes: every built-in and custom theme, and Theme Studio.
- General: window style, open at login, menu bar icon, reset.
- Permissions: live status, with Allow, Repair and Relaunch in place.
Permissions
Viewing the keyboard needs none. Typing needs one.
- AccessibilityTyping, shortcuts, function and media keysRequired to type
- Input MonitoringHighlighting keys you press on the physical keyboardOptional
- Open at LoginStarting Keyli when you log inOptional
- Viewing the keyboardWorks with no permission at allNone
Settings › Permissions shows each one live: Waiting, Denied, Needs Repair, Relaunch Needed or Needs Approval, and refreshes when you come back from System Settings. Builds are signed with a stable identity, so permissions survive updates.
Special keys
The function row works like a Mac.
- F1Brightness down
- F2Brightness up
- F3Mission Control
- F4Spotlight
- F7Previous
- F8Play or pause
- F9Next
- F10Mute
- F11Volume down
- F12Volume up
- Lock screen
With fn held
- fnYour Globe key action, such as switching input source or opening Emoji & Symbols
- fnF1…F12Standard F1–F12
- fn←→Home, End
- fn↑↓Page Up, Page Down
- fndeleteForward Delete
- fnreturnEnter
Brightness, volume, media and Mission Control keys work even when no other app is focused.
Privacy
What Keyli stores, and what it never sees.
FAQ
Why does Keyli need Accessibility?
macOS only lets apps send key presses to other apps with Accessibility permission. Without it you can still view the keyboard, but clicking keys won't type.
Clicking keys doesn't type anything.
Open Settings › Permissions. If Accessibility shows Needs Repair or Relaunch Needed, use the button next to it. Also check that a text field in another app has the cursor.
Some app misses keys or types them twice.
Raise Settings › Typing › Key press duration. Some apps, remote desktops and games read keys in their own way and may not work at all.
Does it work with input methods like Chinese or Japanese?
Keyli sends key presses, so the input method in the target app receives them as usual. The keyboard labels show the base layout of the input source, not composed characters.
macOS says the app can't be verified.
Go to System Settings › Privacy & Security and click Open Anyway. You only need to do this once.
I hid the menu bar icon. How do I get it back?
Open Keyli again from Finder or Spotlight to reach the keyboard and settings, then turn Show Keyli in menu bar back on in General.
Build from source
Swift, SwiftUI and AppKit. No dependencies. Swift 5.9+, macOS 14+.
# clone, build and install to ~/Applications
git clone https://github.com/kiron0/keyli
cd keyli
npm run install
npm run open