Kinsaga
A family chronicle library and CLI for managing timestamped, categorized life events.
Overview
Kinsaga (kin + saga) provides data structures and utilities for creating and managing family chronicles where life events are:
- Timestamped with flexible date precision (year, month, day, or uncertain with
?suffix) - Categorized into customizable life themes (education, family, travel, hobbies, etc.)
- Person-centric - each family member has their own timeline
- Location-aware - optional GPS coordinates with Nominatim geocoding support
- Attachment-friendly - link photos, documents, and other media to events
Installation
Quick Start
# Set your chronicle file
# List all persons
# View someone's timeline
# Search across all persons
# Search with regex
# Validate chronicle structure
# Validate GPS coordinates against Nominatim
# Add a new fact
Features
CLI Commands
| Command | Description |
|---|---|
list |
List all persons with fact counts |
timeline <person> |
Show chronological timeline for a person |
search <query> |
Search text across all persons (supports --regex) |
validate |
Validate structure, UUIDs, references, and GPS coordinates |
add-fact <person> |
Add a new fact with date, category, text, location, attachments |
edit-fact <uuid> |
Edit an existing fact by UUID |
merge <file> |
Merge another chronicle into this one |
schema |
Print JSON Schema for chronicle files |
Output Formats
All query commands support --format / -f with: text (default), csv, md, json
GPS Validation
Validate and enrich location data using OpenStreetMap's Nominatim:
# Check existing coordinates match stored country/place
# Suggest coordinates for locations without GPS
# Apply top suggestions to chronicle
Supports ISO country codes (CH, JP, US, etc.) and native language names (Schweiz, 日本, etc.).
Chronicle Format
Date Formats
| Format | Example | Meaning |
|---|---|---|
| Year | 1987 |
Sometime in 1987 |
| Year-month | 1987-03 |
March 1987 |
| Full date | 1987-03-15 |
March 15, 1987 |
| Uncertain | 1987? |
Approximately 1987 |
Documentation
See STATUS.md for detailed documentation including:
- Complete CLI reference with all options
- Library API documentation
- Validation checks
- Project roadmap
License
Licensed under GPL-3.0-or-later.