Microsoft Compiled HTML Help
Microsoft Compiled HTML Help is a Microsoft proprietary online help format, consisting of a collection of HTML pages, an index and other navigation tools. The files are compressed and deployed in a binary format with the extension.CHM. The format was intended to succeed Microsoft WinHelp.
Although the format was designed by Microsoft, it has been successfully reverse-engineered and is now supported by many document viewers.
History
CHM was introduced as the successor to Microsoft WinHelp with the release of Windows 95 OSR 2.5. Within the Windows NT family, the CHM file support is introduced in Windows NT 4.0 and is still supported in Windows 11.| Month | Year | Description |
| February | 1996 | Microsoft announces plans to stop development of WinHelp and start development on HTML Help. |
| August | 1997 | HTML Help 1.0 is released with Internet Explorer 4. |
| February | 1998 | HTML Help 1.1a ships with Windows 98. |
| January | 2000 | HTML Help 1.3 ships with Windows 2000. |
| July | 2000 | HTML Help 1.32 releases with Internet Explorer 5.5 and Windows Me. |
| October | 2001 | HTML Help 1.33 releases with Internet Explorer 6 and Windows XP. |
| March | 2001 | At the WritersUA conference, Microsoft announces plans for a new help platform, Help 2, which is also HTML based. |
| January | 2003 | Microsoft decides not to release Microsoft Help 2 as a general Help platform. |
Microsoft has announced that they do not intend to add any new features to HTML Help.
File format
Help is delivered as a binary file with the.chm extension. It contains a set of HTML files, a hyperlinked table of contents, and an index file. The file format has been reverse-engineered and documentation of it is freely available.The file starts with bytes "ITSF", for "Info-Tech Storage Format", which is the internal name given by Microsoft to the generic storage file format used for CHM files.
CHM files support the following features:
- Data compression
- Built-in search engine
- Ability to merge multiple.chm help files
- Extended character support, although it does not fully support Unicode.
Viewers
In addition to Microsoft Windows, the following apps support CHM:| Name | Operating system | Website | |
| Okular | Windows, Linux, Unix-like | Uses hh.exe on Windows | |
| Calibre | Windows, macOs, Linux, | ||
| Sumatra PDF | Windows | ||
| GnoCHM | Linux, BSD | ||
| CHM View | None/Uncompiled | ||
| kchmviewer | Windows, Linux | ||
| KCHM | Linux, BSD, Solaris | ||
| CHMPane | Windows, macOS, Linux | ||
| CHMate Neue | iOS, iPadOS, visionOS | ||
| iChm | iOS, macOS | Discontinued | |
| ChmPlus | iOS, iPadOS, macOS, visionOS | ||
| Chmox | macOS | ||
| Clearview | macOS | ||
| DisplayCHM | Linux | ||
| KOReader | Android, Linux | ||
| 7-zip | Windows, MacOS, Linux | 7-zip can show the contents of.chm files as though they are a compressed archive, but does not render the HTML as a help-viewer. |
Creators
Microsoft's HTML Help Workshop generates CHM files by instructions stored in an HTML Help project file, which bears a.HHP file name extension and is a specialized form of INI file.Lazarus and Free Pascal provide a doxygen-like tool for CHM generation and a separate command-line compiler called
chmcmd.