Keyman is a well-established commercial tool for creating keyboard input methods. It was originally Windows based, though clients are now available on Mac OSX, iPhone/iPad and Android. There is also KeymanWeb, which provides complex keyboard support for web-based systems, and there are other keyboarding systems that can work with Keyman .kmn source files, such as KMFL on Linux.

On Windows, Keyman allows for more complex input processing than does the standard Windows keyboarding system, and so meets a wider range of needs. It does not use the Windows keyboard driver format, so a separate client needs to be installed on each computer using the keyboard.

There are many existing Keyman keyboards available - for information on available keyboards see the  Tavultesoft keyboard search, SIL's  Keyman keyboard links or look under the relevant language or script entry in ScriptSource.

To create new keyboards, or to modify existing ones, Keyman Developer is required. This is a powerful environment for developing keyboards, including a point-and-click interface for the initial design, and testing/debugging options when working on complex keyboards. Keyboards created using Keyman Developer on Windows can also be exported for use with mobile devices or KeymanWeb, or used with other systems that support the .kmn source format such as KMFL on Linux.

Author/Company information

Keyman is produced by Tavultesoft. They have a new website,  www.keyman.com.

It is a commercial product. Discounts are available to people from developing countries, educational establishments and SIL members/associates.

Technical overview

Keyman uses text-based source files (.kmn) which must be compiled into keyboard files (.kmx) to use with the Keyman Client.

The language used within the source files allows complex script behaviours to be programmed, including rules based on context.

All work developing keyboards can be done within the windows-based Keyman Developer graphical user interface (gui). Much of the basic work can be done using the gui to map keys to characters, but advanced work can only be done by editing the source file. This can be done within the gui or by editing with an external text editor. Once compiled, the keyboard can be tested and debugged within the gui.

A package can be produced including such things as the icon for the keyboard, a layout map, readme files, etcetera.


Here is the list of products, all available from  Keyman:

 Keyman Desktop Professional - the client run on end-user computers to enable the keyboards to work

 Keyman Desktop Free Edition (on the same page) - reduced functionality desktop with a maximum of two keyboards installed

 Keyman for Mac OS X Beta - a client for Mac OS X

 Keyman iPhone/iPad - a client for iPhone and iPad

 Keyman Android - a client for Android devices

 Keyman Developer - used to develop new keyboards or amend existing ones

 KeymanWeb - covering various tools for implementing keyboards on web sites without the need for any software installation on end-user computers.

Platform and Version information

The current version of Keyman Desktop is v9 which runs on Windows 7, 8, 10.
The current version of Keyman Developer is v9 which runs on Windows 7, 8, 10.

Keyboards developed with Keyman 8 can be saved in a format that works with earlier versions of the Keyman Client, providing that they do not use newer features not supported by that version.

See the relevant web pages (links above) for version information on iPhone, iPad, Android and web versions.

Other systems that use the Keyman source format

 Keyboard Mapping for Linux (KMFL)

Also the  InKey keyboard creator has an option to import Keyman source files, and Keymagic uses a similar format.


  General information on Keyman from SIL  http://scripts.sil.org/Keyman
  A comparison between Keyman and MSKLC:  http://scripts.sil.org/KeymanVsMSKLC
  Keyman Developer documentation  www.tavultesoft.com/keymandev/documentation