A lightweight macOS Tahoe menu bar launcher/supervisor for Kanata.
This app helps run and manage Kanata in a user session without relying on Automator or Terminal windows.
This project was built for personal daily use after upgrading to macOS Tahoe. Before Tahoe, Kanata was stable for me as a launchd background daemon on Sequoia.
After the Tahoe upgrade, that setup stopped working reliably because background daemon-style launches appeared unable to maintain the input-device permission model Kanata depends on.
I tested multiple startup patterns:
- LaunchDaemon (old Sequoia setup)
- Previously worked for me.
- On Tahoe, no longer reliable for input-device permission access.
- LaunchAgent + Terminal login script
- Could start Kanata at login.
- Ran in a visible Terminal session.
- Logout/restart/shutdown prompted to confirm stopping Terminal.
- Detaching/exiting Terminal eventually caused Kanata permission loss, so this was not stable long-term.
- Automator app wrapper
- Solved permission stability issues.
- Removed visible Terminal session and shutdown prompts.
- But kept the persistent animated gear icon in the menu bar.
- Attempts to make it a hidden/background-only UI process caused permission loss again.
KanataManager is the practical compromise that worked for me: native menu bar app identity, stable startup behavior, and no Terminal/Automator UX drawbacks.
- This is a personal utility project that solved my Tahoe workflow problems.
- It is being shared publicly to help others facing similar Kanata-on-Tahoe issues.
- There is no broad feature roadmap.
- Future updates are likely only for compatibility adjustments with newer Tahoe/macOS changes.
- Works as a native menu bar app (
MenuBarExtra) - Start / Stop / Restart Kanata
- Optional launch-at-login for the manager app
- Custom Kanata path/config/arguments
- Reads sudo password from Keychain item you configure
- This project does not include or bundle Kanata binaries.
- You must install Kanata separately (for example via Homebrew).
- You must have Karabiner virtual HID drivers already installed and working.
App Sandboxis intentionally disabled in this project and is required for this launcher behavior.- This project is independent from and is not part of or associated with the official Kanata project in anyway.
- macOS Tahoe (26.x) or later
- Xcode 26.x (for building from source)
- Kanata installed locally
- Karabiner-DriverKit VirtualHID driver stack installed, allowed, and working
- Clone this repo.
- Confirm Karabiner virtual HID drivers are installed and functioning.
- Open
KanataManager.xcodeproj. - Build and run the app.
- In the control panel, set:
- Kanata binary path (example:
/opt/homebrew/bin/kanata) - Kanata config path (example:
~/.config/kanata/kanata.kbd) - Keychain service/account used for sudo password lookup
- Kanata binary path (example:
- Grant macOS permissions as prompted (Input Monitoring / Accessibility as needed).
- The app reads a password from your macOS Keychain and pipes it to
sudofor start/stop operations. - Review the source and adapt to your own security preferences.
- Prefer a narrowly scoped local setup and trusted machine usage.
- This app is fully local and does not send telemetry or communicate with remote services.
- It only executes local system commands needed to manage Kanata (
sudo,security,pgrep,pkill).
- This repository: MIT (see
LICENSE) - Third-party notice for Kanata / LGPL: see
THIRD_PARTY_NOTICES.md

