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)”
You need to tidy up the prompts for email / password – it’s very confusing – otherwise this rocks!
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.
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?
For right now, you can search on a task seach of id/k2fWe’re still working on getting the real webservices rolled out.
This is great! Now how about a desktop client that will sync with the Hiveminder website? That would make my year.
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”
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.)
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.
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
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
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.
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
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?
Installed OK with OpenSuse 10.3. Where should I specify $EDITOR for braindump and feedback?Thanks!
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!