UI.Command is a Haskell library for building commandline programs which have subcommands. This is common with revision control systems (cvs, svn, darcs, git etc.) UI.Command includes the following features: Automatic generation of help text Generation of manual pages Examples Checking of example syntax When you use a GUI program, you expect consistent behaviour: * Title * Menus listing available options * Help Many GUI toolkits exist to make this task easier. UI.Command is a toolkit for developing commandline programs with consistent behaviour. It is useful for modern commandline programs to have consistent behavior: * Print their name and usage information * Explain options * Provide clear, consistent documentation in various formats * Provide contact details for submitting bug reports and feature requests There are many good reasons for developing a commandline version of your program: * Accessibility: Many blind users prefer to use a commandline version of software if available * Automation: Commandline tools can be easily used in scripts. You may not think it is useful to automate your software, but your power users might! If you have developed a library, UI.Command provides a useful framework for demonstrating the library features. Developers ---------- ui-command is maintained in git at http://github.com/kfish/ui-command.git A list of outstanding tasks is maintained in the TODO file of this source distribution. When implementing anything listed in this file, please update it by deleting that entry, and include that as part of the patch or commit that implements the fix. Contact ------- For technical and other queries, please contact the author: Conrad Parker <conrad@metadecks.org> (kfish on #haskell on Freenode).