Keyli
GitHub 0

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.

macOS 14+ · 52 themes · 4 layouts · 0 downloads · offline

Try it here

click the keys
Untitled
Thursday standup

Shift latches for one key, like in Keyli. Press keys on your own keyboard and they light up here too.

How it works

Typing
  1. 1
    Put your cursor somewhereA note, a search field, a chat box, your editor. Any app that takes text.
  2. 2
    Open Keyli from the menu barClick the icon to show the floating keyboard. Click again to hide it.
  3. 3
    Click keys and keep goingEach key lands in that app. Its window stays in front and keeps the cursor.

The real app

Ember Graphite theme
The Keyli floating keyboard in the Ember Graphite theme typing into a TextEdit note, with the full Mac layout, function row and arrow keys

Install

Runs on macOS 14 and later, on Apple Silicon and Intel, without an account. 0 downloads

Terminal — zsh
$curl -fsSL https://keyli.kiron.dev/install.sh | bash

The script downloads the latest release, copies Keyli into Applications and skips the install if you're already up to date.

  1. 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.
  2. The welcome window walks you through Accessibility, which Keyli needs to type for you.
  3. Click the keyboard icon in the menu bar to show or hide the floating 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.
Floating keyboard in the Oxblood theme with its options menu open, showing Layout, Theme and Opacity submenus, Keep on Top and Highlight Physical Keys

Typing

The app you're using keeps its focus.

Never steals focusThe keyboard is a non-activating panel. Clicking a key doesn't bring Keyli forward, so your text field keeps the cursor.
Characters and keysLetters and symbols go in as text. Delete, Return, Tab, arrows and shortcuts go in as real key presses.
Hold to repeatHold a key and it repeats at your key repeat speed from System Settings › Keyboard, with the modifiers you had on.
Stops when unsureKeyli refuses to type into password fields, when there's no target app, or without permission, and shows you why.

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.

ANSIUS Standard. Full Mac keyboard with function row and arrow keys.
ISOEuropean. Tall Return and an extra key next to left Shift.
JISJapanese. Eisu and Kana beside the space bar, and the Ro key.
Compact60%. No function row or arrows, in the smallest window.

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.

Off by defaultTurn on Highlight keys pressed on the physical keyboard in Settings › Keyboard. It needs Input Monitoring.
Only while visibleHighlighting runs only while a Keyli keyboard is on screen, and stops as soon as you hide it.
Nothing recordedKeyli lights a key and lets it go. What you type is never logged, stored or sent anywhere.
Good for teachingRecording a screencast or showing shortcuts in a meeting? Viewers see each key as you press it.

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.
Three Keyli keyboards in the Kiln, Riso Print and Blacklight themes
Raised · 16
Ember Graphite
Dark Mechanical
Midnight Neon
Classic Retro
Ocean Breeze
Forest Moss
Sunset Glow
Mocha Latte
Solar Dark
Solar Light
Vampire Night
Carbon Fiber
Matcha
Bubblegum
Kiln
Oxblood
Chiclet · 12
macOS Native
Minimalist Light
Graphite
Silver Aluminum
Space Black
Sakura Blossom
Lavender Haze
Mint Fresh
Polar Night
Rose Gold
Olive Grove
Dune
Flat · 7
Cyberpunk 2077
Paper White
Terminal Green
Amber CRT
High Contrast
Concrete
Riso Print
Glass · 4
Frost Glass
Deep Ocean Glass
Aurora Glass
Blacklight
Layered Flat · 13
Basalt
Porcelain
Ink & Paper
Confetti Pop
Glacier
Cotton Candy
Quicksilver
Night Breeze
Orchid Leaf
Citrus Tide
Wisteria Stream
Peach Sorbet
Mustard

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.
Theme Studio with the theme list, a live keyboard preview, and color, key and surface controls

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.
Keyli Settings on the Themes page with a grid of built-in themes

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.

No account, no trackingKeyli has no sign-in, analytics or telemetry. It works with your Wi-Fi off.
Nothing recordedKeys you click or press are never logged or stored. Highlighting runs only while the keyboard is visible.
Secure fields stay off-limitsWhen macOS turns on Secure Input for a password field, Keyli refuses to type and tells you.
Plain filesSettings live in your user defaults and custom themes are JSON files you can read, copy or delete.

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