Exobrain - Core Exobrain accessor class


version 1.01



        class  => 'Measurement::Geo',
        filter => sub { $_->is_me },
        then   => sub { ... },

When we see packets of a particular class, do a particular thing. The class need not strictly be a class, but may also be a role.

The 'Exobrain::' prefix should not be supplied to the class/roles you are searching for.

If the optional debug option is passed with a coderef, that will be run for every event in the desired class, before the filter is evaluated.

The event is passed as the first argument to all coderefs. As a convenience, it is also placed inside $_.

Never returns, just runs the loop forever.


        priority => -1,

Takes a mandatory message, and any arguments that can be passeed to Exobrain::Intent::Notify, and notifies the user. At the time of writing, notifications are done by the pushover end-point by default.

This is a thin wrapper around $exobrain-intent('Notify', ... >.


    $exobrain->message( ... );

Shortcut to create a 'raw' message. The exobrain parameter will be passed to the class constructor automatically.

The message will be sent automatically, unless the nosend parameter is set to a true value.


    $exobrain->measure( 'Mailbox',
        count  => 42,
        user   => 'pjf',
        server => '',
        fodler => 'INBOX',

Preferred shortcut for creating a measurement of the desired class. The exobrain parameter will be passed to the measurement class constructor automatically.


    my $intent = $exobrain->intent( 'Tweet',
        tweet => 'Hello World',

Preferred shortcut for making an intent of the desired class. The exobrain parameter will be passed to the intent class constructor automatically.



Runs the agent of the class specified. The agent name is automatically prepended with "Exobrain::Agent::" and loaded first. This method never returns.

This is usually called from the exobrain cmdline program.


Paul Fenwick <>


This software is copyright (c) 2014 by Paul Fenwick.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.