The official specification for GENEALOGIX (GLX) β a portable, extensible archive format for genealogical research and beyond. Built on Git, designed for collaboration, and customizable through archive-owned vocabularies. Your data, your way, forever.
Download the latest pre-compiled binary for your operating system from the GitHub Releases page.
Developers can install from source:
# Pin the release tag for a reproducible install; bump it when a new release ships
go install github.com/genealogix/glx/glx@v0.0.0-beta.12
# Or track main for changes not yet in a release. `glx --version` then
# reports the commit it was built from (a pseudo-version ending in its hash).
go install github.com/genealogix/glx/glx@main# Create a new genealogix repository in a new directory
glx init my-family-archive
# Or create a single-file archive
glx init my-family-archive --single-file
# Validate .glx files (checks cross-references and vocabularies)
cd my-family-archive
glx validateTraditional formats like GEDCOM solve file exchange but stop short of modern collaborative research. GENEALOGIX is a Git-native, evidence-first archive format that aims to be a permanent foundation, not just an export target.
For a side-by-side look at the GEDCOM-vs-GLX wire formats and the assertion model that backs every claim with evidence, see Core Concepts.
- π Evidence-First Model β every claim backed by documented sources
- π Quality Assessment β structured confidence on every assertion, with the nature of the source and of the information recorded separately
- π³ Git-Native Architecture β full version control and collaboration support
- π Human-Readable Format β clear YAML files instead of binary formats
- β Schema Validation β JSON Schema-based validation and error checking
- π Complete Provenance β audit trail from repository to conclusion
- π― Repository-Owned Vocabularies β define custom types within each archive
The glx CLI groups its commands into archive management, import/export, exploration, data entry, analysis, and shell completion. Run glx --help for the list your build has, glx <command> --help for a command's flags, or see the CLI reference for per-command pages with examples.
glx initβ initialize a new archiveglx validateβ validate files and cross-referencesglx splitβ convert a single-file archive to multi-fileglx joinβ convert a multi-file archive to single-fileglx mergeβ combine two archives with duplicate detectionglx merge-personsβ merge two person records into oneglx migrateβ migrate an archive to the current formatglx renameβ rename an entity by IDglx cacheβ build, inspect, or clear the binary archive cache
glx importβ import a GEDCOM fileglx exportβ export to GEDCOM or Schema.org-aligned JSON-LDglx publishβ generate a self-contained static HTML site from an archive
glx searchβ full-text search across entitiesglx queryβ filter and list entitiesglx vitalsβ show birth, death, burial for a personglx timelineβ chronological events for a personglx summaryβ full person profile with narrativeglx ancestorsβ ancestor treeglx descendantsβ descendant treeglx citeβ formatted citation textglx pathβ shortest relationship path between two peopleglx serveβ local browser-based read-only archive viewer
glx censusβ census tooling (see subcommands)glx census addβ generate entities from a census templateglx addβ create entities (person, place, event, source, citation, repository, relationship, assertion, and more) from flags;glx add --helplists every entity typeglx linkβ create a FamilySearch citation (and source/repository scaffolding) from an ARK URL
glx statsβ entity-count and confidence dashboardglx placesβ place data quality issuesglx clusterβ FAN-club analysisglx householdsβ reconstruct census households for a person or a placeglx analyzeβ gap, conflict, and suggestion analysisglx duplicatesβ detect duplicate entitiesglx coverageβ research coverage reportglx diffβ diff two archivesglx evidenceβ lay out every assertion for one subject+property side-by-sideglx proofβ compile a Genealogical Proof Standard summary for a research questionglx migrationsβ trace a person's geographic movement over time
glx completionβ generate shell completion scripts (bash, zsh, fish, powershell)
All GENEALOGIX files use the same structure:
# Any .glx file
persons:
person-a1b2c3d4:
properties:
name:
value: "John Smith"
fields:
given: "John"
surname: "Smith"
sex: "male"
sources:
source-12345678:
title: "Birth Certificate"Key Points:
- Entity IDs are map keys:
person-john-smithorperson-a1b2c3d4 - IDs can be descriptive or random (1β64 alphanumeric/hyphens)
- Files can contain any combination of entity types
- Parser collates all entities across all .glx files in repository, except under dot-prefixed directories (
.git,.glx, editor scratch dirs), which are not archive content - Controlled vocabularies define valid types in
vocabularies/directory
- π Quickstart β 5-minute getting started
- π‘ Examples β runnable sample archives
- π CLI Reference β every command and flag
- π Best Practices β recommended workflows
- π Migration from GEDCOM β manual conversion guidance
- π GLX-aware Git merge driver β genealogy-aware conflict resolution for .glx files
- π Specification β full spec
- π JSON Schemas β machine-readable schemas
- π Glossary β key terms and concepts
- π§± Dev Container β preconfigured dev environment
This specification follows Semantic Versioning. Current release: v0.0.0-beta.12 (Beta).
- Draft β under active development, may change significantly
- Release Candidate β stable, final review before release
- Released β production-ready, changes discussed via GitHub issues and discussions
| Topic | Where |
|---|---|
| Issues & bug reports | github.com/genealogix/glx/issues |
| Discussions & Q&A | github.com/genealogix/glx/discussions |
| Chat | Discord |
| Mailing list | groups.google.com/g/genealogix |
| Contributing | CONTRIBUTING.md |
| Code of Conduct | CODE_OF_CONDUCT.md |
| Security | SECURITY.md Β· SECURITY-POSTURE.md (OSPS Baseline, EU CRA readiness) |
| Releases | GitHub Releases |
Copyright 2025 Oracynth, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Attribution for the third-party components bundled in GLX is listed in the NOTICE file.