Three years ago today I released my first shell script (that was more than a dozen lines). The script,
todo.sh, made adding items to a
todo.txt file and marking them "done" a quick, command-line operation. Back then I was blustering on about how the command line was making a comeback, while Unix beards rolled their eyes and Windows users wondered what the heck I was talking about. (Some Mac nerds got it, though.)
Today the Todo.txt Command Line Interface (CLI) is still a crazy-active project, with over 500 people on the mailing list, a three-month-old GitHub code repository with 15 forks, regression tests, documentation, add-ons, and offshoots (like an iPhone app under development, a Windows GUI, and IM bots).
Given a long lack of commitment from the original author, the activity around the project was unlikely. Since I was so busy at Lifehacker, I'd dropped off the project mailing list for about two years between launch and this past January. But even without a proper code repository or organizer, coders kept improving the script and posting their patches. Since todo.sh was one of the things I wanted to get back to once I freed up my time, this past February I got back on the mailing list and got back to work. To make collaboration easier, we set up the GitHub project, and from there things sped ahead.
In fact, this past March was the second most-active month on the mailing list in almost three years; the first being the second month it was available.
While it's gratifying that other people are using something I started (however awkwardly), what's most remarkable to me about this little script is what a learning experience it's been. At this point most of the code is beyond my meager bash-scripting skills, but thanks to my knowledgeable contributors, I've learned how to use git and GitHub, and how to collaborate on an open source project with volunteer enthusiasts all over the world with source control, a mailing list, and a wiki. It blows my mind that this is how OSS projects like Linux got built, but at the same time it makes a whole lot of sense. At three years old, Todo.txt CLI is still a very niche thing, but it's also bigger, better, and more robust than I would've even imagined it could have been back 2006. Special thanks to all the coders who added to the project before GitHub was around to record the credit they deserve, and also to sit, doegox, edgewood, harding, FND, atduskgreg and the rest of the project collaborators for making it happen. Happy birthday, Todo.txt'ers.
If you haven't checked out the Todo.txt CLI, but you're curious, now's the time to do it, especially if you're good with shell scripts. Today I published version 2.4, which offers support for add-ons, custom list filters, and several bug fixes. Here's the full changelog.
For a basic demo of what Todo.txt CLI does, check out the screencast of it in action.