Pimutils: The coreutils of personal information management

(pimutils.org)

164 points | by pabs3 1219 days ago

7 comments

  • dredmorbius 1219 days ago
    There's a large set of these developed over the years, though I couldn't compile a comprehensive list without taking some time.

    Contact management (lbdb), numerous task managers, calendars, Emacs org-mode, vimwiki, schedulers, and more.

    remind, calendar, and taskwarrior come to mind.

  • rektide 1219 days ago
    2/3 of these Perosnal Information Management tools were featured on a recent "my desktop" set up from noted command-line user Hund[1]. Bunch of other great console tools here too, if folks are interested.

    Makes me think a bit of one of the original-ganger XML namespaces, pim/space[2]. Spaces for your personal information management. There are very old threads for this, going way back.

    I'd say Atom Publishing Protocol came close. We think of Atom as an RSS competitor, but it was part of a broader general information organization & manipulation effort with Atom Publishing Protocol, which included more about ways to manage & append & write information, into feeds, which existed in collections, across workspaces[3].

    Tim Berners-Lee is still hard at work, trying to distill out a useful, general means of wrangling one's & other's information. The team seems to have just released Inrupt, their implementation of the Solid specifications for linked data[4]. Which is helping power some of the latest BBC & NHS & NatWest (a bank) systems[5].

    Personally I think Personal Information Management is a wonderful white whale for folks to chase. We can land it, & it will make a huge difference to all if we do. As for where we are now, I rather enjoy the JSON-LD & SOLID & Linked-Data world, think there are great specs there, for building better general systems atop, and hope we can start to rebalance some of the questions of control over computing & data with these more general systems.

    [1] https://hunden.linuxkompis.se/2020/11/13/my-desktop-november...

    [2] https://www.w3.org/ns/pim/space

    [3] https://tools.ietf.org/html/rfc5023#section-8.1

    [4] https://news.ycombinator.com/item?id=25211816

    [5] https://money.yahoo.com/nhs-data-creator-sir-tim-110816726.h...

  • mssundaram 1219 days ago
    I've been looking for a kanban tool for which I can own the data (self hosted), and preferably that the data is a human manipulated format (Markdown ideally).

    Does anyone know of something like that? I haven't found a satisfactory solution so I've been building one, but I keep feeling like I'm wasting my time and that there must be something else available. In any case I am planning on releasing it as a desktop app and mobile (Android, iOS) at some point. Right now I just use Syncthing to sync across devices - you just point the app to a directory of Markdown files.

  • imroot 1219 days ago
    I use taskwarrior and time warrior for keeping track of my tasks and the amount of time that I’m doing, and have task warrior set up so that it’s the first thing I see when I log into my home server.

    I do use khal and sync it with my google calendar. I haven’t figured out multi-calendar sync just yet (work/personal/wife), but, it’s on my list.

  • jldugger 1219 days ago
    Spec for a tool I want written but am too lazy to make happen: journal - an append-only personal log.

    Timestamps all input and appends it to a log file. Inputs can be either arguments to the command, or read from stdin if piped to.

    Log file should be parseable with grep and other coreutils, but an indexed option might be useful for time range queries.

    • agundy 1219 days ago
      You want something like https://jrnl.sh

      I’ve used this for a few years now and it’s pretty solid.

    • door99 1219 days ago
    • Spivak 1219 days ago
      To write:

          systemd-cat -t mylogs <<< "Message"
      
      To read:

          journalctl -t mylogs --since yesterday
      • megous 1219 days ago
        Systemd logs get rotated. :)
      • s_gourichon 1216 days ago
        Systemd logs get huge in practice. Binary format, also.

        Still, nice hack value.

  • 01100011 1219 days ago
    Unrelated ask: Does anyone know of a good way to filter my Outlook 365/IMAP inbox using rules running on my Linux box? I want more complex and easily maintainable rules than what I can get via Outlook.
    • deadbunny 1219 days ago
      I've used DavMail[1] to access Office365 for years.

      It basically acts as a translation layer between Microsoft protocols and open protocols. I usually run it as a local systemd user service.

      My only issue is with MFA. To set it up you'll need to dig through the stdout/logs to get the initial "add app"/Auth URL. After that the push notifications from the Microsoft Authenticator work as expected.

      If you're not using push based MFA I'm not sure if it'll work, you might need to dig through the logs to grab the URL each time. If it was me I'd probably setup another script to sit watching the log, extract the MFA URL and send a notification with lib notify.

      So yeah, a little janky to set up (yay for proprietary protocols) but you can then use whatever email client you like and manipulate it as you need.

      1. http://davmail.sourceforge.net/

    • cgb_ 1219 days ago
      Yup - https://github.com/lefcha/imapfilter

      "IMAPFilter is a mail filtering utility. It connects to remote mail servers using the Internet Message Access Protocol (IMAP), sends searching queries to the server and processes mailboxes based on the results. It can be used to delete, copy, move, flag, etc. messages residing in mailboxes at the same or different mail servers. The 4rev1 and 4 versions of the IMAP protocol are supported."

    • toast0 1219 days ago
      Two jobs ago, I had written something for this; but it was written at work, so I wasn't able to keep it. Also, it was on premises Exhange, not Microsoft's cloud. But I recall, the exchange IMAP server isn't too horrible, although a bit slow. Perl with one of the CPAN IMAP modules, plus a little bit of caching, and I could do all sorts of filters that couldn't be done in Exchange (like sorting read mail into archive folders).
    • tleb_ 1219 days ago
      I have used mbsync & notmuch to do a one time filter on my entire inbox. If you handle your emails locally, this could be a solution.
  • eindiran 1219 days ago
    khal looks quite cool. Does anyone have some experience with it?
    • zeusflight 1219 days ago
      I have khal (calendar), khard (vcards) and todoman (todo on caldav) installed and use them occasionally. I mostly use my phone and thunderbird to manage contacts and calendars - so they don't find regular use. However, they all are really nice curses/cli tools if you live on the terminal. I don't have any complaints when I do use them. The biggest attraction though is vdirsyncer, a service used to synchronize CalDAV and CardDAV to a directory. Khal and others interface only with this directory and not directly with the server. Vdirsyncer allows you to easily backup and migrate your calendars and contacts between different servers. This is a huge relief if you consider how opaque and locked-in most calendar/contacts services are.
      • s_gourichon 1216 days ago
        Looks like vdirsyncer can sync with Google calendar and contacts: see

        class GoogleContactsStorage(dav.CardDAVStorage):

        on https://github.com/pimutils/vdirsyncer/blob/master/vdirsynce...

        • zeusflight 1212 days ago
          Dealing with Google's version of IMAP, CalDAV and CardDAV is with the standard that everyone else follows. Every single program (mbsync, offlineimap, vdirsyncer) needs a special section on how to configure for Google alone. It causes a lot of heartache when you try to migrate.
    • willjp 1219 days ago
      khal is excellent. I've been using it alongside vdirsyncer for a couple of years now. I recommend aliasing 'khal calendar' to cal - a quick look at your day, and upcoming events.

      I also highly recommend khard, which manages contacts.

      • privong 1218 days ago
        I second these recommendations. I've been using khal and khard (plus `todoman` for to-do list management). They're all nice tools that work well in my CLI-focused workflow. And `vdirsyncer` is a key component, that syncs to my other computers and phone, via a NextCloud instance.