Input Methods




QIM is a Hanyu Pinyin input method with support for both Simplified and Traditional Chinese.

QIM is simply the best Pinyin input method available for Mac OS X. Its underlying data structure supports the powerful Heima shenpin [黑马神拼] technology. Currently, this provides two steps forward. First is intelligent sentence parsing—the ability to type long sentences as input strings while maintaining a high rate of accuracy in transforming them into hanzi. Second is a very large and highly efficient database structure—it contains more than 22 million entries across the entire spectrum of professional usage. The Sogou [搜索] search engine's dictionary has also been included, providing a frequently-updated database of contemporary terms.

Other useful features include the ability to limit the display of candidates to standard hanzi in the Xinhua Dictionary [新华字典], optional support for filtering candidates by Pinyin tone, and support for all keyboard layouts, like French, German, etc.

You can also inspect and edit the User Dictionary with import and export capabilities via the included QIM Dictionary Manager (QDM) application.

Free. If you can afford to do so, we strongly recommend you make a donation to support QIM's ongoing development. Localized for both Chinese and English.


DerYi [奇易, originally 得意 as Macintosh shareware] is based in Taiwan. First developed in 1994, its main input modes are Zhuyin, Pinyin, and Cangjie, along with user-defined phrase input. Like Hanin, it uses a rolling approach to converting input strings as you type, but DerYi gives the user more control over the process.

Version 4xxx (OS X 10.4 and above) comes with a Unicode option, along with Big5 and GB.


MacKEY's built-in input method can convert long strings of Pinyin text, with tones optional. For best results, you should parse the Pinyin into words and phrases as you type. See Language Tools.


Wenlin's built-in input method allows you to input any character or compound (word or phrase) in the dictionary, with tones optional. See Language Tools.


OpenVanilla provides CIN-format data tables for Cantonese using the Jyutping [粵拼] romanization system developed by the Linguistic Society of Hong Kong.

Dominic Yu's Apple-format plug-ins for Cantonese also use the Jyutping system. Versions available for OS X 10.2 and above, as well as OS 9 to OS X 10.1. He also provides a plug-in for the Yale system (OS X 10.2 and above only). See:

Handwriting Input

Note: OS X 10.6 and above supports Chinese handwriting input. Requires a Magic Trackpad or a MacBook with a built-in Multi-Touch Trackpad. See Apple's technical support article on this topic, which includes videos:

Magic Trackpad: Using Trackpad Handwriting with Simplified or Traditional Chinese

PenPower HandWriter

PenPower [蒙恬筆] produces a variety of tablets, each of which works with their HandWriter software. While the minimum system requirement for the software is OS X 10.4, these tablets also require Intel-based Macs to run smoothly.


OS X 10.5 and above. All iOS devices include handwriting input for Chinese. Finger allows you to use Wi-Fi to send the output directly to your Mac.

IM Frameworks

Input-method frameworks generate input methods from data tables. In the past, these source files had to be converted into a format the framework could handle, like a binary data file with the ".dat" extension. More recent frameworks, like Mac OS X 10.5+ and OpenVanilla (see below), can handle plain-text data tables directly.

CIN plug-ins

In OS X 10.5 and above, you can create a plain-text source file using the CIN plug-in data format described below, change the file extension to ".cin", and then place it in the /Library/Input Methods folder or your Home ~/Library/Input Methods folder.

