Be tenacious, like a bulldog, on your task list.
Bulldog is a single-page HTML view of your todo.txt file. Use the command line interface for capture, editing, and completing tasks. But if you want something a little bit more "app-y" for managing your tasks, Bulldog is for you.
- Safari 5+
- Chrome 9+
- Firefox - unsupported at this time (waiting on a bug fix)
- Others? Let us know
Bulldog is released as a single HTML file via the Downloads page, called
index.html, that needs to live in the same directory as your
You will also need to set up a web server to point to this directory or configure your browser to allow AJAX requests from a
file:// URL. Bulldog makes an AJAX request to read in
This isn't very user-friendly at this point in time.
For these examples, I keep my
todo.txt file (and all of my Todo.txt stuff) in
Via HTTP and a Local Web Server
Using Apache on MacOS
These steps work on MacOS 10.7 (Lion), serving Bulldog via the built-in web server (Apache 2). Please look up the equivalent steps for your operating system and web server.
- Make a symlink from Apache's directory to your ToDo.txt directory:
ln -s /Users/dwf/Dropbox/todo /Library/WebServer/Documents/todo
- Restart Apache by visiting the
System Preferences, and turning
Web Sharingoff (if it's on) and then on
- Copy Bulldog's
Using an Ad-hoc Web Server (Multiplatform)
An ad-hoc web server can be run with these steps if Python is installed (tested only on Linux but should work in other platforms):
- Cd into the directory containing
python -m SimpleHTTPServer
Via the Local File Protocol
With some tweaking of your browser settings,
file://path/to/index.html will work
- Safari: no change needed
- Firefox: enable "cross domain AJAX requests" via config settings; this differs across versions of Firefox, so you'll need to Google it
- Chrome/Chromium: launch the executable with the
Bulldog is a read-only view of your tasks. It is not meant as a replacement for the command line interface. Use the CLI for operations on tasks and then view the new state with Bulldog.
When you open Bulldog, you see all of your tasks in the pane on the right. You should see each task's number, the action of the task, as well as its context and project. Contexts are set with the '@' syntax, and Projects with the '+' syntax.
The left column defaults to showing you all of your projects, including the 'All' project that shows all tasks, sorted by task number. Choosing a project will show all tasks for that project, sorted by priority. (No priority is lower than
If you've updated or added any tasks via the command line, just reload your browser to refresh the tasks.
From the left column you can also choose to group tasks by context, or by next actions.
Todo.txt has no built-in concept of Getting Things Done's next actions. So we added it. Setting a task to priority
N makes it a next action - after all, why would you be using that many priorities? Next actions are labeled as such and are considered higher priority than
The next actions tab - labeled ➔ - shows only your next actions, grouped by context.
- Make it easier to install
- Support Dropbox installation (hosting via Dropbox's web UI, todo.txt on Dropbox)
- Editing tasks & storing back to
todo.txt- this would require a server, which may be out of scope
- Show "DONE" actions, listed by interesting groupings
Bulldog is a single-page HTML application. It uses jQuery and Backbone.js (which means it also uses Underscore.js) to read in the todo.txt file via AJAX, build out local data objects (Backbone models & collections), and then display the tasks and UI.
The base CSS and navigation UI are from Twitter's Bootstrap.
I welcome contributions and suggestions. Any code changes should include tests - naturally, using Jasmine.
Bulldog is © Infews LLC and is provided under the MIT License.