todo.pl (or: How I learned to stop worrying and love the command line)

I’ve got a dirty little secret. I don’t like using a web browser that much.  For much of my life, I’ve just made my todo lists in a text editor.  (I knew Hiveminder was ready for us to release when I started voluntarily using it on a day to day basis, rather than just keeping a text file open in a window.)

A few summers ago at O’Reilly’s Emerging Technologies Conference, Danny O’Brien gave a session called Life Hacks: Tech Secrets of Overprolific Alpha Geeks. One of the things that it seemed all the super-productive uber-hackers did was to track their todo lists in simple text files.  Since long before we launched, Hiveminder’s "braindump" and "edit as textfile" features have made it pretty easy for me to work as if I’m still living in a textfile.
, the editor of lifehacker.com, launched todotxt.com, a site dedicated to command line tools and a simple text format to track your todo list.  One of the "killer apps" for todo.txt lovers has been todo.sh, a simple command line program for managing your todo list.  When we saw it, we fell in love.

We’re proud to present the first testing version of todo.pl, a Hiveminder client that works like todo.sh does.

You can download it at: http://search.cpan.org/dist/App-Todo/ or just install it via CPAN by running: cpan -i App::Todo (probably as root).

To get started, you’ll need a (free) Hiveminder account. If you’re moving over from todo.sh, you can upload your todo.txt and we’ll create Hiveminder tasks for you.

Some usage samples:

      todo.pl add "Do the dishes [housework]"

            Add a task to your todo list.

      todo.pl list
            List all tasks in your todo list.

      todo.pl –tag home –tag othertag –group personal list
            List all personal tasks (not in a group with tags ‘home’ and ‘othertag’).

      todo.pl –tag cli –group hiveminders edit 3G Implement todo.pl
            Move task 3G into the hiveminders group, set its tags to
            "cli", and change the summary.

      todo.pl –tag "" 4J
            Delete all tags from task 4J

      todo.pl tag 4J home
            Add the tag “home” to task 4J


Comments

15 responses to “todo.pl (or: How I learned to stop worrying and love the command line)”

  1. You need to tidy up the prompts for email / password – it’s very confusing – otherwise this rocks!

  2. Lorance Stinson Avatar
    Lorance Stinson

    The prompts for the email and password do not appear because of buffering. Adding ‘$| = 1;’ without the quotes to line 171 just before ‘while (1) {‘ should solve this.

  3. Lorance Stinson Avatar
    Lorance Stinson

    I was messing around with the source seeing how it works and adding a few features I would like to have. I though it would be cool to look up a particular task if given the ID, perhaps ‘todo.pl #ID’ or ‘todo.pl lookup ID’ would work. I tried to add this myself except I can not find a way to download a single task given it’s ID. Did I overlook something or does the yaml service not provide this?

  4. For right now, you can search on a task seach of id/k2fWe’re still working on getting the real webservices rolled out.

  5. Nathan Anderson Avatar
    Nathan Anderson

    This is great! Now how about a desktop client that will sync with the Hiveminder website? That would make my year.

  6. Nathan Anderson Avatar
    Nathan Anderson

    It looks like the example above:todo.pl add “Do the dishes [housework]”
    does not tag the task with ‘housework’ but rather includes it in the task text. It should be:
    todo.pl –tag housework add “Do the dishes”

  7. I’ve got add/del/tag implemented in todo.py (and I’ve split the config file and protocol handling into their own objects – the perl version being global-heavy makes it hard to reuse from code 🙂 Anyway, I’ll continue fleshing out verbs, but what I’d actually like to have next is and-then and but-first protocol messages… they can just take a pair of task_ids…(eventually I’d like DownloadTasks to include the next task so I can walk the graph, but that’s less important in practice then being able to push things around.)

  8. It not easy for me to make this perl script run, even after I install these 3 .pm, I have to give up.Can you please make a shell script that I can run it as simple as possible?
    Thanks a lot.

  9. Wish list:a command tool to process todo.txt as handy as Todo.sh on http://todotxt.com
    (no extra install tasks to run … etc.)
    I’m a huge fan of todo.txt

  10. What would be pretty neat would be to integrate this approach with NextAction, which provides a lean, GTD style experience using a standalone JavaScript and HTML page (no web server). See http://trimpath.com/project/wiki/NextAction

  11. Jesse Vincent Avatar
    Jesse Vincent

    We’re going to be rolling out more of the History view. Very high on the list is making it accessible from within a group. I’d _like_ it to be available for any search, but there are some obnoxious technical reasons why that’s a bit harder than I’d like it to be.

  12. Josiah Avatar

    I’m trying this out because my connection to both jabber.org and hiveminder’s jabber server seems to be failing.It would be nice if the script checked for the dependencies and informed if they were missing, or even offered to pick them up using CPAN. Thanks to Edward V. for letting us know what the depends were. Before I read that, all I got was nothing.
    Thanks

  13. Michael Wolf Avatar
    Michael Wolf

    I don’t see how to get extra fields in the output. Specifically, I’d like to keep a shopping list in the notes section of an item, then issue this command to see what I need at the grocery store, hardware store, and various other stores:todo –tag shopping –show-me-the-notes-also
    What syntax am I missing for the final item?

  14. David Picella Avatar
    David Picella

    Installed OK with OpenSuse 10.3. Where should I specify $EDITOR for braindump and feedback?Thanks!

  15. David Picella Avatar
    David Picella

    Update!I added
    $ENV{‘EDITOR’} = ‘kwrite’;
    to line 3 of todo.pl and it works fantastic!
    I normally like ‘vi’ but in this case ‘kwrite’ is the way to go!

Discover more from Request Tracker

Subscribe now to keep reading and get access to the full archive.

Continue reading