For samples, see:

  • The plain-text source file must be in UTF-8 encoding.
    • Windows-style CR+LF newlines are not allowed.
    • Mac OS X and UNIX-style /n newlines are required.
  • For comments, use # at the start of a line and it will be ignored.
    • Comments are not allowed in the %chardef block.
  • Blank lines are ignored.
  • %gen_inp
    • Required. Tells the input-method framework what to do.
  • %cname
    • Determines the name that will appear in the Input menu.
    • Only %cname is valid in OS X 10.5.
    • %cname, %ename, %tcname, and %scname are all valid in OpenVanilla.
  • %encoding
    • UTF-8 is required for both OS X 10.5 and OpenVanilla.
  • %selkey
    • Defines keys used to select candidates.
    • In Mac OS X 10.5, this setting is ignored and defaults to 123456789.
  • %endkey
    • %endkey is designed to provide punctuation and other symbols in input methods.
    • Keys declared here also need to be defined in both the %keyname and %chardef blocks.
    • See OpenVanilla's bpmf.cin [注音] and cj.cin [倉頡] for examples of how this works. Also Biaoyin.
  • %keyname begin
    • Required. Key definitions begin on the next line.
    • These definitions map keys typed to characters displayed in the inline/input window. It is used mostly to display radicals in radical-based input methods like CangJie, Dayi, and Wubi, but it can also be used in other ways.
  • %keyname end
    • Required. Key defintions end on the previous line.
  • %chardef begin
    • Required. The data table begins on the next line.
    • Unlike the Apple format, the CIN format does not use a delimiter. Instead, each entry is listed on a new line, with a space (or tab) between the input string and the output string.
    • Input strings are not case-sensitive.
  • %chardef end
    • Required. The data table ends on the previous line.

Apple plug-ins

Plain-text source files in the Apple plug-in data format described below can be used with the Input Method Plug-in Converter utility in OS 9, and OS X 10.3 and 10.4. In OS X 10.5 and above, you simply change the file extension to ".inputplugin" and then place the file in the /Library/Input Methods folder or your Home ~/Library/Input Methods folder.

For samples, see the Apple-format Cantonese plug-ins listed above.

  • In OS X 10.3 and above, the plain-text source file must be in UTF-16 encoding.
  • In OS 9, it must be in GB 2312 (Simplified Chinese only) or Big Five (Traditional Chinese only) encoding.
  • For comments, use # at the start of a line and it will be ignored.
  • Blank lines are ignored.
  • Don't leave fields blank. Either omit the line (if it is not required and the default meets your needs) or define a value.
    • TABLE
    • Required. Defines the format of the data.
    • SC [Simplified Chinese]
    • TC [Traditional Chinese]
    • Unicode [Unicode, UTF-16 also valid]
    • Required. Determines the character set and script/framework used in the plug-in.
    • Legacy values, like GB2312 and BIG5, are depreciated.
    • Required. Determines the name that will appear in the Input menu.
    • 32 characters maximum.
    • For the version number of the data.
    • 8 characters maximum
    • Required. Determines the character used to delimit multiple output strings for the same input string.
    • Limits the length of input strings.
    • In OS 9 to OS X 10.4, the maximum length of input strings is seven (the default).
    • In OS X 10.5, there is no maximum length of input strings.
    • Required. Determines the characters that are valid in input strings.
    • Input strings are not case sensitive.
    • Required. The body of the data table begins on the next line.
    • For lines of data, the tab key is the delimiter between the input string and the output string(s).
    • Output strings can vary in length, up to 100 characters. [?]
    • Required. The data table ends on the previous line.


OpenVanilla is a free, open-source Unicode-based Chinese input method framework based in Taiwan. Supports data tables in the CIN format for its generic input module. A variety of tables are available, including data for CangJie [倉頡], Dayi [大易], Jianyi [簡易], Wubizixing [五笔字形], and Four-corner [四角號碼], among others. The tables can easily be edited, and other tables can be adapted for use in OpenVanilla. For example, tables from the popular but proprietary Boshiamy [嘸蝦米] input method can be installed. See here for a more detailed discussion of this topic (in Chinese).

OpenVanilla also includes more sophisticated modules, like the open-source, intelligent Chewing [酷音] input method. It is similar to Hanin, but is Zhuyin-only and supports an even wider array of keyboards. The well-known Array [行列] input method comes with a dedicated input module to use instead of the generic one. Taiwanese (POJ) and Tibetan (Sambhota and TCC) also have their own modules, among others.

OS X 10.4 and above.