Read CHM files in Linux

CHM is the file extension for Microsoft Compiled HTML Help that is a proprietary format for online help files, developed by Microsoft and first released in 1997 as a successor to the Microsoft WinHelp format. It was first introduced with the release of Windows 98 crap.

There are three most popular tools to read CHM files in Linux: gnochm, xchm and kchmviewer.gnochmFirst CHM reader in our “review” is gnochm that is designed to integrate with Gnome. Among features of gnochm are:

  • Support for external ms-its links
  • Full text search support
  • Bookmarks
  • Configurable support for HTTP links
  • Support for multiple languages (be, cs, de, el, es, fr, hu, it, ja, pl, pt_BR, ru, sv, tr, vi, zh_CN, zh_TW)
  • Displays HTML page source

This utility is included into many Linux distributions repositories and as the result you can install it via one command in Ubuntu: sudo apt-get install gnochm. RPM packages and Source tarballs can be downloaded from here.

xchmAnother tool to read CHM files is xchm that is a cross-platform GUI front-end to chmlib. Originally it was written for UNIX systems (Linux, *BSD, Solaris), some time later xCHM has been ported to Mac OS X and Windows. xchm has several limitations like these: it can’t handle * .chm files packing .mht files and complicated non-Latin charsets. Downloadable files can be found here, plus xchm is assembled for wide range of Linux distributions (sudo apt-get install -y xchm will install xchm in Ubuntu and Debian).

kchmviewerAnother CHM reader for Linux is kchmviewer for KDE. Unlike most existing CHM viewers for Unix, it uses Trolltech Qt widget library, and could optionally use KDE libraries for better KDE integration. It does not require KDE, but may be compiled with full KDE support, including KDE widgets and KIO/KHTML.

The main advantage of kchmviewer is the best support for non-English languages. Unlike other viewers, kchmviewer in most cases is able to correctly detect the chm file encoding and show it. It correctly shows the index and table of context in Russian, Korean, Chinese and Japanese help files, and with new search engine is able to search in any chm file no matter what language it is written.

You can download source tarball from here or install Ubuntu and execute sudo aptitude install kchmviewer 🙂


Stefan Durand

My name is Stefan, I'm the admin of LinuxScrew. I am a full-time Linux/Unix sysadmin, a hobby Python programmer, and a part-time blogger. I post useful guides, tips, and tutorials on common Linux and Programming issues. Feel free to reach out in the comment section.

3 thoughts on “Read CHM files in Linux”

Leave a Reply

Your email address will not be published. Required fields are marked *