As you might know, I haven’t been happy with the speed and UI/UX of Asana. It’s slow, hugely reliant on mouse, has cumbersome keyboard shortcuts (tab+a, really?!) and takes a whole bunch of effort to sort through tasks. I’ve been wanting to do something about this problem. So far my idea has been to switch away from it, and bake something in-house. I spent a whole bunch of thought effort on Friday, researching various possible solutions, drawing out sketches of how we could build something, and even writing a long discuss post about how we could build such a system (and then abandoning it).
There’s a great command line tool for managing personal tasks called Taskwarrior. It’s free, open source and as one would expect from a good command line tool, fast, feature rich and can get things done.
I wanted to fashion something which would be inspired by TW, except as you build more features, it would come closer to a dirtier version of TW. And then it hit me! Why not bring Asana to TW.
So, I started working on a way by which I could do a bi-directional sync between our Asana boards and Taskwarrior. The guiding principle was that Asana would hold the main persistent state, and Taskwarrior would act as a client. You could throw one away and start a new one on another machine, and TW would sync quickly and let you get back to your tasks without much interruption. Also, any changes done on TW would automatically sync to Asana and vice-versa; as bi-directional sync suggests. No mutual sync is required between multiple TW instances (except via Asana).
So, what can you do with it (from perspective of TW, with sync to Asana):
- View all the pending and completed Asana tasks, of all the team members.
- Create new tasks
- Assign tasks to yourself.
- Assign tasks to others.
- Update task name.
- Update task tags.
- Create new tags.
- Assign project to task.
- Assign section to task.
- (TODO) Sync description.
- (TODO) Sync comments (TW has an annotate feature, which is similar to Asana’s comments).
So, most things that one needs to operate with Asana, can now be done via TW. And that’s awesome!
TW has an amazing way to assign scores to various tags, projects etc. to help you determine the next task to work on. Also, it has crazy fast and easy to use batch edit feature on tasks. All this power of TW can now be used and all updates would automatically be synced up to Asana; which means one doesn’t need to use the slow Asana interface, or even switch away from the terminal.
I just barely stopped coding on the tool, so haven’t had a chance to set up my TW with the right priority scores and other color settings, but I’ll share my settings as they get built (also, will work on documentation). Meanwhile, try it out:
Update: If anyone is interested in contributing, here’re the Github issues: https://github.com/manishrjain/asanawarrior/issues