TaskWarrior Dependency Visualization

Visualizes dependencies between TaskWarrior tasks.

Build Status Gem Version

Example

Given a set of interdependent tasks, they are

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

Result:

party

For the impatient: The JSON export is also available as party.json. Once you installed twdeps, the command

$ curl https://raw.githubusercontent.com/nerab/twdeps/master/test/fixtures/party.json | twdeps -f png > party.png

will generate party.png in the current directory. If you don't want to download the JSON file, try the local oen that comes with twdeps:

$ twdeps $(dirname $(gem which twdeps))/../test/fixtures/party.json -f png > party.png

Installation

$ gem install twdeps

Usage

  • Create a dependency graph as PNG and pipe it to a file:
  task export | twdeps > deps.png

See Limitations below for why we need the extra task parms

  • Same but specify output format
  task export | twdeps --format svg > deps.svg
  • Create a graph from a previously exported file
  task export > tasks.json
  cat tasks.json | twdeps > deps.png
  • Display graph in browser without creating an intermediate file
  task export | twdeps --format svg | bcat

bcat is required for piping into a browser.

Dependencies

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).

bundler is also required.

Limitations

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