Told you I'd be back with something. It might have taken two weeks, but today I'm announcing my first twelve-hour-hack product. It sort of happened by accident, but I think it's pretty cool.


DoIt is a nifty little Python-powered command-line tool that lets you log tasks, and then mark them complete. That simple. I find that switching contexts is the real time-waster for me, so if I can manage to keep everything in my shell--where I do 80% of my work--I can probably shave some brain-cycles of context-switching.

I've been crazy intrigued by modern tools on the shell (UNIX: It's not just for your 70-year-old CS professor anymore! Nor has it ever been, so stop it and get with the times, you functional-jquery-reactive-agile-bananacode hipster!) and was deeply inspired by Zach Holman's Key-Value Shell Datastore, Boom, when I first saw it. Unfortunately I'm bad at the whole key-value information archival thing, so even though I gave it a good try, I was unable to really get into it. I'm no Ruby expert either, so I couldn't be bothered to tweak around with his code to get what I wanted. Thankfully, I stumbled across Ben Tappin's Python port, Bam, and got hacking.

What I found, of course, was that I was trying to bend a tool that was way overpowered for my simplified usecase. What I did have at the end of this experience was a nice shell of a Python package, so +1 to me for finally understanding the construction of one. I borrowed some datastore and CLI input patterns from Ben's code and built up a really simple task manager. You'll probaby find some shortcomings of some sort in it -- and I hope you do! I'm very interested in refining this and making it a utility other people want to use, not just me.

So, without further ado, I present to you:

DoIt: stupid simple management on the shell

You can install via PIP right away like so:
pip install doit-tasks
pip install git+git://

Or, check out the repository:
GitHub: josefdlange/doit

OR, check out the PyPI page:
PyPI: doit-tasks 0.1

Discuss this post!