The Haskeline library provides a user interface for line input in command-line programs. This library is similar in purpose to readline, but since it is written in Haskell it is (hopefully) more easily used in other Haskell programs.
- Provides a rich line editing interface.
- A ~/.haskeline file allows customization of preferences and custom key bindings.
- Runs on POSIX-compatible systems, using the terminfo library to support non-ANSI terminals.
- Runs on Windows using MinGW (Cygwin support is TODO).
- Supports Unicode cross-platform.
- History recall and incremental search.
- Custom tab completion functions which may run in an arbitrary monad.
The latest release, as well as the API documentation, may be obtained from Hackage at http://hackage.haskell.org/package/haskeline.
The most recent development source code can be downloaded with: git clone https://github.com/judah/haskeline
Further documentation is also available on this trac wiki.
Haskeline now also has a mailing list.
Registering (or alternately, adding your email to the Cc: field) is encouraged; it often takes a few messages back and forth to track down any platform-dependent issues.