Ispell

Ispell is a spelling checker for Unix that supports most Western languages. It offers several interfaces, including a programmatic interface for use by editors such as Emacs. Unlike GNU Aspell, ispell will only suggest corrections that are based on a Damerau–Levenshtein distance of 1; it will not attempt to guess more distant corrections based on English pronunciation rules.
Ispell has a very long history that can be traced back to a program that was originally written in 1971 in PDP-10 Assembly language by R. E. Gorin, and later ported to the C programming language and expanded by many others. It is currently maintained by Geoff Kuenning. The generalized affix description system introduced by ispell has since been imitated by other spelling checkers such as MySpell.
Like most computerized spelling checkers, ispell works by reading an input file word by word, stopping when a word is not found in its dictionary. Ispell then attempts to generate a list of possible corrections and presents the incorrect word and any suggestions to the user, who can then choose a correction, replace the word with a new one, leave it unchanged, or add it to the dictionary.
Ispell pioneered the idea of a programming interface, which was originally intended for use by Emacs. Other applications have since used the feature to add spell-checking to their own interface, and GNU Aspell has adopted the same interface so that it can be used with the same set of applications.
There are ispell dictionaries for most widely spoken Western languages.
Ispell is available under a specific open-source license.