kanban-fetch

Note: I’ve stopped developing kanban-fetch, in order to focus on the pure ruby combination of rubyfocus/omniboard. This page won’t be going anywhere, but Omniboard is slowly going to outstrip kanban-fetch in terms of features and (probably) reliability.


Kanban-fetch is a simple objective-c program to fetch your OmniFocus projects and turn them into a SQLite database. I use this program to extract information for my personal kanban board: what you do with your database is up to you.

You will need:

In order to run kanban-fetch you will need either:

Due to the restrictions on AppleScript support, kanban-fetch is not supported by OmniFocus 2 standard. At this stage, this isn’t something I can work around, I’m afraid.

Installation

Install from source.

Running

Open up terminal and cd to the appropriate folder. To test out the binary (and make sure everything is working right), enter:

1
./kanban-fetch --debug --out=foo.db

On a good day, you should get an output that looks like the following:

1
2
3
4
5
6
7
8
9
10
11
OmniFocus bundle identified: com.omnigroup.OmniFocus2
Connection to bundle: com.omnigroup.OmniFocus2
Setting database path to foo.db
Fetched 20 projects from OmniFocus.
Generated 15 reportable projects.
  Writing project: Project1
  Writing project: Project2
  ...
  Writing project: Project15
Closing database connection...
Success! Ending...

Your data will now be written to the file foo.db. If you want the program to run silently, just leave out the --debug flag.

Excluding folders

If you’re like me, you have projects that just don’t need to appear on your Kanban board. You can exclude projects in a given folder with the --exclude flag:

1
2
3
4
5
# Excludes all projects whose top-level folder is "Folder"
./kanban-fetch --exclude=Folder --out=foo.db

# Excludes all projects whose top-level folder is either "Foo" or "Bar"
./kanban-fetch --exclude="Foo,Bar" --out=foo.db

Running periodically

I recommend setting up a launch daemon to run this script every hour or what-have-you. I keep my launch daemons in check with Lingon.

Installing the front-end

Perhaps you’d like a good-looking kanban board, available locally whenever you happen to have your web browser open, hm?

Sample kanban board

It looks like you’re in the right place.

You will need

In order to run the kanban front-end, you’re going to need ruby and a few gems. I recommend doing this through bundler:

1
gem install bundler

I’m hosting my kanban board locally through pow: their manual has more information on how to install their service and how to host your own sites.

Installing

You can get the app from github. Clone or download a zip, then unzip and move to the appropriate place on your drive.

Open up terminal, cd into the root directory of the site, and run bundler:

1
bundle install

This will install everything you need to run the app.

Next, open up config.yaml and alter the default values. If you don’t need to exclude folders, you can delete binary_options and following lines.

Finally, run the app by typing bundle exec shotgun config.ru, which should output something like this:

1
2
3
4
== Shotgun/WEBrick on http://127.0.0.1:9393/
[2014-06-06 12:43:53] INFO  WEBrick 1.3.1
[2014-06-06 12:43:53] INFO  ruby 2.0.0 (2013-02-08) [x86_64-darwin12.3.0]
[2014-06-06 12:43:53] INFO  WEBrick::HTTPServer#start: pid=8408 port=9393

That last line tells you the port that Shotgun is running on. Open your web browser and go to http://localhost:XXXX where XXXX is the port (so for the above example, I’d enter http://localhost:9393).

Should everything be working, you should see your kanban board displayed in your web browser. Congratulations!

Bonus round: fluid

For extra-special single-app capabilities, load your kanban webview into Fluid. Now your kanban board is available from your dock with a single click!