Making Two Text-File-Based iOS Todo Apps That Sync With Dropbox Work Together: Listacular and TaskAgent

Tweet This Post

After the announcement that development of TaskPaper for iOS is being halted, I've been looking for alternative todo apps that are based on the reading and manipulation of text files and that sync with Dropbox. I've found three so far: Listacular, TaskAgent, and Todo.txt.

Todo.txt is a little too command-line Terminal-y for me, but the other two are pretty user-friendly. Both support dragging of tasks and swiping or tapping to denote completion. Also, both share a similar "grammar" such that one can have both apps read text files from the same location in Dropbox.

What Listacular and TaskAgent Have in Common

In both apps, in the actual text files a - is used to denote an open task, and an x is used to denote a completed task. However, TaskAgent requires that the very first character in a line contains - or x. Listacular is built to support the reading of TaskPaper files, which means that it will read a line that starts with a tab as an open task that is subordinate to either a project or a higher-order task. For both apps to successfully read tasks out of the same text file, one must avoid the use of tabs, which essentially means you cannot format the text file as an outline.

Listacular has many other functions that are not supported by TaskAgent.

  • Listacular lets you start a line with a * to denote a bullet point -- TaskAgent will add a - before it, thus de-rendering that formatting in Listacular.

  • Listacular supports TaskPaper-like due dates formatted as follows: @due(2014-01-07 14:00) (which can be interpreted as, "This task is due January 7, 2014 at 2pm.") TaskAgent will insert a space after the tag and before the parens, because anything included between parens is read as a note. If I create a task in Listacular like pay mortgage @due(2014-02-01 10:00) TaskAgent will make the task pay mortgage @due and the note accompanying the task 2014-02-01 10:00. Because of the inconsistency between these two apps, TaskPaper-like due dates cannot be supported if both apps read the same text file.

    • As an aside, Listacular also uses @remind to schedule an alert notification. When the alert is acknowledged, it turns @remind into @reminded.

Strengths of TaskAgent

As of this writing, TaskAgent is the only of these two apps that supports URL schemes and x-callback-url support. However, the developer of Listacular has mentioned on Twitter that his app will soon support URL schemes. With TaskAgent, you can open or create a list, and add a task with an optional note and/or done status using an app like Launch Center Pro or Drafts.

TaskAgent has an Action menu for individual tasks. If you know the URL scheme of an app that you would like to send the task to, you can include the following blocks: [task-title][task-note][task-done]. After reading a tweet by @benwhiting, I developed the following Action, which will open an URL in the note field in Safari (requires Launch Center Pro):


TaskAgent also has a search function (requires In-App Purchase) that supports #tags.

Strengths of Listacular

Listacular has a "home page" that shows all due dates in priority order, combining all lists. And as I wrote above, it supports reminders and alerts, and is compatible with TaskPaper files. (Its only drawback with regard to TaskPaper due dates is that if the value does not include a time as well as a date, Listacular will remove the @due tag entirely -- so @due(2014-01-07) is unsupported.)

How to Make Them Work Together

TaskAgent creates a Dropbox folder at /Apps/TaskAgent. You can read any Dropbox folder with Listacular. I am currently having Listacular point at /Apps/TaskAgent. TaskAgent only reads text files appended with .txt, whereas Listacular will read files created in TaskPaper, such as those that are appended with .taskpaper. TaskAgent does not recognize these files, which means that it won't touch them. If there are functions of Listacular that are important to me, I can create a text file ending in .taskpaper, so that I can do things like schedule reminders and have indented tasks.

Listacular does not do anything special with parens that are not associated with a tag (like @due and other TaskPaper-like tags that support values). However, it doesn't change them. So if I create a task with a note in TaskAgent (like task="Buy veggies" and note="kale, cauliflower"), in Listacular it will just read as Buy veggies (kale, cauliflower).

In my experience so far, Listacular will remove the # if I start a task with a tag, but if I put the tag anywhere else in the task, it will leave it alone. As I wrote above, you can use TaskAgent search to pull up all tasks associated with a tag.

Here is one line in a text file which can easily be read by both apps:

- buy vinyl floor protection that comes on a roll #homeDepot (shop supplies or garage stuff)

Which One Is Better?

I don't know yet, which is why I'm using both on (mostly) the same to-do lists. I love that TaskAgent has URL scheme and Action support. Also, TaskAgent just looks nicer and is more iOS7y (for example, swipe left to right to go to the home page). I love that Listacular supports due dates and alerts and that it works (mostly) well with TaskPaper. Please comment below or hit me up on Twitter with your assessment.

Last built: Tue, Mar 31, 2015 at 12:50 PM

By Jeffrey Kishner, Tuesday, January 7, 2014 at 10:07 AM.