Swiftpack.co - KeyboardKit/KeyboardKitPro as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by KeyboardKit.
KeyboardKit/KeyboardKitPro 7.2.0
KeyboardKit Pro extends KeyboardKit with pro features.
⭐️ 49
🕓 7 hours ago
iOS macOS watchOS tvOS
.package(url: "https://github.com/KeyboardKit/KeyboardKitPro.git", from: "7.2.0")

KeyboardKit Logo

Version Swift 5.6 Swift UI MIT License Twitter: @@getkeyboardkit Mastodon: @keyboardkit@techhub.social

About KeyboardKit Pro

KeyboardKit is a Swift library that helps you build custom keyboards with Swift and SwiftUI. It extends the native keyboard APIs and provides you with a lot more functionality than is otherwise available.

The end result can look something like this...or entirely different:

KeyboardKit Pro extends KeyboardKit with pro features, such as localized input sets, keyboard layouts and callout actions, which lets you create fully localized system keyboards for all keyboard locales with a single line of code.

KeyboardKit Pro also unlocks a local and a remote autocomplete providers, emoji skintone support, the possibility to read all the text from the text document proxy, additional views etc.

KeyboardKit Pro License

KeyboardKit Pro requires a commercial license. Licenses can be purchased from the website or from Gumroad.

Supported Platforms

KeyboardKit supports iOS 14, macOS 11, tvOS 14 and watchOS 7.

However, the distribution is iOS only for non-enterprise licenses!

Please reach out if you need to use KeyboardKit Pro on multiple platforms.


KeyboardKit Pro can be installed with the Swift Package Manager:


Since KeyboardKit Pro installs as a binary, it only has to be added to the main app target.

Getting started

The online documentation has a getting-started guide that will help you get started with the library.


The online documentation has articles, code examples etc. that let you overview the various parts of the library and understand how they all connect to each other.

The online documentation is currently iOS-specific, which means that some parts will not be available if you run KeyboardKit Pro on other platforms.


KeyboardKit Pro is localized in 60 keyboard-specific locales (read more):

🇦🇱 🇦🇪 🇦🇲 🇧🇾 🇧🇬 🇦🇩 🏳️ 🇭🇷 🇨🇿 🇩🇰

🇳🇱 🇧🇪 🇺🇸 🇬🇧 🇺🇸 🇪🇪 🇫🇴 🇵🇭 🇫🇮 🇫🇷

🇧🇪 🇨🇭 🇬🇪 🇩🇪 🇦🇹 🇨🇭 🇬🇷 🇺🇸 🇮🇱 🇭🇺

🇮🇸 🇮🇩 🇮🇪 🇮🇹 🇹🇯 🇹🇯 🇹🇯 🇱🇻 🇱🇹 🇲🇰

🇲🇾 🇲🇹 🇲🇳 🇳🇴 🇮🇷 🇵🇱 🇵🇹 🇧🇷 🇷🇴 🇷🇺

🇷🇸 🇷🇸 🇸🇰 🇸🇮 🇪🇸 🇰🇪 🇸🇪 🇹🇷 🇺🇦 🇺🇿

KeyboardKit unlocks localized input sets, keyboard layouts and callout actions for all locales that your license contains.


Besides the core features, KeyboardKit Pro extends KeyboardKit with a bunch of pro features:

  • 🎨 Appearance - KeyboardKit Pro unlocks a theme engine with many pre-defined themes.
  • 💡 Autocomplete - KeyboardKit Pro unlocks a local and a remote autocomplete provider.
  • 🗯 Callouts - KeyboardKit Pro unlocks locale-specific callout actions for all locales above.
  • 😊 Emojis - KeyboardKit Pro unlocks skin tone variants and secondary callout actions for emojis.
  • 🔤 Input - KeyboardKit Pro unlocks locale-specific input sets for all locales above.
  • 💱 Layout - KeyboardKit Pro unlocks locale-specific keyboard layouts for all locales above.
  • ➡️ Proxy - KeyboardKit Pro unlocks UITextDocumentProxy extensions for reading all text from the proxy.
  • 🖼 Views - KeyboardKit Pro unlocks additonal views that simplify building great keyboards.

