In another comment thread on Taskwarrior, someone more intelligent than me suggested just using plain dirs and files, one file per task. Then you get all of Unix for free, with any metadata you want as part of the filename or contents. I'm a former org-mode user who now just uses a paper book, but if I still wanted to use a computer, dirs+files would be hard to beat. One or more folders for todo, one or more folders for done, stick it all in Dropbox.
One thing about unix is that it makes graphical data structures kind of hard. You can use soft-links, but is there a straightforward way in unix to see multiple parent directories, especially if these "parent" directories might be on multiple levels of the filesystem?
Anyway, task-warrior has real dependencies, where a task can have multiple parents (pre-requisites) as well as children.
Good q. That scale of complexity sounds to me personally more like project management than a to-do list, and I imagine Taskwarrior or another purpose-built tool would be a better fit for it. As tedmiston points out, if your needs are much more elaborate than "buy_eggs" or "send_report--DUE-MAY17" you'd end up with scripts and aliases and pretty soon you'd have reimplemented a custom Taskwarrior. I don't think I ever find myself worrying about dependencies and prereq's (which is why I use a pen), so the extreme simplicity of it appeals to me.
In Vim, you can place the cursor on a file name and press "gf" to open that file in a buffer. So, have a directory with your TODO files, one task per file. Then, inside the file put stuff like due date and description, then for dependencies or subtasks just write in the filenames for those tasks. They can either be relative paths, or you can `:set path=/path/to/todos` and just write the filenames. For an overview of everything, you can also just open the directory.
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.
It's good for a basic flow but you write scripts to do everything... like due dates (notifications) and recurring events. Also, no mobile use -- Dropbox sync gives you viewing but no creation. It's a great idea for simplicity, but it just breaks down quickly.
I use FoldingText / TaskPaper with everything in one simple markdown file.
Dropbox does transparent updates between my computer's and phone, all I have to do is remember to save. With git I need to remember to pull before Editting, and commit+push after changing. As I only use one machine at a time, merging isn't really useful.
I have written scripts to automate commits. What I'd really like is to keep a history of every modification I make. Having that history already in a git repo just seems like bonus.
Whatever tool chain you want, that's part of the attractiveness of the idea. I doubt I'd ever do much but touch, ls, mv, cat, and find, and I doubt I'd need version control.
A little off-topic but this [1] screenshot from their homepage really shows how things are today with OS X running Windows 10 in a VM which is in turn running Bash on Ubuntu on Windows. Haha
If you are getting started with taskwarrior, I recommend starting out with a very very minimal usage of the features, and then gradually add in the ones you like/need. Otherwise, like many cool advanced tools (vim, emacs...) you might get overwhelmed and abandon it.
Because a couple people here have expressed curiosity, here's what I like about org-mode.
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.
It allows you to implement GTD or pomodoro. I admit it will take a few hours to do or get a hang of, but it's among one of the goals of Taskwarrior to stay methodology agnostic.
I too would like to hear about how org-mode is an effective task manager. On its face, it seems like grandparent is saying "This doesn't compare with the power of Markdown for managing to-dos." One is a tool, the other is a formatting language.
If you're implying that TaskWarrior is a tool and that org-mode is a formatting language (or file format), then you're way off to begin with. Org-mode does have a specific format for its files. But much of its power derives from the tools it incorporates. E.g., the org-mode Agenda functionality enables complex searches over multiple files and collects and orders the results in a single buffer, and allows users to perform operations on the results (i.e., on the original buffers containing the results) directly from the Agenda buffer. There's much, much, more. Org-mode is primarily a tool, not a file format. If you want an overview of some of its functionality, you can take a look here:
http://doc.norang.ca/org-mode.html
Org-mode has embraced the emacs philosophy with respect to workflow management. It is a document formatting language which has been co-opted into doing pretty much all aspects of workflow management -- tasks, reminders, calendars, etc. I personally don't think it does a very good job, but some people swear by it.
I posted above why I like Org-Mode. Here are a few things it doesn't do well.
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.
I'm not the most familiar with either, but one of the simplest differences is that org-mode allows you to have entries longer than single lines and have it formatted. This is immensely more helpful when implementing GTD IMO.
Org-mode can also easily become your calendar as well, which Taskwarrior cannot.
I tried using Taskwarrior with sync to Mirakel last year, as a free replacement once my Todoist trial ended. The sync didn't function correctly, and notifications weren't reliable. Ended up paying for Todoist. It's a real shame, because I much prefer going with free & open source solutions whenever possible.
Hm. Mirakel 3.0 apparently doesn’t work, but 2.8.2 is still on F-Droid. Compared to the "Taskwarrior" app there, it seems much more polished, with the Taskwarrior app, I have a hard time figuring out how to e.g. add subtasks to a problem (or even hide existing subtasks from cluttering everything). Do you have an even better alternative?
For all plain-text file lovers out there, there's actually quite a good tool that combines both the power of plain text files (i.e. Markdown) and taskwarrior called taskwiki [1]. Provides the best of the both worlds to me, tasks in plain text files synced to TW -> synced to Taskserver -> synced to mobile app. I can also use all the power of Taskwarrior directly on the command line.
I use this pretty extensively for work. I don't really need to keep a todo list for home things, or if I do, pen and paper is the most ideal.
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.
So, I went to the downloads page to see how I can get it on my laptop. I have a MacBook Pro, so I scroll down looking to see if there's anything for OSX's package managers...and there's 3 different Homebrew packages listed, each with a different name. Do they conflict? Are they all needed? Why isn't there just a plain `brew install taskwarrior`? It's a little off-putting.
>Why isn't there just a plain `brew install task warrior`?
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.
On the official project website I could only find this repository link and the link to Google Play Store for the pre-built Android binary.
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.
This same thing bothered me, so I installed task warrior to try it out. It appears that "task list" actually has a side effect of re-numbering the IDs. So the example is actually correct behavior, but if you issue an extra "task list" command in between "task 1 done" and "task 2 done" then yes, you would the result you expected.
This (IMHO) terrible design is what will keep me away from task warrior.
Why is this "terrible design"? I'm not a Taskwarrior user, but I did read through their introduction and didn't notice this perhaps odd behavior in the example until reading this comment thread. Looking at it again, I concluded that either the id associations last observed by the user are the ones that get used, or that the example was simply incorrect.
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.
I did try it -- and thats what led to my decision not to use it. A reasonable solution to the problem (again IMHO) would be to use permanent IDs and never renumber them. I am comfortable marking task 1654 done. Maybe a manual command you run to renumber them if you're tired of them being high.
I am not 100% sure how Taskwarrior does it, but when I built my own dead simple task manager (for people that want to finish tasks and not organize them), I gave the tasks random unique IDs.
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 started using TW and find it great for the simple to-do list stuff I need, with enough control over dependencies and scheduling.
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.
An impressive tool and website. Like others in this thread I use a plain txt file + git to manage my todos. Simplicity trumps any other feature for me. Unix tools are a bonus.
I use taskwarrior with bugwarrior [1] to automatically maintain a list of pending bugs/issues and pull requests assigned to me. The initial setup takes a couple hours, but it's a great way to track stuff spread across dozens of locations.
I've written about 5 programs about 30% as functional as this... I can't believe I didn't know about it. Been using google keep for a while, but going to try and live with this for a bit.
A bit unrelated, but are people actually getting anything out of personal task managers and ToDo lists?
Supposedly they are to help me do the right thing at the right time and not worry too much. I've started to believe part one of that problem manages itself more or less and part two just get's worse and worse by trying to be organized with projects, lables, calendars, ideas and ambitions.
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.
I use a single flat text file + VIM for all personal todos.
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.
They don't have any causal power to make you actually do the things you set out to or should do, but they can be a useful way to organize and keep track of your tasks and deadlines if you have more than a handful of them.
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.
I am without exaggeration an order of magnitude more productive in my life and in my work because of proper task management. And because I use a comprehensive system like GTD, I typically don't let things slip through the cracks either. Beyond testimonials, the psychology is pretty clear: the human mind is not built to efficiently keep track of responsibilities and commitments in a way that keeps us maximally productive. Externalizing parts of that system have clear psychological benefit.
But your own issue sounds like it is more rooted in procrastination. "The NOW habit" by Niel Fiore might help you out.
Not necessarily. It's hard to put into words but to make it short: To-do lists only work for me if I write down an item while having the intention of actually doing it asap. If that is the case then specific software that, for instance, allows tagging can be useful. But again, tags wouldn't be useful for the sake of it or to have some sort of reference. It is rather intentionally choosing tags that helps my brain to structure upcoming work and thus helps me getting things done.
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.
If you really want to implement the GTD system the right way, pay the money for Omnificus. For your phone, use the Omnifocus IOS app or the Focus GTD app on Android. Integrate it with MailPlane, and you've got a sweet task tracking system that actually works and can link back to your email inbox.
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).
Abuse of todo lists ultimately leads people to focus on doing even more urgent-but-not-important tasks. To get to important-but-not-urgent, a good task app should have some concept of planning, or identifying action items from first principles.
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).
Lists of discrete tasks minimize interruptions because you add the item when it bothers you, and then take care of all of them when you're not in the middle of something else. Without the list, you'd likely forget something and be bothered by it again. Actual to-do software is just structured text which some people prefer and some don't, similar to IDEs, MS Word, etc.
I very much prefer organization systems that help me prioritize. I think a kanban, with its work-in-progress limits, is a much better task list. One can achieve such a thing quite easily in org-mode.
I use them for continuity. I'll see something that annoys me or needs to get done. Anything from needing to add a window manager key bind to a bug that needs to be fixed. I'll add it to my list. Then I work on the big and pressing tasks of the day, but when I have 10 minutes I can go back through the list and pick a task and knock it out. Anything I'm working on at close of business gets added to the top of the list so I don't forget about it when I start tomorrow. I don't really prioritize or sort just track things so I can think about other things.
A bit unrelated, but are people actually getting anything out of personal task managers and ToDo lists? Supposedly they are to help me do the right thing at the right time and not worry too much.
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.)
I get a ton out of my to do lists. I could not function without them. But I do not use fancy tools. I use a text editor, and always have my todo file open.
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.
Our memory is limited. Besides why clutter it? Use an external storage facility to track what needs to get done. Also, don't clutter it. Set priorities and limit your TODO list to a max of 5.
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.
I think that happens when the org system is too complicated. I use a single file txt TODO list with three sections: red, yellow, and green. Each section contains a prioritized list of tasks. I delete the line when done and push to git. The day usually starts with 5 minutes looking over the tasks and that's about it. Dated things go to the calendar. Inbox zero as much as possible.
Personal task managers and todo lists are by themselves not helpful. You need to have a workflow in place (morning routine, regular schedule, whatever). Todo lists are one of the tools that help you to execute your workflow.
Just out of curiosity, who really uses this thing day-to-day? And why???? I can't even be disciplined enough to use my to-doist app on phone. No!!!!!!!
I do. I've got the server counterpart set up on a Linode and sync my task lists across all devices. That's quite nifty because I usually think of things that I should be doing while I'm on the go. At the moment I need this kind of organization to get anything done, and out of all the solutions I've tried this one is by far the best. The feature I use the most is probably the scheduling feature. After dinner I'll sit down for a moment and contemplate which of the tasks I've still got open I will do the next day and schedule them accordingly. The next morning I do a `scheduled:today` query and I've basically got half the day laid out in front of me already. The best part of it though is that by running my own task server (at no additional cost because the same box doubles as my mail server), all the data belongs to me instead of relying on a third party.