lambdabot-core: Lambdabot core functionality

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.


Lambdabot is an IRC bot written over several years by those on the #haskell IRC channel.

Manage plugins, network connections, configurations and much more.

[Skip to ReadMe]


Versions5.0, 5.0.1, 5.0.3, 5.1,,,,, 5.2
Change logNone available
Dependenciesbase (>=4.4 && <5), binary (>=0.5), bytestring (>=0.9), containers (>=0.4), dependent-map (==0.2.*), dependent-sum (>=0.3 && <0.5), dependent-sum-template (>=, directory (>=1.1), edit-distance (>=0.2), filepath (>=1.3), haskeline (>=0.7), hslogger (>=1.2.1), HTTP (>=4000), lifted-base (>=0.2), monad-control (>=1.0), mtl (>=2), network (>=, parsec (>=3), prim-uniq (==0.1.*), random (>=1), random-fu (>=, random-source (>=0.3), regex-tdfa (>=1.1), SafeSemaphore (>=0.9), split (>=0.2), syb (>=0.3), template-haskell (>=2.7), time (>=1.4), transformers (>=0.2), transformers-base (>=0.4), unix (>=2.5), utf8-string (>=0.3), zlib (>=0.5) [details]
AuthorDon Stewart
MaintainerJames Cook <>
CategoryDevelopment, Web
Home page
Source repositoryhead: git clone
UploadedSun Jul 1 18:32:59 UTC 2018 by BertramFelgenhauer




Maintainers' corner

For package maintainers and hackage trustees

Readme for lambdabot-core-

[back to package description]

lambdabot Build Status

Lambdabot is an IRC bot written over several years by those on freenode's #haskell IRC channel. It also operates in an offline mode as a Haskell development tool, and embedded as an extension to ghci.


You'll need GHC >= 7.4. cabal-install is highly recommended.

External executable dependencies:

Some of these dependencies (those with corresponding hackage libraries) will be installed by cabal, but not all of them will. In all cases, cabal does not actually track the executables so if they have previously been installed and deleted on your system (without unregistering the matching library), you will have to manually reinstall them.


Lambdabot can be installed system-wide or per user, but currently the lambdabot binary makes certain assumptions about what directory it is being run in & where files it needs can be found. (This is the subject of future work.)

Your best bet is currently to read the code and see what it does, and decide for yourself whether that's what you want.




lambdabot -e 'rc online.rc'

SSL MODE (with stunnel)

append the following to your stunnel.conf:

client = yes
accept = 6667
connect =

and edit online.rc to use localhost as server, then restart the stunnel server and restart lambdabot with:

./lambdabot -e 'rc online.rc'


The scripts directory contains some shell scripts for Vim editor support
They are self-explanatory


Lambdabot uses an extensible configuration system which allows plugins to define their own configuration variables. The lambdabot core system defines several, listed in the module Lambdabot.Config.Core. The default lambdabot executable provides a command-line interface to set some of the most common ones, but currently the only way to set others is to define your own executable (which you must currently do anyway to change the default set of modules).

When doing so, configuration is passed in to the lambdabotMain function as a list of bindings. Configuration variables are bound using the :=> operator (actually the data constructor of the DSum type), for example:

ghcBinary :=> "ghc-7.4.2"

So a typical custom lambdabot executable might look something like:

module MyBot where

import Lambdabot.Main
{- import your plugins here -}

main = lambdabotMain myPlugins 
    [ configKey  :=> value
    , anotherKey :=> anotherValue


Bug reports, patches, new modules etc., open issues on GitHub or contact:

    James Cook <>
    aka mokus on #haskell


git clone


Send pull requests to mokus0 on github. Add yourself to the AUTHORS file if you haven't already.