Features

What is Smos?

A replacement for emacs org mode

Smos intends to deprecate Emacs org mode by being more robust, more customisable, by providing a better and more tool-friendly file format and by using a more sane configuration language.

Completely customisable

Smos is first and foremost a library with which you can build your own version. It is similar to XMonad in this respect. See the default configuration for an example of a configuration.

Future-proof file format

The Smos file format (.smos) is completely future proof because it is just a subset of YAML:

Example
Example
- entry:
    header: Use Smos
    timestamps:
      DEADLINE: 2018-10-30
      SCHEDULED: 2018-10-20
    state-history:
    - new-state: STARTED
      timestamp: 2018-10-10 14:19:53.988042844000+0000
    tags:
    - online
  forest:
  - header: Don't mess it up
    state-history:
    - new-state: DONE
      timestamp: 2018-10-10 14:19:54.388413954000+0000
  - header: Be smart about it
    state-history:
    - new-state: TODO
      timestamp: 2018-10-10 14:19:54.796427564000+0000
    tags:
    - work

This format is very easy to work with programmatically, and convenience functions in the smos-data library are provided to operate on Smos data.

Great for version control

Files are made to make git diffs easy and disjoint. Derived data is never stored, but instead computed or rendered with smos-report.