KeyboardKit provides main app utils that lets you build a great main app for your custom keyboard.
The main app is a perfect place to onboard users. With its full screen estate, itβs also a great place to provide the user with keyboard settings, and perform certain operations like dictation.
KeyboardKit has a KeyboardApp
struct that is also a namespace for app-related types and views, like KeyboardKit Proβs HomeScreen
, SettingsScreen
, LocaleScreen
, and ThemesScreen
components.
You can create an app-specific KeyboardApp
to define your app name
, appGroupId
, licenseKey
, etc.
extension KeyboardApp {
static var keyboardKitDemo: KeyboardApp {
.init(
name: "KeyboardKit",
licenseKey: "your-key-here", // Sets up KeyboardKit Pro!
appGroupId: "group.com.keyboardkit.demo", // Sets up App Group data sync
locales: .keyboardKitSupported, // Sets up the enabled locales
autocomplete: .init( // Sets up custom autocomplete
nextWordPredictionRequest: .claude(...) // Sets up AI-based prediction
),
deepLinks: .init(app: "kkdemo://", ...) // Defines how to open the app
)
}
}
You can set up your keyboard extension by passing in the KeyboardApp
into the setup
function, and set up the main app with the same configuration by passing it into a root KeyboardAppView
.
π KeyboardKit Pro
KeyboardKit Pro unlocks a KeyboardApp.HomeScreen
that can be used as the main appβs root view, as well as a SettingsScreen
, LocaleScreen
, and ThemeScreen
that are linked to from the home screen:




These settings screens can be used independently as well, in case you have a custom home screen, and let you add complex and customizable settings to your app with a few lines of code.
Documentation
The information on this page is shortened to be easier to overview. For more information, see the online documentation, or the KeyboardKit Pro documentation.
Features
KeyboardKit is packed with features. You can upgrade to KeyboardKit Pro to unlock pro features.
Essentials
KeyboardKit provides essential models, features & views.
Keyboard View
KeyboardKit can render a native-looking, customizable keyboard.
Actions
KeyboardKit lets you trigger and handle keyboard actions.
AI Support
KeyboardKit Pro unlocks features that are needed for AI.
App Utilities
KeyboardKit makes it easy to set up your app and its keyboard.
Autocomplete
KeyboardKit Pro unlocks local & remote autocomplete features.
Callouts
KeyboardKit can show input and secondary action callouts.
Device Utilities
KeyboardKit can identify device types, capabilities, etc.
Dictation
KeyboardKit Pro can trigger dictation from the keyboard.
Emojis
KeyboardKit defines emojis, Pro unlocks an emoji keyboard, etc.
External Keyboards
KeyboardKit Pro can detect if an external keyboard is connected.
Feedback
KeyboardKit can trigger audio & haptic feedback.
Gestures
KeyboardKit can trigger & handle rich keyboard gestures.
Host
KeyboardKit Pro can identify and open specific host applications.
Layout
KeyboardKit has fully dynamic & customizable layout engine.
Localization
KeyboardKit supports 70 locales, with localized resources.
Navigation
KeyboardKit lets you open urls and apps from the keyboard.
Previews
KeyboardKit has built-in support for SwiftUI previews.
Proxy Utilities
KeyboardKit can access the full document content in more ways.
Settings
KeyboardKit has tools for in-app settings & System Settings.
Status
KeyboardKit detects if a keyboard is enabled, has full access, etc.
Text Input
KeyboardKit Pro unlocks tools to let you type within the keyboard
Styling
KeyboardKit lets you style your keyboards to great extent.
Themes
KeyboardKit Pro unlocks a theme engine & many standard themes.