A plain-text file format for todos and check lists
Over the last couple of weeks, I worked on a file format specification for writing down todos and check lists into plain-text files. It’s called [x]it! and I set up a small project website here. As an example, a
.xit file could look like this:
[x]it! is basically a structured data format, with some specific syntax for things like tags, priorities or due dates. After klog (a file format for time tracking), this is the second project of mine that was build around a well-defined file specification.
The main repository only contains the spec document. There is (and shouldn’t be) any official or primary tool, but the idea rather is for tools to be created separately. Due to a common file format, tools should be interchangeable, and it also hopefully lowers the hurdle for people to create custom utilities for their own workflows.
The project resonated with a few people, and there were some discussions in the repository after the initial launch. Three things were brought up particularly:
- Nested items, i.e. the ability for an item to have (indented) sub-items.
- Free text, or some way to add more contextual information apart from the item description.
- Syntax variations, mostly for things like the date format, or for the checkboxes.
The topics demonstrate how diverse the needs and use-cases of people are. But they also show how tricky it sometimes is to make a decision, or to find a good middle ground between contrary aspects of features: for example, while nested items are useful in certain situations, they are difficult to implement in tools. Free text allows to structure a file more flexibly, but they are also a fundamental concept change. Syntax variations make typing more convenient, but they gradually increase the complexity of the file format.
Before extending the file format with more features, I first want to publish a stable version of the current feature set. I’m not in a rush with this, but I rather want to take enough time to make more experiences and think things through properly.
One merit of the current file format is that it’s apparently simple enough for other people to create their own tools: by now, there is quite a variety of syntax highlighters already. You can check them out on the project website.
I’m curious to see what will come out of [x]it! in the longer run. From my experience with klog, there is an actual niche for these kinds of “file-first” tools. It’s also interesting to see how much can be achieved with the built-in capabilities of text editors.