Features
KeyboardKit supports 61 locales and comes packed with powerful features.

Visit the project site for information, documentation, a getting-started guide and a demo app.
🌐 Localization
KeyboardKit defines 61 keyboard-specific locales that have localized content and assets that can be used to create completely localized system keyboards.
💥 Actions
KeyboardKit comes with a bunch of keyboard-specific action types, like inputs, system keys, actions etc. and standard ways to handle these actions. You can easily add your own logic to the mix.
🎨 Appearance
KeyboardKit comes with an appearance engine that lets you customize images, texts, colors, fonts, shadows, callouts, and more, for any part of the keyboard.
KeyboardKit Pro unlocks a theme engine that lets you style your keyboards with themes. You can create your own themes or use the standard set that come with the engine.
💡 Autocomplete
KeyboardKit can show autocomplete suggestions as the user types. KeyboardKit Pro unlocks local and remote autocomplete providers that work with most keyboard locales.
🗯 Callouts
KeyboardKit can show an input callout when the user presses an input key and a secondary action callout when the user long presses an input key with secondary actions.
🎙️ Dictation
KeyboardKit has tools that let you perform dictation from your custom keyboard extension, as well as in your app.
😊 Emojis
KeyboardKit defines emojis and emoji categories, as well as a lot of additional information about each emoji. It also has an emoji keyboard that mimics the native iOS emoji keyboard.
⌨️ External Keyboards
KeyboardKit lets you detect whether or not an external keyboard is used, so that you can hide or customize your software keyboard if needed.
👋 Feedback
KeyboardKit can give customizable haptic and audio feedback feedback as the user types or when certain actions are triggered.
👆 Gestures
KeyboardKit comes with a gesture engine that supports all native keyboard gestures, and that you can use to tailor the typing experience in your keyboards.
🔤 Input
KeyboardKit comes with standard alphabetic, numeric and symbolic input sets that determine the input keys of a keyboard. KeyboardKit Pro unlocks localized input sets for all 61 locales.
💱 Layout
KeyboardKit comes with a layout engine that determine the full set of keys of a keyboard, that can vary based on device, locale etc. KeyboardKit Pro unlocks localized layouts for all 61 locales.
👁️ Preview Utilities
KeyboardKit has utilites that help you preview keyboard views and components in SwiftUI, which means tighter feedback loops when developing.
➡️ Proxy Extensions
KeyboardKit defines a bunch of extensions to the document proxy, that make it more powerful and capable than it is when you only have the native APIs.
🚏 Routing
KeyboardKit lets you route text to other destinations than the main app, for instance a text field within the keyboard extension itself.
⬅️ RTL
KeyboardKit supports both LTR (left-to-right) and RTL (right-to-left) locales, such as Arabic, Persian, Kurdish Sorani etc.
⚙️ System Settings
KeyboardKit has tools for accessing and linking to an app’s keyboard settings, which makes it easy for a user to enable a keyboard, give it full access etc.
👑 KeyboardKit Pro
If you want to take things to the next level, KeyboardKit Pro unlocks features like localized system keyboards and services, local and remote autocomplete, dictation, emoji skintone support etc.