Taskwarrior – intelligent TODO list
taskwarrior.org
taskwarrior.org
Anyway, task-warrior has real dependencies, where a task can have multiple parents (pre-requisites) as well as children.
I use FoldingText / TaskPaper with everything in one simple markdown file.
I'm sure emacs can do something similar if you're really resistant to org-mode. If it's not built in, it seems like it would be trivial to add with elisp.
Then again, Asana has this feature
Still, if you're not an Emacs user and want a FOSS task management system this is the way to go.
Why do you think so? Would you care to elaborate?
1. Because it is text-based, its visual summaries are limited. Like, there's a calendar, and for org-habits a simple color-coded chart to show consistency, but that's about it. If you're looking a week or a month ahead to visually see how many tasks you have coming up, the org-agenda is text-based.
2. While org-mode can sync with Trello, Beeminder, and a couple other task-management systems, its integrations are pretty limited. If you want to integrate with Contacts or whatever you'll have to work a bit.
3. org-mode's part of Emacs, so you'll need to be comfortable with Emacs.
Contrast this with Sunrise Calendar. Sunrise Calendar grabs gmail messages and appointments, iCal, google calendar, and displays them all nicely.
Pluses and minuses, depends on your needs and what you like.
Org-mode can also easily become your calendar as well, which Taskwarrior cannot.
1. The workflow is key. From any document, if I want to note down a task, I use org-capture. This creates a to-do item in To-Do.org. Alternatively, I can use org-capture to create a blog post, or an item for org-drill, or whatever. In either case, I don't break my flow of thought.
org-capture to create a new task looks like the equivalent of "task add" on Taskwarrior, except you do it from anywhere inside Emacs, not from the command line.
2. The org agenda shows all upcoming scheduled tasks. I also use org-habit, which are just repeating tasks that show how often you've completed them (and can prompt for a note when you mark it as done - "30 pushups" for TODO: exercise, or whatever).
3. I can "clock in" on a task in To-Do, and when I'm done archive the task in an automatically-created archive file. I can then see total time worked on that day, broken down by task. When clocking in, org prompts me for a time estimate.
4. Because all tasks are just bullet-points, I can nest sub-tasks, and expand or collapse them, like the app Workflowy. The top-level task can show percent or fraction of sub-tasks completed.
5. Best of all, at the end of the day, and despite all this manipulation, it's just text. I can edit time spent on a task, or whatever. There's no hidden magic.
This workflow is pretty GTD-ish, because it helps you get everything out of your head on the fly, and break things down into sub-tasks. It also works well with SRS and incremental reading. I see myself sticking with this, but I've used other systems productively, so whatever floats your boat.
At work, we use Jira for task management. My philosophy is that taskwarrior is what I use to track things. Jira is what I use so that my team members and management can track things. So when a bit of work comes my way, whether via slack, email, or other methods, I add that to taskwarrior. I then use the tool bugwarrior to pull down my jira tasks (every 15 minutes or on demand). If I end up entering a TW task in Jira, I mark the TW version done. I can use TW itself to set task priority, assign tags, or move into "projects" according to my view of the work needing accomplished.
I did look into using the TW hooks and a python jira library to manipulate jira tasks using the task command. It was technically doable, but I feel I'd always be fiddling with the logical side (each jira project has different workflows for moving a task through statuses, some requiring acceptance criteria at the end). Instead, I either use jira-cli, or just edit the task in jira.
That would be `brew install task`. I'm guessing their thinking is that brew isn't part of OS X, though this is silly IMO. Homebrew is basically a requirement if you own a Mac and want to use the command line at all.
`brew install task` is what you want for the regular Taskwarrior.
However, it is available on F-Droid[0]. I wonder why Taskwarrior doesn't promote this, with the parent project being open source and F-Droid specifically for such Android projects.
[0] https://f-droid.org/repository/browse/?fdfilter=taskwarrior&...
They've created a weird extension to save pages into Inbox, too:
https://chrome.google.com/webstore/detail/inbox-by-gmail/gkl...
In the Quick Demonstration[0] it seems that deleting will re-number the items but doing
$ task 1 done
$ task 2 done
and then `task list` should actually lead to 1 Buy eggs
shouldn't it?or then
3 Bake cake
if IDs are keptThis (IMHO) terrible design is what will keep me away from task warrior.
As you discovered, the id associations are based on what the user last observed when running task list, which may feel like an unnecessary complexity. But consider the alternative. A user runs task list and wants to mark as done multiple tasks. After marking the first task as done, they would need to start calculating offsets for the next task. After doing that a few times, your task list might suddenly have multiple gaps in it, which would make it unnecessarily difficult to precisely calculate what the current id is for an item that was initially in the middle of your list. Maybe you deleted 4 items before it and 6 items after it. So, 10 deletions in, how many seconds is it going to take for you to figure out precisely what id you need to be deleting next?
It makes sense for the id associations to correspond to those last observed. A user is likely to run task list right before deleting anything and then run a series of done commands. Thus, this feature is a far simpler and quite essential solution to the problem I described above. The alternatives would be to keep track of exactly how you're mutating the task list, or run task list between every few deletions to avoid making a mistake.
> This (IMHO) terrible design is what will keep me away from task warrior.
I could understand not wanting to give it a try due to lack of this feature. But I think your conclusion is greatly misguided.
Any file with .tasks turns into a todo list with keyboard shortcuts to create/complete tasks. Which is useful when adding them to projects on github.
I don't bother with trying to have one sync with mobile anymore. Simpler the better.
* I still need to try out org-mode
https://github.com/prophittcorey/t.rb
https://github.com/prophittcorey/vim-t
I did it for the same reasons-- simpler is better, focus on finishing tasks and not organizing them. The more I can stay inside Vim and not out of it, the better!
I didn't add any history support because all of the tasks are stored in .tasks.json, if you want history, just check it into git and bam, history.
I've tried org mode, but I just don't get on with the emacs way of working. TW, as a simple command line tool, integrates well with scripts and other apps, and a Ubersicht plugin displays the task list on my OS X desktop.
One thing that does drive me nuts, though, is its habit of changing task IDs. I know why it works like that, but it makes it harder to work with.
I'm currently thinking maybe I should encrypt all my notes and make the password unavailable for me for the next year or so whilst I try starting every day with a blank page.
My personal life outside mostly consists of eating, sleeping, having fun, and the occasional visit to the dentist, so I don't need a computer program to manage it.
Procrastination trivially circumvents any system by simply ignoring it, and it's possible to go overboard with micromanaging yourself to the extent that you spend more time fiddling with your "Getting Things Done" setup than you do actually doing things...
But for example, with the very small business I own with my brother, setting up a Trello board and using it to keep track of various bureaucratic errands very clearly improved our efficiency.
But your own issue sounds like it is more rooted in procrastination. "The NOW habit" by Niel Fiore might help you out.
I recently saw a presentation by the head of the GTD consultancy connected with the book anf he says he uses Omnifocus to implement GTD. I have tried tons of to do apps over the years and nothing beats Omnifocus.
Absolutely not. I will not get sucked into their lock in again. I own several macs but I constantly switch between iOS and Android and, for the past year, I've been getting back into doing development on Windows again. I had most of my life in Omnifocus at one point but what good is it if I can't use it on my windows computer or my phone?
Focus GTD is awful. It's very buggy and relies on the Omni folks not radically changing or introducing something. The last time I used Focus GTD it actually lost some of my data during a sync. Sure it's probably better now but I'll never try it again.
I think it's a mistake to pick a system that forces you to only use a single platform. GTD helps people run their entire lives depending on how much you use it so I think it's important you pick a system that is flexible enough to come with you no matter what.
Though I'll be honest there are not a lot of good alternatives out there (especially if you want a dedicated windows app).
In the past, I would do fine without a todo manager and primarily used my mail inbox and text files to keep track of things. As the number of responsibilities and hard deadlines grew over the years, it simply became impossible to keep track of everything. Moreover, I would realize that I forgot something urgent when at home, etc.
I decided that it's not doable anymore, tried some todo managers and settled on OmniFocus. Now I just add tasks with the appropriate due dates or defer dates when necessary and forget about them. It gives peace of mind and I rarely miss deadlines ;). The integration with iCal is great - the Forecast gives a nice overview of what I should definitely do on a day.
(On-topic: I did once try TaskWarrior and the vim plugin, but I like OF's integration, syncing support and ease of use.)
This is inherently a graphical data structure. PERT charts and GANTT charts do this, so does graphviz. Most todo apps do not. Omnifocus does not. Weirdly, most bubble-graph software does not - you can grab a bubble, shake it, and realize it's just a strict hierarchical tree where a bubble can have multiple children, but no bubble has multiple parents. Org-mode kind of has it through tags but I hear it's awkward. taskwarrior does have it, but it's hard to work without creating a bunch of complicated shell aliases (which is doable).
If you find that your TODO list is expanding, you're not doing it right. Reset priorities, keep the top 5 and just fucking delete the rest.
I personally only focus on the top 3 TODO items and just ignore/delete the rest. Seriously, you might think that an item at number 7 is too important to forget so you might be tempted to just let it lay there. But as all processes managing a TODO list requires discipline too. The key is to set priorities. A TODO list without priorities is meaningless.
For me, I make a note each morning of everything I want to get done that day. I write up notes as I plan out my work, and design my solutions, so I can focus on just one piece at a time, and make a note of other details as I think of them. Over the course of the day, I knock things off the list. And if things are leftover that are large enough to warrant it, I document them in the "real" tracking system we use at my company.
That being said, you should do what works for you. If to do lists are not helping you, by all means, don't use them.
The first header is "calendar". For each line below it, there is a date and the name of an important non-recurring meeting to attend.
The second header is "schedule". For each line below it, there is a start clock time, a stop clock time, and a 1-2 word project name.
The third header is "projects". There are 1-2 word subheaders beneath this of project names. Under each project name, there is an independent, non-heirarchical todo list. Projects are sorted alphabetically, not by priority.
It works for me because I don't bother generating a combined task list sorted by priority, and don't bother listing more than 1-5 tasks per project.
If I need to prioritize a project, I add an additional block of time via 1 line in the "schedule" section. I don't bother changing the order or sorting of items.
The main benefit I get out of it is faster context switching, so if I am working on 10+ projects, or communicating with several different clients simultaneously, I can quickly pull up a single file to check the state of every project.
I use a separate journalling tool for brainstorming, and git+email to more exhaustively list tasks for individual projects.
My central TODO file is more of global brief and status report to keep things moving.
I noticed the same with LeechBlock (a browser extensions that blocks a list of webpages at times specified by the user) I disabled it because it annoyed me when I really needed to visit a site that was blocked. But thinking about what site I wanted to block at what specific times has helped me to understand how I want to use the web. LeechBlock made me think about when it would be ok to browse news websites or how many hours a week of "wasting" time on reddit or hn is acceptable for me.