Version 15 (modified by judah, 2 years ago)



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

The most recent development source code can be downloaded with: git clone

Further documentation is also available on this trac wiki.

Haskeline now also has a mailing list.

Bug reporting

Bug reports or feature requests can be submitted by adding a new ticket. You can either register for a new account, or log in with username guest and password haskeline.

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.