Version control for literary text.
Literium is a distributed version control system whose unit of change is the sentence — the line, in verse — not the line of code. It is built for writers and editors: every draft kept, every sentence accounted for.
The model
A document is segmented into sentences, each stored once by content. Three hash comparisons tell, exactly and instantly, whether an edit changed the formatting, the structure (paragraphs split or joined), or the substance of a text. A saved state is a pure snapshot — no parent pointers, no privileged position — and a merge never blocks on conflict markers: where two hands rewrote the same sentence, both readings stand in the text and the open questions sit beside it in an apparatus, worked the way an editor already reads — keep, adopt, both, or emend.
Every rule is deterministic and language-agnostic: no heuristics, no similarity scores, no tailoring. Two implementations of the specification produce byte-identical repositories.
The documents
- Specification — the normative reference for the repository format: objects, segmentation, versions, histories, merge. (current: 1.0-draft · PDF)
- Protocol
— the
litJSON-RPC operation catalog that editor integrations bind against. - User guide — workflows and mental models, from the writer’s side; the three-register terminology table as an appendix. (PDF)
The tool
The command-line tool is lit. Its verbs are a
writer’s: lit conscribe gathers the
working tree onto the tabula, lit inscribe sets
a version into a history, lit exscribe copies
one back out. Every verb also answers to its git name —
commit, checkout,
merge — for hands that already know git.
The specification’s source is public at gitlab.com/literium/spec.
Hosting
Litorium is the hosted home for Literium repositories — sync across machines, share by link, give a finished work a permanent address. Command-line first, private by default.