You find KeyboardKit Pro-specific information at the end of these articles.

Demo Application

The main project repository has a Demo folder with a demo apps that lets you try out different KeyboardKit features.

The demo app has 5 keyboard extensions:

  • English has a SystemKeyboard with the standard, English locale.
  • Unicode has a SystemKeyboard with unicode-based input keys.
  • Custom has a SystemKeyboard with custom keys, layout and appearance.
  • Pro uses KeyboardKit Pro and has a SystemKeyboard with all LRT locales.
  • ProRtl uses KeyboardKit Pro and has a SystemKeyboard with all RTL locales.

Just open and run the demo app, then enable the keyboards you want to try under System Settings. Note that you need to enable full access to try some features, like audio and haptic feedback.


KeyboardKit is trusted and proudly sponsored by the following companies:

Oribi Icon phonetoroam Icon Vitalis Icon LetterKey Icon Anomaly Software Icon Milo Creative Icon

KeyboardKit is open-source and completely free, but you can sponsor this project on GitHub Sponsors, upgrade to KeyboardKit Pro or get in touch for paid support.


Feel free to reach out if you have questions or if you want to contribute in any way:


KeyboardKit Pro is closed source. See the LICENSE file for more info.


Stars: 49
Last commit: 10 hours ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

10 hours ago

This version focuses on making it easier to style keyboards.

This version adds a theme engine to KeyboardKit Pro. The new KeyboardThemeAppearance can be used with the new KeyboardTheme to style keyboards with themes, which is a lot easier than defining custom appearances.

This version comes with three themes - .cottonCandy, .neonNights and .tron. You can use them in your own keyboads, or tweak them to create your own visual styles. More themes are coming in future versions.

Due to a bug found in the new autocomplete provider, the old StandardAutocompleteProvider will be replaced in the next minor version.

✨ New features

  • AutocompleteContext has a new isEnabled property that can be used to disable autocomplete.
  • KeyboardAppearance has a new autocompleteToolbarStyle property.
  • KeyboardAppearance has a new keyboardBackground property.
  • KeyboardBackgroundStyle is a new style that can be used to the background of a keyboard.
  • KeyboardButtonStyle properties are now optional to allow for overrides.
  • KeyboardButtonStyle has a new pressedOverlayColor property that can be used to highlight buttons.
  • KeyboardButtonStyle has a new extended(with:) function to let you extend a style with another style.
  • View+SystemKeyboardButton has a new isPressed parameter to let you define pressed state.

👑 Pro changes

  • KeyboardInputViewController will use the new autocomplete context property to disable autocomplete if needed.
  • KeyboardTheme is a new type that can be used to define keyboard themes.
  • KeyboardThemeAppearance is a new appearance that can be used with KeyboardTheme.
  • The new LocalAutocompleteProvider that was introduced in 7.1 has been made public.
  • The new LocalAutocompleteProvider now ignores empty strings when wrapping in quotes.
  • The new LocalAutocompleteProvider now replaces hyphens with space when suggesting splitting up the word.
  • The incorrect Brazilian callout actions have been corrected.

🎨 New keyboard themes

  • KeyboardTheme.cottonCandy is a pink and blue trip to fluffy delight.
  • KeyboardTheme.neonNights is a metropolitian color explosion.
  • KeyboardTheme.tron is a black and blue, digital adrenaline rush.

💡 Behavior changes

  • SystemKeyboard uses the new appearance background and autocomplete toolbar styles.

🗑️ Deprecations

  • CalloutStyle has been renamed to KeyboardCalloutStyle.
  • ActionCalloutStyle has been renamed to KeyboardActionCalloutStyle.
  • InputCalloutStyle has been renamed to KeyboardInputCalloutStyle.## 7.1.3

This version adds an isKeyboardFloating property to the keyboard context. It's currently not used to change the visual representation of floating keyboards, but please verify that it works as expected.

✨ New features

  • KeyboardContext has a new isKeyboardFloating property that can be used to determine if the keyboard is floating.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics