KeyboardKit 10 is out!
Sep 29, 2025 ·
KeyboardKit 10 is out! This is a huge release with many new features and changes. Let’s take a look!
📦 Project Changes
KeyboardKit 10 merges KeyboardKit and KeyboardKit Pro into a single, unified SDK that now targets iOS 16, macOS 13, tvOS 16, watchOS 10, and visionOS 1.
This means there will no longer be two separate KeyboardKit and KeyboardKit Pro projects. Instead, the Pro features are integrated into the core framework, with the same license protection as before.
This provides a more cohesive developer experience, with a single SDK, and a single way to add and set up KeyboardKit. It also makes the SDK way easier to manage and will let us ship features faster.
A single, closed-source SDK will also enable us to serve enterprise customers better, as we can now add integrations directly into the core engine. We are excited about the possibilities this unlocks.
We strongly believe that going closed-source will make it easier to manage the project and to create new features and great documentation that will help everyone who use KeyboardKit.
📄 Pro License Changes
KeyboardKit 10 has a new license file format. All license file customers will get an updated file when the new version is released. Until then, you can reach out to get a new file.
KeyboardKit will no longer have licenses encoded into the SDK. This means that you will either need a license file or a Gumroad subscription license key.
Gumroad licenses will no longer parse locales from the purchase. Gumroad users must instead add the locales they want to use when setting up the library.
💿 Installing KeyboardKit 10
KeyboardKit 10 is exclusively installed from the main repository, even if you use KeyboardKit Pro. You must also and change all import KeyboardKitPro
to import KeyboardKit
.
If you upgrade to KeyboardKit 10 from an earlier version, make sure to follow the guide below.
🛣️ Upgrading from KeyboardKit 9
Migrating from KeyboardKit 9 to KeyboardKit 10 should be straightforward. Just follow these steps:
- To upgrade from even older versions, see each major version upgrade guide.
- To upgrade from KeyboardKit 9.x to 10.x, first upgrade to KeyboardKit 9.9.
- Make sure to address all deprecation warnings (if any) before you proceed.
- You can now upgrade to KeyboardKit 10.0, using the new, unified framework.
- If you face breaking changes, see the breaking changes section at the end.
- If you get migration deprecation warnings during build, you must fix them.
- You are done upgrading when you have no more breaking changes or warnings.
If you are on KeyboardKit 8.x or earlier, we recommend that you follow the upgrade guide of the older version. Once you’re on KeyboardKit 9, the steps above should work.
⚠️ Migration Warnings
Although most deprecated parts of the library have been removed in this major version, some still remain as migration warnings, to help you migrate from KeyboardKit 9.9.
Code that triggers these warnings will not work as expected, and are only there to guide you. These warnings will be removed in KeyboardKit 10.1.
The migration warning approach has been very appreciated in earlier major versions, and we are happy to provide these warnings as an extra help this time around as well.
📗 Documentation
The online documentation has been updated for 10.0, and now lives at docs.keyboardkit.com.
⚡️ Autocomplete
KeyboardKit 10 improves the autocomplete engine and makes it easier to integrate with any remote services. The .claude
& .openAI
requests are now generic with specific next word prediction types.
The LocalAutocompleteService
is renamed to StandardAutocompleteService
, and has new ways to use the new RemotePredictionRequest
type to trigger remote operations and predictions.
Due to the many improvements in the standard service, RemoteAutocompleteService
will be removed.
Finally, the .claude
remote prediction request builder uses claude-sonnet-4-20250514
as its default.
📋 Clipboard
KeyboardKit 10 has a new Clipboard
namespace with clipboard-related features to let users paste from the system clipboard and a collection of custom clips.


There is a new SettingsScreen
that can be used to manage clips in the main app, a ClipsScreen
that can be used to select clips, and a Keyboard
that can paste into the current app.
🔤 Fonts
KeyboardKit 10 has a new Fonts
namespace with font features that let us type with Unicode fonts.


The new Fonts.SettingsScreen
can be used to manage fonts. KeyboardView
will automatically apply the selected font to its keys.
Due to the market situation, this feature is not part of the Gold tier. It requires a business license.
😀 Emojis
The EmojiKeyboard
has been rewritten from scratch and has better responsiveness and a memory management that properly deallocates memory when emojis are scrolled out of frame.


This new memory management allows the new emoji keyboard to render emojis without the need for downsampling. This allows for a more native-like experience, with more customizations.
🎨 Themes
The KeyboardTheme
namespace has a new .blueprint
theme that mimics the classic blueprint style.


✨ Misc. Features
Although KeyboardKit 10 mainly focuses on project structure, architecture and simplifications, there are a few new features.
First of all DeviceType
has a preferredKeyboardDeviceType
, which makes KeyboardView
render better on macOS and tvOS, where it’s now using the iPad design and layout.
Several views and features that were previously in KeyboardKit Pro are now open to everyone, such as Feedback.Toggle
and Keyboard.BottomRow
, and many KeyboardLayout
customizations.
Finally Keyboard.InputType
is a new type that separates the keyboard type from the input type. This makes KeyboardKit better at switching between different text fields.
💡 Misc. Changes
Views now use environment injection instead of init injection for all observable contexts. This makes it a lot easier to use them, and will make it easier to change them as needed.
The KeyboardView
has a fewer init arguments, which makes it a lot easier to use and customize. The final release may remove even a few more arguments.
Keyboard.KeyboardType
converts some keyboard types to input types to be able to switch without affecting the keyboard, and KeyboardLayout
uses iPad Pro layouts on iPad, macOS, tvOS & visionOS.
See the KeyboardKit 10 release notes for a full list of changes and bug fixes.
Conclusion
KeyboardKit 10 is a huge step forward for the library and for KeyboardKit as a product. Please give it a try and let us know if you run into any bugs or problems.
For more info and to download the documentation, please see the KeyboardKit 10 release notes. This page also contains a list of breaking changes that you should be aware of when updating.
We hope you will love using KeyboardKit 10.
Discussions & More
If you found this interesting, please share your thoughts on Bluesky and Mastodon. Make sure to follow to be notified when new content is published.