Colour is what makes gap detection and drill mode work: the app needs to know which moves are yours.
Chapter ids come across with it, so pushing later updates that same study instead of making a copy. Private studies need a token.
Pushing needs a token with the study:write scope. It is kept in this app’s memory only and is forgotten when the server stops. To have it found automatically, put it in ~/.lichess_token or the LICHESS_TOKEN environment variable.
~/.lichess_token
LICHESS_TOKEN
Local is the source of truth. A push replaces the moves of each chapter on Lichess, so anything you edited there in the browser is overwritten.
Your work is written to disk the moment you make it, always. This is the other half: committing that folder and pushing it, so the repertoire survives the machine.
Only the repertoires folder is committed, with an explicit pathspec, so anything else you have in flight in this repository is left alone.
Your recordings are merged and split into one chapter per opening move. Chapters that came from a repertoire are not included — publish those from the repertoire itself so Lichess does not end up with two copies.