Keyboard Support

Contact and Search Homepage

Header bottom


On this page

< Previous article   Next article >

kmshell.exe Command Line Parameters

On Windows, Keyman Configuration can be run with command line arguments to automate a number of tasks. It is also possible to use the Keyman for Windows API to accomplish all these tasks, but some are more easily accessed via the command line.

The command line program is called kmshell.exe, and if run with no arguments kmshell.exe will start Keyman.

The following command line arguments are available:

Argument Description
-a Open Keyman Configuration user interface
-basekeyboard Loads the Set Base Keyboard user interface
-c Open Keyman Configuration user interface
-i filename[=bcp47] Install a keyboard (.kmx) or package (.kmp) file, optionally associating with a specific language
-ikl KeyboardID BCP47Tag "BCP47Tag" language registration for the keyboard "KeyboardID" and enable the keyboard.
-f Used with the -ouc forces an update check (overiding only check every 7 days) switch
-uk filename.kmx Uninstall a keyboard (.kmx file)
-up filename.kmp Uninstall a package (.kmp file)
-h Open Keyman help contents
-keepintouch Open the Keep in touch page in the users default web browser (also opens a blank winform UI)
-kw Open the welcome screen for the keyboard name supplied as the first argument.e.g. -kw keyboard_name
-nowelcome To be used in conjunction with -i and it stops the welcome screen from showing
-t Open Keyman text editor
-ouc Check for updates online and prompt user if updates are found
-kw package Open the help for the installed keyboard package
-kp keyboard Start print wizard for on screen keyboard for the keyboard
-s Where relevant, run silently, without user interface prompts
-settings Open the Keyman System Settings an advanced configuration user interface
-showhelp Open the help user interface
-splash Open splash screen

If kmshell.exe is run as an elevated command, then the command will run in local machine context, otherwise it will affect only the current user. -i, -uk, -up all require elevation to succeed.


  • -settings was added in Keyman for Windows 15.0
  • -i filename[=bcp47] The bcp47 parameter was added in Keyman for Windows 14.0
  • -showhint , -parentwindow and -showhelp was added in Keyman for Windows 14.0
  • -startwithconfiguration and -disablepackages was added in Keyman for Windows 12.0

Internal - used to call a process to run in the elevated context

Argument Description
-default-lang With parameters 1 = DefaultBCP47 2 = DefaultLangID. Internal used so that the elevated user can use the current users default language ID.
-firstrun Sets up configuration for both local-machine and current user.
-install-tip For language (current user ) parameters LangID KeyboarID BCP47Code UserDefaultLangparameterString
-ou Called inside Online Update Check when when elevated permissions are needed.
-register-tip Register the TIP processor for language? (elevelated user) LangID KeyboarID BCP47Code TemporaryKeyboard ID Registration Required
-upgradekeyboards Backup and import keyboards when upgrading keyman. This is run after installation; it is idempotent and will upgrade all keyboards from earlier versions to version 14+" Options are: -upgradekeyboards=13,backup;-upgradekeyboards=13,import;-upgradekeyboards=13,admin
-upgrademnemoniclayout Upgrade mnemonic keyboard layouts
-defaultuilanguage Sets the default user interface language used in -firstrun
-disablePackages Disables packages used with -firstrun it can set all packages disabled.
-parentwindow Has one parameter which is the parent window id.
-q Provide query string separated by spaces