Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Visualizes dependencies between TaskWarrior tasks
Latest commit b4c9b4d @nerab Currency update for README

TaskWarrior Dependency Visualization

Visualizes dependencies between TaskWarrior tasks.

Build Status Gem Version


Given a set of interdependent tasks described in the TaskWarrior tutorial, the tasks are

  1. Exported from TaskWarrior as JSON, then
  2. Piped into twdeps, and finally
  3. The output is directed to a PNG file.



For the impatient: The JSON export is also available as party.json. If you download it, the command

$ twdeps -f png party.json > party.png

will generate party.png in the current directory.


$ gem install twdeps


# Create a dependency graph as PNG and pipe it to a file
# See [Limitations](Limitations) below for why we need the extra task parms
task export rc.json.array=on rc.verbose=nothing | twdeps > deps.png

# Same but specify output format
task export rc.json.array=on rc.verbose=nothing | twdeps --format svg > deps.svg

# Create a graph from a previously exported file
task export rc.json.array=on rc.verbose=nothing > tasks.json
cat tasks.json | twdeps > deps.png

# Display graph in browser without creating an intermediate file
# Requires bcat to be installed
task export rc.json.array=on rc.verbose=nothing | twdeps --format svg | bcat


The graph is generated with ruby-graphviz, which in turn requires a local Graphviz installation (e.g. brew install graphviz on a Mac or sudo apt-get install graphviz on Ubuntu Linux).

bcat is required for piping into a browser.


Due to two bugs in its JSON export, TaskWarrior versions before 2.1 need the additional command line options rc.json.array=on and rc.verbose=nothing.


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
Something went wrong with that request. Please try again.