autokbisw (automatic keyboard input source switcher) was one of the first tools to switch the Mac’s layout per keyboard, and later apps such as Keychange credit it as their inspiration. It is a command-line program that runs as a background service. Keyameleon is a menu bar app. Both switch the input source when you type on another keyboard; the difference is how you tell them which layout belongs to which keyboard.
At a glance
| Keyameleon | autokbisw | |
|---|---|---|
| Switches based on | The keyboard you type on | The keyboard you type on |
| How a keyboard gets its layout | You assign one in setup or Settings | It remembers the last layout you used on that keyboard |
| Interface | Menu bar app with setup and Settings windows | Background service, managed from the command line |
| Install | Signed, notarized DMG or brew install --cask mastro993/tap/keyameleon | brew install ohueter/tap/autokbisw, built from source, which needs the full Xcode app |
| Price and license | Free, MIT | Free, Apache 2.0 |
| First key on a newly used keyboard | Uses the previous input source | Uses the previous input source |
| macOS | 26 or later | No minimum stated |
Assigned layouts vs learned layouts
autokbisw has no settings. Type on a keyboard, pick its layout from the Input menu or with the 🌐 key, and autokbisw remembers it. The next time you type on that keyboard, it brings that layout back. Setup is just using your keyboards for a minute.
The flip side is that every manual change teaches it something. Switch to another layout for one word, and that becomes the keyboard’s layout until you switch back.
Keyameleon asks once, explicitly. Guided setup lists your keyboards and you pick an input source for each. A manual change lasts until your next key press, then the keyboard’s own layout comes back. If an assigned layout is removed from macOS, Keyameleon keeps the assignment and shows a warning instead of picking a substitute.
Managing keyboards
autokbisw identifies keyboards by product name and hardware ID, and optionally by the USB port they are plugged into. Devices only appear after you type on them while it runs. To stop a device from switching, for example a mouse that reports itself as a keyboard, you list devices with autokbisw list and turn one off with autokbisw disable.
Keyameleon lists every keyboard it finds in its Settings window, where you can rename one or ignore a device that isn’t a keyboard. Its menu bar menu shows each assigned keyboard, which one is active, and any problem that needs attention, such as missing Input Monitoring access.
Upkeep
autokbisw is stable and small, and its repository last changed in February 2025. Because Homebrew compiles it on your Mac, installing and upgrading it needs the full Xcode app, not just the Command Line Tools.
Keyameleon ships as a signed and notarized app and updates itself: it checks at most once a day and installs an update only when you approve it.
Which one should you use?
- You live in the terminal, already have Xcode, or run a macOS older than 26: autokbisw.
- You want a layout per keyboard that stays put no matter what you switch to by hand, with a settings window and visible status: Keyameleon.
On macOS 14 or 15 and want an app rather than a service? See Keyameleon vs Keychange.