A small native macOS menu bar app for switching keyboard input sources with a short Fn / Globe tap. Written in Swift with Apple frameworks and no third-party runtime dependencies.
Public beta: 0.3.0-beta.4. Download the Universal Mac installer · Installation guide · Report a bug
This beta is ad-hoc signed and not notarized by Apple. macOS may require explicit approval on first launch. Accessibility permission may need to be renewed after updates. See the installation guide before downloading.
- Cycle through enabled input sources with Fn; switch on release after a tap shorter than 400 ms.
- Select a source directly from the menu, or enable Option + physical number-row keys 1–9.
- Set the source order and optionally launch at login.
- English, Russian and Kazakh interface, selected automatically through macOS language preferences. Other system languages fall back to English. Input sources themselves are not limited to these languages.
- No accounts, network requests or typed-text logging.
| Edition | Purpose | Statistics |
|---|---|---|
| Kooo | Public beta | No statistics implementation or diagnostic resources in the app |
| Kooo Local | Private ordinary-use comparison | Optional local daily timing records; collection starts only when selected |
The editions have separate bundle identifiers and preferences. Run only one at a time. The local edition is a research build, not an additional requirement for users of Kooo.
Requires macOS 13 or later. Universal builds contain Apple Silicon and Intel code; Intel runtime compatibility is still unverified.
- Download the DMG and open 1 - START HERE - Начните здесь.html for an offline English/Russian/Kazakh guide. Drag Kooo into Applications, then open it.
- If macOS blocks the first launch, close the warning and open System Settings → Privacy & Security → Security → Open Anyway for Kooo. This button is in Settings, not necessarily in the warning. Confirm if requested, then open Kooo again if needed. Apple’s instructions.
- Kooo opens a nonmodal setup window. Its Open Keyboard Settings button takes you to the Globe / Fn action: choose Do Nothing.
- Click Open Accessibility Settings and enable Kooo. Fn switching is enabled by default and starts automatically once permission is recognized. No extra menu enable step is needed. Close setup and try a short Fn tap.
Подробная инструкция на русском · Қазақша орнату нұсқаулығы · English guide
To keep the same source across documents, turn off macOS's automatic document input source switching. Direct shortcuts are optional and take precedence over typing those Option combinations. Registration conflicts appear in the menu. Exit through Quit Kooo in the menu bar menu.
Fn combinations and long holds do not trigger switching. Secure Input, protected fields, remote sessions and complex input methods need separate compatibility testing. A changed indicator alone does not establish that text entry is ready.
Beta builds use ad-hoc signing. Replacing a build can invalidate Accessibility access even when its checkbox remains enabled. Stable signing and upgrade validation remain open release work. Downloaded unsigned/ad-hoc apps may also need explicit macOS approval; do not disable system security protections. See distribution.
GitHub Actions is not configured for this beta. Checks are run locally before publication; contributors should run the commands below.
Use a Swift 6 toolchain with a macOS SDK:
swift test
python3 scripts/check-localizations.py
./scripts/build-app.sh
./scripts/package-dmg.sh
# Private edition; never needed by ordinary users
KOOO_EDITION=local ./scripts/build-app.sh
KOOO_EDITION=local ./scripts/package-dmg.shOutputs are dist/release/Kooo.app and dist/local/Kooo Local.app, with DMGs and SHA-256 files beside them. Both editions default to Universal 2; ARCH=arm64 or ARCH=x86_64 selects one architecture. KOOO_SIGN_ID can supply an existing signing identity; the default is ad-hoc.
No comparative speedup claim is made. Current automated checks cover source cycling, gesture handling and timing calculations; they do not prove first-character readiness. Hands-on testing currently covers an M1 MacBook Air on macOS 26.6.2. Intel and older macOS runtime support remain unverified.
A separate local edition supports ordinary-use observation. It is not distributed as a release asset and its measurement code is excluded from the public executable. See the protocol, verification history and stable-release checklist.
- Install the beta
- Release checklist
- Architecture
- Privacy, security, contributing, code of conduct
- Research
MIT license. Research checkouts and archived experiments are not bundled in the app.
