This is something I’ve been tossing around and occasionally working on for a while now – a decent to-do list/task manager usable at the command line. The key features for me were the ability to combine multiple separate sets of tasks into one and to have some of those be remote, accessed over the network.
Nobody seems to have made something like that before (perhaps my use-case is unique?), so I put this together and have been using it over the last couple of months. It’s reasonably simple to use – `hmt add` and `hmt list` being the main commands, with `depends` and `edit` doing the obvious things too.
The important aspect to me was remote task repositories. These are specified in the .hmt/config file, just by an entry of the form “[external http://example.com/foo/bar]“. Tasks from that repository will be included in list output, and can be depended on. If you have write access to the repository they can be edited and resolved as well, just like local entries (it’s fully transparent). Repositories can be accessed via the local filesystem, over HTTP, or by (a very naïve) SSH transport. The SSH transport is mostly intended as a writer for remote repositories accessed by other means, but it supports read access as well.
Any repository can have a “writer” specified, either locally or in its own configuration, which specifies where writes to it should go. That lets non-writable HTTP repositories be edited in the usual way over SSH. They can also specify caching to avoid continual network traffic and be combined in more complex ways. Development is ongoing when I have time and an itch, but it’s almost fully usable for the single-user case now. I have it running on a few servers creating lists of administrative tasks to complete, and that works fine over the network too.
I also used git to maintain my code this time, to try it out again. It’s definitely much more usable than the last time I tried it. In-tree branching is a lot of fun (especially with KDE4′s Kate, which finally offers to reload all changed files at once). Directory tracking is still poor, and I had to take a few goes at getting something acceptable when I renamed one. I don’t know whether I’ll continue to use it or Bazaar in future, but it’s passable.
It’s also Python 3 compatible via `make 2to3`. Working on code that works both ways through that has been an interesting experience. For 2.6 or 3.0, you’ll have to export a valid PYTHONPATH or move lib/python to lib/pythonx.y.
The repository is available at http://mwh.geek.nz/files/hermit/hermit.git for the moment. Very early stages, but have at it.