Features
KeyboardKit supports 60 locales, localized system keyboards, custom keys and layouts, autocomplete, audio and haptic feedback etc.

Visit the project site for information, documentation, a getting-started guide and a demo app.
🌐 Locales
KeyboardKit supports 60 keyboard locales, with more being added over time.
💥 Actions
KeyboardKit comes with a bunch of keyboard-specific actions, like characters, emojis, actions etc. You can easily complete or replace the standard action handling with your own logic.
🎨 Appearance
KeyboardKit comes with an appearance engine that lets you change the button images and texts as well as the colors, fonts, shadows, callouts etc. for any part of the keyboard.
💡 Autocomplete
KeyboardKit can present autocomplete suggestions as the user types. KeyboardKit Pro has local and remote autocomplete services that work with most of the supported locales.
🗯 Callouts
KeyboardKit can show an input callout when the user types, as well as a secondary callout when the user long presses a key that has secondary actions.
😊 Emojis
KeyboardKit defines emojis and emoji categories that you can use in your own keyboards. It also has an emoji keyboard that aims to mimic 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 the 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 keyboard-specific gestures that you can use to tailor the typing experience in your own keyboards.
🔤 Input
KeyboardKit comes with standard alphabetic, numeric and symbolic input sets that determine the input keys of your keyboard. You can even create your own.
💱 Keyboard Layouts
KeyboardKit comes with standard keyboard layouts that determine the keys of a keyboard. These layouts can vary based on device, locale etc.
⌨️ Keyboard Utilities
KeyboardKit has a large set of additional, general keyboard-specific utilities, inspectors, observable state etc. that you can use without the rest of the library.
🌐 Locales
KeyboardKit defines keyboard-specific locales that provide localized content and assets, that can be used to create completely localized system keyboards.
➡️ Proxy Extensions
KeyboardKit defines a bunch of UITextDocumentProxy extensions, that make it more powerful and capable than 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, Kurdish Arabic 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 your keyboard to the next level, KeyboardKit Pro is a license-based extension that unlocks pro features like localized system keyboards, input sets, layouts and callout actions, local and remote autocomplete engines, emoji skintone support etc.