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:

A Home Screen
A Settings Screen
A Locale Screen
A Theme 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.

open-source pro
⌨️

Keyboard View

KeyboardKit can render a native-looking, customizable keyboard.

open-source pro
πŸ’₯

Actions

KeyboardKit lets you trigger and handle keyboard actions.

open-source pro
πŸ€–

AI Support

KeyboardKit Pro unlocks features that are needed for AI.

pro
πŸ“±

App Utilities

KeyboardKit makes it easy to set up your app and its keyboard.

open-source pro
πŸ’‘

Autocomplete

KeyboardKit Pro unlocks local & remote autocomplete features.

pro
πŸ—―

Callouts

KeyboardKit can show input and secondary action callouts.

open-source pro
πŸ–₯️

Device Utilities

KeyboardKit can identify device types, capabilities, etc.

open-source pro
🎀

Dictation

KeyboardKit Pro can trigger dictation from the keyboard.

pro
πŸ˜€

Emojis

KeyboardKit defines emojis, Pro unlocks an emoji keyboard, etc.

open-source pro
⌨️

External Keyboards

KeyboardKit Pro can detect if an external keyboard is connected.

pro
πŸ”‰

Feedback

KeyboardKit can trigger audio & haptic feedback.

open-source pro
πŸ‘†

Gestures

KeyboardKit can trigger & handle rich keyboard gestures.

open-source pro
🏠

Host

KeyboardKit Pro can identify and open specific host applications.

pro
πŸ”£

Layout

KeyboardKit has fully dynamic & customizable layout engine.

open-source pro
🌐

Localization

KeyboardKit supports 70 locales, with localized resources.

open-source pro
πŸ—ΊοΈ

Navigation

KeyboardKit lets you open urls and apps from the keyboard.

open-source pro
πŸ‘

Previews

KeyboardKit has built-in support for SwiftUI previews.

open-source pro
πŸ“„

Proxy Utilities

KeyboardKit can access the full document content in more ways.

open-source pro
βš™οΈ

Settings

KeyboardKit has tools for in-app settings & System Settings.

open-source pro
🩺

Status

KeyboardKit detects if a keyboard is enabled, has full access, etc.

open-source pro
πŸ“

Text Input

KeyboardKit Pro unlocks tools to let you type within the keyboard

pro
🎨

Styling

KeyboardKit lets you style your keyboards to great extent.

open-source pro
🍭

Themes

KeyboardKit Pro unlocks a theme engine & many standard themes.

pro