CINXE.COM
Keyman Engine | Add custom virtual keyboards to your web, mobile or desktop application
<!DOCTYPE html> <html lang='en'><head> <meta charset="utf-8"> <title>Keyman Engine | Add custom virtual keyboards to your web, mobile or desktop application</title> <script src="/cdn/deploy/js/sentry.bundle.5.28.0.min.94ac314aeac15a10211c943fbbb0b85b.js"></script> <script> Sentry.init({ dsn: "https://44d5544d7c45466ba1928b9196faf67e@o1005580.ingest.sentry.io/5983516", environment: location.host.match(/\.localhost$/) ? 'development' : location.host.match(/(^|\.)keyman-staging\.com$/) ? 'staging' : 'production', }); </script> <meta content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" name="viewport"> <link rel='shortcut icon' href="/cdn/deploy/img/favicon.56e7a2d76793fb59cca3133b8bb1dd3d.ico"> <link rel="stylesheet" type="text/css" href="/cdn/deploy/css/template.864a3d9cf657ccc5184e90bc0499facf.css"> <link href='https://fonts.googleapis.com/css?family=Cabin:400,400italic,500,600,700,700italic|Source+Sans+Pro:400,700,900,600,300|Noto+Serif:400' rel='stylesheet' type='text/css'> <script src='/cdn/deploy/js/jquery1-11-1.min.8101d596b2b8fa35fe3a634ea342d7c3.js'></script> <script src='/cdn/deploy/js/bowser.es5.2.9.0.min.66fb5ded26b5d86decaa5cc59ba79320.js'></script> <script src='/cdn/deploy/js/kmlive.35b6e695a0ef8a8ff1596aee24761420.js'></script> </head> <body data-device="Windows"> <div id="phone-menu"> <div id="phone-menu-inner"> <div class="phone-menu-item"> <h3>Keyboards</h3> <form method="get" action="/keyboards" name="fsearch"> <input id="language-search2" type="text" placeholder="Enter language" name="q"> <input id="search-submit2" type="image" src="/cdn/deploy/img/search-button.4ded2599366e38b689e248c939980b25.png" alt="search button" value="Search" onclick="if(document.getElementById('language-search2').value==''){return false;}"> </form> </div> <div class="phone-menu-item"> <h3>Products</h3> <ul> <li><a href="/windows/">Keyman 17.0 for Windows</a></li> <li><a href="/mac/">Keyman 17.0 for macOS</a></li> <li><a href="/linux/">Keyman 17.0 for Linux</a></li> <li><a href="/keymanweb/">KeymanWeb.com</a></li> <li><a href="/iphone/">Keyman 17.0 for iPhone</a></li> <li><a href="/ipad/">Keyman 17.0 for iPad</a></li> <li><a href="/android/">Keyman 17.0 for Android</a></li> <li><a href="/bookmarklet/">Keyman Bookmarklet</a></li> </ul> <h3>Downloads</h3> <ul> <li><a href='/downloads/'>Current release versions</a></li> <li><a href='/downloads/pre-release/'>Pre-release versions</a></li> <li><a href="/downloads/archive/">Older versions</a></li> </ul> </div> <div class="phone-menu-item"> <h3>Developer Tools</h3> <ul> <li><a href="/developer/">Keyman Developer 17.0</a></li> <li><a href="/engine/">Keyman Engine for Desktop</a></li> <li><a href="/engine/">Keyman Engine for Web</a></li> <li><a href="/engine/">Keyman Engine for iOS</a></li> <li><a href="/engine/">Keyman Engine for Android</a></li> </ul> </div> <div class="phone-menu-item"> <h3>About</h3> <ul> <li><a href="/about/">About Keyman</a></li> <li><a href="/about/get-involved">Get Involved</a></li> <li><a href="/training">Training Events</a></li> <li><a href="/free/">Free on all Platforms</a></li> <li><a href="/ldml/">LDML Support</a></li> <li><a href="/contact/">Contact Us</a></li> <li><a href="https://blog.keyman.com">Keyman Blog</a></li> <li><a href="/testimonials/">Testimonials</a></li> <li><a href="/search/">Search Site</a></li> </ul> </div> <div class="phone-menu-item"> <h3>Help</h3> <ul> <li><a href="https://help.keyman.com">Help and Documentation</a></li> </ul> </div> </div> </div> <div id="container" class="page-default"> <div class="header"> <img id="show-phone-menu" src="/cdn/deploy/img/phonehide.ca5b6569ec86dfcbdff8ca4008c96283.png" alt="menu toggle" /> <a id="home-link" href="/"><img id="logo" src="/cdn/deploy/img/logo2.ba10b4af03869e69115ce84380e980aa.png" alt='Keyman Logo' /></a> <img id="header-bottom" src="/cdn/deploy/img/headerbar.5b66d10475396d1a17cb0d687f794262.png" alt='Header bottom' /> <div id="help"> <form action="/search/" method="get" role="search"> <div class="search-wrap"> <label for="main-q" class="offscreen">Search</label> <input type="search" id="main-q" name="q" placeholder="Search" data-value="" value="" /> <button type="submit" class="offscreen">Search</button> </div> </form> <p id="donate"><a href="/donate">Donate</a></p> <p><a href="https://help.keyman.com" target="blank">Support<img src="/cdn/deploy/img/helpIcon.af6fa8bce63e1210428250d9b45929c2.png" alt="help icon"></a></p> </div> </div> <div id="top-menu-bg"></div> <div id="top-menu1"> <a href="/"><img id="top-menu-icon" src="/cdn/deploy/img/icon1.c7a2600d263e5bfc94580e153ddd38f0.png" alt="Keyman logo" /></a> <div id='help1'> <form action="/search/" method="get" role="search"> <div class="search-wrap"> <label for="main-q" class="offscreen">Search</label> <input type="search" id="main-q" name="q" placeholder="Search" data-value="" value="" /> <button type="submit" class="offscreen">Search</button> </div> </form> <a id='help1-donate' href="/donate">Donate</a> <a href="https://help.keyman.com"><img id="top-menu-icon2" src="/cdn/deploy/img/helpIcon.af6fa8bce63e1210428250d9b45929c2.png" alt="help icon" /></a> </div> <div class="wrapper"> <div class="menu-item" id="keyboards"> <h3>Keyboards<span class="header-triangle"><img src="/cdn/deploy/img/img_trans.ccca81506160a8ccf8003ae57a97b115.png" alt="keyboards dropdown" /></span></h3> <div class="menu-item-dropdown"> <div class="menu-dropdown-inner"> <h4>(2000+ languages)</h4> <form method="get" action="/keyboards" name="fsearch"> <input id="language-search" type="text" placeholder="Enter language" name="q"> <input id="search-submit" type="image" src="/cdn/deploy/img/search-button.4ded2599366e38b689e248c939980b25.png" value="Search" onclick="if(document.getElementById('language-search').value==''){return false;}"> </form> <h4>Featured keyboards</h4> <ul> <li><a href="/amharic/">Amharic and Ethiopic keyboards</a></li> <li><a href="/tigrigna/">Tigrigna keyboards</a></li> <li><a href="/eurolatin/">Eurolatin keyboard</a></li> <li><a href="/ipa/">IPA keyboards</a></li> <li><a href="/khmer/">Khmer Angkor keyboard</a></li> <li><a href="/burmese/">Burmese keyboards</a></li> <li><a href="/cameroon/">Cameroon keyboards</a></li> <li><a href="/tamil/">Tamil keyboards</a></li> <li><a href="/sinhala/">Sinhala keyboards</a></li> <li><a href="/greek/">Greek (Ancient) keyboards</a></li> <li><a href="/tibetan/">Tibetan keyboards</a></li> <li><a href="/urdu/">Urdu keyboard</a></li> </ul> </div> </div> </div> <div class="menu-item" id="products"> <h3>Products<span class="header-triangle"><img src="/cdn/deploy/img/img_trans.ccca81506160a8ccf8003ae57a97b115.png" alt="products dropdown" /></span></h3> <div class="menu-item-dropdown"> <div class="menu-dropdown-inner"> <h4>Core Products</h4> <ul> <li><a href="/windows/">Keyman 17.0 for Windows</a></li> <li><a href="/mac/">Keyman 17.0 for macOS</a></li> <li><a href="/linux/">Keyman 17.0 for Linux</a></li> <li><a href="/iphone-and-ipad/">Keyman 17.0 for iPhone and iPad</a></li> <li><a href="/android/">Keyman 17.0 for Android</a></li> <li><a href="/keymanweb/">KeymanWeb.com</a></li> <li><a href="/bookmarklet/">Keyman Bookmarklet</a></li> </ul> <h4>Downloads</h4> <ul> <li><a href='/downloads/'>Current release versions</a></li> <li><a href='/downloads/pre-release/'>Pre-release versions</a></li> <li><a href="/downloads/archive/">Older versions</a></li> </ul> </div> </div> </div> <div class="menu-item" id="tavultesoft"> <h3>About<span class="header-triangle"><img src="/cdn/deploy/img/img_trans.ccca81506160a8ccf8003ae57a97b115.png" alt="About dropdown" /></span></h3> <div class="menu-item-dropdown"> <div class="menu-dropdown-inner"> <ul> <li><a href="/about/">About Keyman</a></li> <li><a href="/about/get-involved">Get Involved</a></li> <li><a href="/training">Training Events</a></li> <li><a href="/free/">Free on all Platforms</a></li> <li><a href="/ldml/">LDML Support</a></li> <li><a href="https://help.keyman.com">Help and Documentation</a></li> <li><a href="/contact/">Contact Us</a></li> <li><a href="https://blog.keyman.com">Keyman Blog</a></li> <li><a href="/testimonials/">Testimonials</a></li> </ul> </div> </div> </div> <div class="menu-item" id="developer"> <div class="menu-item-sub" id="develop"> <a href="/developer/"> <h3>Developer</h3> </a> </div> </div> </div> <img id="top-menu-bottom" src="/cdn/deploy/img/headerbar.5b66d10475396d1a17cb0d687f794262.png" alt="Header bottom" /> </div> <div id="phone-header-spacer"></div> <div class="section1" id="section1-bgwater"> <div class="valign-outer" id="sect1-title"> <div class="valign-middle"> <div class="valign-inner"> <h1>Integrate Keyman into your desktop, web and mobile applications</h1> </div> </div> </div> <div class="valign-outer" id="sect1-image"> <div class="valign-middle"> <img src="/cdn/deploy/img/gears.38317256299e5620e018eab1dae509d8.png" /> </div> </div> </div><div class="main"><div id="section2"><div class="wrapper"><h2 class="red underline">Keyman Engine for Windows</h2> <p> Build a fully branded and customised desktop keyboarding product for Windows to fit the exact needs of your language, community or organization with the Keyman Engine for Desktop. Or add a custom virtual keyboard to your existing Windows application. <br/><br/> <a href='https://help.keyman.com/developer/engine/desktop/'>Keyman Engine for Windows documentation</a> <br/> <a href='https://github.com/keymanapp/keyman/'>Get the source</a> <br/> Please note: Keyman Engine for Windows is currently being redeveloped to streamline integration. </p> <h2 class="red underline">Keyman Engine for macOS</h2> <p> Keyman Engine for macOS allows you to build a keyboarding app for macOS, or integrate a sophisticated input method layer into your existing macOS application. <br/><br/> <a href='https://github.com/keymanapp/keyman/'>Get the source</a> <br/> Please note: Keyman Engine for macOS is currently under development. </p> <h2 class="red underline">Keyman Engine for Web</h2> <p> Let Keyman power all your typing needs for your new or existing web application or website. With the full-featured standalone Keyman Engine for Web (KeymanWeb), you can integrate over 2000 languages to give you and your users the simplest solution to typing on your site possible. <br/><br/> You can of course build your own keyboard layouts using <a href='/developer/'>Keyman Developer</a>, as well as access our library of hundreds of keyboard layouts covering thousands of languages. <br/><br/> <a href='https://help.keyman.com/developer/engine/web/'>KeymanWeb Documentation</a> <br/> <a href='/developer/keymanweb/'>Add KeymanWeb to your website</a> </p> <h2 class="red underline">Keyman Engine for iOS</h2> <p> Keyman Engine for iOS is our programming interface to integrate Keyman keyboards into your iPhone and iPad applications. Bringing with it over 2000 languages and multiple keyboards for many of those languages, as well as automatic embedded font support, Keyman Engine for iOS makes it straightforward to take your app to the world! <br/><br/> You can develop your own keyboard layouts for Keyman for iOS with <a href='/developer/'>Keyman Developer</a>. If you have existing keyboards, they can be ported to iOS with just a recompile. And of course, we include support for touch-oriented features such as touch-and-hold menus, dynamic keyboard layers and more! <br/><br/> <a href='https://help.keyman.com/developer/engine/iphone-and-ipad/'>Keyman Engine for iPhone and iPad Documentation</a> <br/> <a href='/downloads/#ios-engine'>Get the Keyman Engine for iOS now</a> </p> <h2 class="red underline">Keyman Engine for Android</h2> <p> Keyman Engine for Android is our programming interface to integrate Keyman keyboards into your Android applications. Bringing with it over 2000 languages and multiple keyboards for many of those languages, Keyman Engine for Android makes it straightforward to take your app to the world! <br/><br/> You can develop your own keyboard layouts for Keyman for Android with <a href='/developer/'>Keyman Developer</a>. If you have existing keyboards, they can be ported to Android with just a recompile. And of course, we include support for touch-oriented features such as touch-and-hold menus, dynamic keyboard layers and more! <br/><br/> <a href='https://help.keyman.com/developer/engine/android/'>Keyman Engine for Android Documentation</a> <br/> <a href='/downloads/#android-engine'>Get the Keyman Engine for Android SDK now</a> </p> <br/> <hr> <h2 class='red underline'>Keyboard App Builder</h2> <p> <a href='https://software.sil.org/keyboardappbuilder/' target='_blank'>Keyboard App Builder</a> (KAB) provides a zero-code method of distributing a Keyman keyboard bundled as an app for Android devices. KAB provides a wizard to build a simple app that embeds Keyman Engine and your selected keyboards as a standard Android .apk app which can be uploaded to the Play Store or distributed peer-to-peer. <br/><br/> KAB is not supported by the Keyman team. <a href='https://community.software.sil.org/c/kab'>Support for KAB</a> </p> </div> </div> </div> <div class="footer"> <div class="wrapper"> <div class="footer-third" id="footer-mailchimp"> <h2 class="footer-third-title">Keep me updated</h2> <!-- Begin MailChimp Signup Form --> <div id="mc_embed_signup"> <form action="//keyman.us1.list-manage.com/subscribe/post?u=99fcab2b035a8a51cd2158ca9&id=7ccdac1e32" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate> <div class="mc-field-group"> <input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL" placeholder="email" /> </div> <div id="mce-responses" class="clear"> <div class="response" id="mce-error-response" style="display:none"></div> <div class="response" id="mce-success-response" style="display:none"></div> </div> <div class="button subscribe"> <h2>Subscribe</h2> </div> </form> </div> <!--End mc_embed_signup--> <br> <div id="privacy-policy"><a href="/privacy/">Privacy policy</a></div> <div id='footer-get-involved'> <a href="/about/get-involved">Get involved</a> <a href='/donate'>Donate</a> </div> </div> <div class="footer-third" id="footer-social"> <h2 class="footer-third-title">Keep in touch</h2> <div> <a rel="me" href="https://facebook.com/KeymanApp" target="_blank" data-icon=''>Facebook</a> <a rel="me" href="https://twitter.com/keyman" target="_blank" data-icon=''>X/Twitter</a> <a rel="me" href="https://typo.social/@keyman" target="_blank" data-icon=''>Mastodon</a> <a rel="me" href="https://youtube.com/@KeymanApp" target="_blank" data-icon=''>YouTube</a> <a href="https://blog.keyman.com/" target="_blank" data-icon=''>Keyman blog</a> <a rel="me" href="https://github.com/keymanapp" target="_blank" data-icon=''>GitHub</a> <a href="https://community.software.sil.org/c/keyman" target="_blank" id='footer-community'>Keyman Community</a> </div> </div> <div class="footer-third sil-logo"> <br> <a href="/about/"><img id="sil-logo" src="/_common/assets/sil-logos-2024/sil-logo-andika-v2.png" width="50%" alt='SIL' /></a> <p>Created by <a href="/about/">SIL Global</a></p> </div> </div> </div> <div id="install-modal"></div> <div id="ios-install"> <p>Do you already have Keyman for iPhone and iPad installed on this device?</p> <a id="ios-installed" href="#">Yes - Install Keyboard</a> <a id="ios-install-confirm" href="https://itunes.apple.com/us/app/keyman/id721595078">No - Download from the App Store</a> <a id="ios-install-cancel" href="#">Cancel</a> </div> <div id="android-install"> <p>Do you already have Keyman for Android installed on this device?</p> <a id="android-installed" href="#">Yes - Install Keyboard</a> <a id="android-install-confirm" href="market://details?id=com.tavultesoft.kma">No - Download from the Play Store</a> <a id="android-install-cancel" href="#">Cancel</a> </div> <div id="jira-feedback"> <div id="jira-feedback-tab"><h4><a href='https://community.software.sil.org/c/keyman'>Support</a></h4></div> </div> <div id="KeymanWebControl"></div> </body> </html>