Author image Shawn M Moore
and 1 contributors


Net::Hiveminder - Perl interface to


    use Net::Hiveminder;
    my $hm = Net::Hiveminder->new(use_config => 1);
    print $hm->todo;
    $hm->create_task("Boy these pretzels are making me thirsty [due tomorrow]");


Hiveminder is a collaborate todo list organizer, built with Jifty.

This module uses Hiveminder's REST API to let you manage your tasks any way you want to.

This module is built on top of Net::Jifty. Consult that module's documentation for the lower-level interface.

display_tasks [ARGS], TASKS

This will take a list of hash references, TASKS, and convert each to a human-readable form.

In scalar context it will return the readable forms of these tasks joined by newlines.

Passing options into this is somewhat tricky, because tasks are currently regular hashes. You may pass arguments to this method as such:

    $hm->display_tasks([arg1 => 'val1', arg2 => 'val2'], @tasks)

The arguments currently respected are:


Make the record locator (#foo) into an HTML link, pointing to the task on site.

get_tasks ARGS

Runs a search with ARGS for tasks. There are no defaults here, so this can be used for anything.

Returns a list of hash references, each one being a task. Use display_tasks if necessary.

todo_tasks [ARGS]

Returns a list of hash references, each one a task. This uses the same query that the home page of Hiveminder uses. The optional ARGS will be passed as well so you can narrow down your todo list.

todo [ARGS]

Returns a list of tasks in human-readable form. The optional ARGS will be passed as well so you can narrow down your todo list.

In scalar context it will return the concatenation of the tasks.

If the first argument is an array reference, it will be passed to "display_tasks" as options.

For example, to display tasks due today (with color):

    print scalar $hm->todo([color => 1], due => "today");

create_task SUMMARY, ARGS

Creates a new task with SUMMARY. You may also specify arguments such as what tags the task will have.

read_task LOCATOR

Load task LOCATOR.

update_task LOCATOR, ARGS

Update task LOCATOR with ARGS.

delete_task LOCATOR

Delete task LOCATOR.

bulk_update ARGS

Bulk-updates the given tasks. You can pass tasks in with one or more of the following:


An array reference of task hashes or locators, or a space-delimited string of locators.


An array reference or space-delimited string of task IDs.

complete_tasks TASKS

Marks the list of tasks or locators as complete.

braindump TEXT[, ARGS]

Braindumps TEXT.

Optional arguments:

tokens => string | arrayref

tokens may be used to provide default attributes to all the braindumped tasks (this is part of what the filter feature of Hiveminder's IM bot does).

returns => 'ids' | 'tasks'

Return the affected task IDs, or the tasks themselves, instead of a summary of the changes made.

upload_text TEXT

Uploads TEXT to BTDT::Action::UploadTasks.

upload_file FILENAME

Uploads FILENAME to BTDT::Action::UploadTasks.


Downloads your tasks. This also gets the metadata so that you can edit the text and upload it, and it'll make the same changes to your task list.

This does not currently accept query arguments, because Hiveminder expects a "/not/owner/me/group/personal" type argument string, when all we can produce is "owner_not => 'me', group => 'personal'"

download_file FILENAME

Downloads your tasks and puts them into FILENAME.

This does not currently accept query arguments, because Hiveminder expects a "/not/owner/me/group/personal" type argument string, when all we can produce is "owner_not => 'me', group => 'personal'"

priority (NUMBER | TASK) -> Maybe String

Returns the "word" of a priority. One of: lowest, low, normal, high, highest. If the priority is out of range, undef will be returned.


Marks the given tasks as complete.

loc2id (LOCATOR|TASK)s -> IDs

Transforms the given record locators (or tasks) to regular IDs.

id2loc IDs -> LOCATORs

Transform the given IDs into record locators.



comments_on TASK -> (String)s

Returns a list of the comments on the given task.

comment_on TASK, MESSAGE

Add a comment to TASK.

This method requires Email::Simple::Creator, which is an optional dependency of Net::Hiveminder. If Creator is unavailable, then this will throw an error.

send_feedback TEXT

Sends the given TEXT as feedback to the Hiveminder team.

get_task_history LOCATOR

Load the transaction history for task LOCATOR.

Returns an array of transactions looking like:

$VAR1 = { 'modified_at' => '2008-07-24 15:38:06', 'type' => 'update', 'id' => '1745040', 'task_id' => '433397', 'created_by' => '463' };


App::Todo, Jifty, Net::Jifty


Shawn M Moore, <sartak at>


Please report any bugs or feature requests to bug-net-hiveminder at, or through the web interface at


Copyright 2007-2009 Best Practical Solutions.

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