KDT Session 9

Keyman Developer Tutorial

Distributing the Keyboard

Session 9

This session we will discuss how to distribute a keyboard.


After compiling, we can test the package installation in Keyman Desktop, by clicking Install Package.  We should test that all the keyboards and fonts install successfully, that the Readme and Welcome files are displayed during the install, and that the documentation is accessible to the end user. We should make sure that the On-Screen Keyboards install with the keyboard.

Distributing Keyboard on the Keyman Cloud Keyboard Repository (recommended)

Once we have tested the package to our satisfaction, it is time to distribute it. We recommend uploading our keyboard package to the Keyman Cloud Keyboard Repository.  The instructions can be found at Keyman website at this link.  There are some restrictions on names allowed for keyboard project folders.  Name must be unique in the repository, and the characters in the folder/project name must be drawn from the set of underscore plus lowercase alphabetic characters.

Distributing Keyboard via an External Storage device.

Once the keyboard package KMP file is created, we can share it via external storage devices (USB drive, SD card, etc.).   If the user has Keyman installed on the device, Keyman should be able to install the package KMP file on the device.

Distributing Keyboard via a Web Site

If that is not an option, we can upload the KMP file to a public facing website. We would need to upload the KMP file to the website.  Below is a simple example for including the Dagbani keyboard in the web site.





    <a href="https://url.com/.../dagbani.kmp">Download Dagbani Keyboarda>




Distributing to an Android device

Upload the web page to the public facing website. Once done, we can install the keyboard package onto the mobile devices by following these steps:

Here are the Instructions for installing keyboards to an Android device

Package file contents

A package can have a variety of different files contained within. The following files and file types are recognized by the package installer:

KMX file (Desktop)

Keyboard files. Each of these will be installed. Keyman Configuration will not allow installation or uninstallation of a single keyboard from a package. They will always be treated as a group for installation and uninstallation.

KVK file (Desktop)

On Screen Keyboard files, associated with each keyboard file.

JS file (mobile only)

Touch layout Keyboard files. When Keyman mobile applications install a keyboard package, all included keyboards will be installed as a group.


Help for the keyboard, HTML format. This will normally be displayed when the package is installed by the user and is also the entry point for help when accessed via Keyman's help system or Keyman Configuration.


Displayed before a package is installed, together with brief metadata about the package, to allow the user to determine if they wish to continue installation of the package.

kmp.inf (Desktop only)

A Windows INI format file that lists each of the files in the package, together with metadata.

kmp.json (mobile only)

A JSON format file contains metadata for the keyboard package such as package version, keyboard versions, and lists each of the files in the package. For more explanation of the structure of the JSON file, please read the metadata documentation.

TTF, OTF and TTC files

Truetype font files that will be installed with the package and uninstalled when the package is removed. On mobile, these fonts will be available only within the Keyman app and the on-screen-keyboard, not in other apps.


The Keyman package (KMP) file can be installed by Keyman (version 10 or later) on any platform, whether on Windows, Mac, Linux, Android or iOS. Distributing the package can be tricky, since it is a zip type file containing javascript, which is suspect to many email servers. But it can be shared by uploading it to a Google drive, then sending links to the file.





Creative Commons License
All content on this LingTranSoft wiki are by SIL International are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.