KeyboardHolder and Keyameleon both switch your Mac’s input method automatically, but they follow a different rule. KeyboardHolder picks the input method from the app or website in front. Keyameleon picks it from the physical keyboard you type on. Choose the rule that matches why you switch.

At a glance

KeyameleonKeyboardHolder
Switches based onThe physical keyboard you type onThe app in front, or the website’s domain in a browser
Typical userOne Mac, keyboards with different printed layoutsOne keyboard, a different input method in each app, often Chinese and English
Price and licenseFree, MITFree (donations welcome), source code not published
Also doesNothing else: one jobRules for Spotlight, Alfred and Raycast, an input method for the browser address bar, an indicator on screen or at the text cursor
macOS26 or later12 or later

When per-app switching is the right fit

You type on one keyboard and change input method with the task: a Chinese input method in WeChat and your notes, English in the terminal and your code editor. That is what KeyboardHolder is for. For each app it either remembers the input method you last used there or always switches to the one you set, and in browsers it can follow rules per domain. It also handles launchers like Spotlight, Alfred and Raycast, and can show which input method is on next to the text cursor.

When per-keyboard switching is the right fit

You have keyboards with different layouts printed on them: a US MacBook and a German external keyboard, or a Dvorak keyboard next to a QWERTY one. Each keyboard should type what its keycaps say, in every app. A per-app rule can’t express that, because the same app is in front whichever keyboard you reach for. Keyameleon switches when you press a key on the other keyboard, whatever app is in front.

Can you use both?

Both change the same system input method, so running both means two rules overwriting each other. KeyboardHolder switches when you change apps or websites, and Keyameleon switches back to the keyboard’s input method on your next key press. Pick one rule: if the app should decide, use KeyboardHolder; if the keyboard should decide, use Keyameleon.

Which one should you use?

  • The app or website decides the input method: KeyboardHolder.
  • The keyboard decides the layout: Keyameleon.

Another per-app option is Input Source Pro. The guide to switching the keyboard layout automatically on Mac compares every method, built-in ones included.