recutils database of all the games i play
Go to file
dozens 22a82293f4 game 2024-03-28 07:41:09 -06:00
bin just to bin scripts 2024-02-03 15:56:10 -07:00
db game 2024-03-28 07:41:09 -06:00
dist game 2024-03-28 07:41:09 -06:00
doc lots of tidying up and reorganizing 2022-02-11 17:49:13 -07:00 game 2024-03-10 17:58:29 -06:00
justfile just to bin scripts 2024-02-03 15:56:10 -07:00

Game Log

RPGs I've played


This is a log of all the games I've played starting in 2021. I'm keeping this log in anticipation of writing a "Every game I played in 2021" blog post in 2022.

I decided to use recutils for this because, why not.

Getting Started

You don't need to install anything if you don't want to. You can just edit the rec file.


  • GNU recutils

  • just (optional)


What kind of stuff am I interested in keeping track of?

  • Role: Player or DM?
  • Format: In person? (Ha, one day.) Roll20/Discord? Play by post?
  • Length: One-shot, adventure, campaign?
  • Crew: Who did I play with?


You should probably just read the recfile because that will always be the source of truth, but at the time of this writing, the schema is as follows.


%rec: Game
%doc: a ttrpg game I have played or am playing
%key: Id
%type: Id int
%type: System,Module,Format line
%type: Started date
%typedef: Role enum DM Player
%typedef: Length enum Campaign Adventure Oneshot
%typedef: Status enum Ongoing Complete Hiatus Dead
%auto: Id Started
%mandatory: Id System Module Format Started Role Length Status
%unique: Id

Game Update:

%rec: Update
%doc: an update for a game!
%type: Game rec Game
%key: Id
%type: Id int
%type: Created date
%auto: Id Created
%mandatory: Id Created Text
%allowed: Id Created Text Game
%unique: Id
%sort: Id

This database originally just had the one Game record with updates to games unofficially recorded in the Notes field. This lead to the primary datatype being the campaign, or the adventure, or the oneshot. And individual session logs didn't really exist anywhere. I didn't like this because it meant I never new how many actual games I've played. For example, I had been playing Strixhaven on a weekly basis for months, but still to this day only have three 'updates' for it. So I migrated all notes and updates for each game to a new Update type. And the new goal is to create and retire Games as needed, and to create a new Update for every session played. So I actually know how many games I've played for real.

Note that after doing this, I am still not using recsel's "join" feature, because recsel joins are messy.


check out doc/

Recsel examples

  • recsel -t Game -e "Role = 'Player'" games.rec

See justfile for more examples


  • Add types/enums
  • tui? run just new
  • add Update to CLI
  • add Date to update menu. sometimes i add the session log after the session has happened!
  • refactor edit/update search functions
  • change Recent Games from 'recently created' to 'recently updated' ?
  • CLI flags mode
  • rename Update to Log or Session Log?