Custom keyboards use a UITextDocumentProxy to integrate with the currently active text field. It lets you insert and delete text, get the selected text, move the input cursor, etc.

The native proxy APIs are however very limited, which makes it hard to get information about the text and to perform many common keyboard operations.

KeyboardKit therefore extends the proxy with more features to let you do more, like currentWord, isCursorAtNewSentence, deleteBackward(range:), endSentence(withText:), etc.

See the online documentation for more information and a for full list of available proxy extension.

πŸ‘‘ KeyboardKit Pro

KeyboardKit Pro unlocks additional text document proxy capabilities, like the ability to read the full document context, instead of the limited text that the native APIs return.

let proxy = keyboardContext.textDocumentProxy
let result = try await proxy.fullDocumentContext(...)

KeyboardKit Pro also makes it possible to replace the main text document proxy with a custom one. This is used by the text input components, to let you type within the keyboard extension.

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
πŸ“¦

Escrow

KeyboardKit Pro offers escrow services to enterprise customers.

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 72 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