README file from
GithubGEDCOM for Obsidian
GEDCOM language support by Domorium. Edit source .ged and .gedcom files
directly in Obsidian with validation, autocomplete, navigation, folding, and
semantic highlighting.

Part of Domorium. The same GEDCOM language support runs in VS Code, JetBrains IDEs, and in the browser — one implementation of the format, adapted per editor.
Features
- Context-aware GEDCOM tag autocomplete
- Real-time validation errors and warnings
- Semantic highlighting for levels, tags, and cross-references
- Documentation tooltips for GEDCOM tags
- Go to definition for XREF values
- Find XREF references and highlight declarations and usages
- Safe XREF rename as one undoable edit
- Web links and vault-relative file links
- Quick fixes for broken references and invalid levels
- Folding and visual indentation for nested records
- Highlighted and checked
gedcomcode blocks in notes - Links from a note to a record, indexed by the vault or as an
obsidian://URL - Desktop and mobile Obsidian support
The plugin keeps the GEDCOM file as the source of truth. It does not convert records into Markdown, create a second genealogy database, or send vault data to a remote service.
Usage
- Enable GEDCOM in Settings → Community plugins.
- Open a
.gedor.gedcomfile in your vault. - Edit the source directly. Obsidian saves changes back to the same file.
Use Go to GEDCOM definition from the command palette to jump from an XREF usage to its record declaration. Find GEDCOM references moves between matching declarations and usages, and Rename GEDCOM reference updates the current XREF atomically. Editor behavior can be adjusted in the plugin settings.
A record pasted into a note is highlighted and checked when it is fenced as
gedcom. A block carries no header, so it is read as GEDCOM 7 unless the fence
names another specification — ```gedcom 5.5.1.
A note can link to a record. Copy link to record puts
[[tree.ged#@I47@|Marie /Curie/]] on the clipboard — a link the vault indexes,
so the file's Backlinks pane lists the notes that mention it and the graph draws
an edge to each. It is spelt the way this vault spells its own links, and shows
the name the record carries rather than a path. Copy Obsidian URL to
record writes the obsidian://domorium?vault=…&file=…&xref=@I47@ form instead,
which a browser or another application can follow. Either one opens the file with
the cursor on that record.
Typing [[tree.ged# in a note offers the records in that file, by name where
the format gives one. Hovering a link to a record shows the record, highlighted,
without opening the file, and ![[tree.ged#@I47@]] embeds it in the note the
same way.
A vault to try it on
demo-vault/ is an Obsidian vault: open it with Open folder as
vault, enable the plugin, and start from Start here.md. Four generations of
the Curie family live in one GEDCOM file — seventeen people, five families,
sources, repositories and images — and the notes around it link into it the way
your own notes would.
For dataviewjs and other plugins
The parsed document is reachable without opening the file:
```dataviewjs
const api = app.plugins.plugins["domorium"].api;
const tree = await api.read("family/tree.ged");
dv.list(tree.getNodes().filter((n) => n.tokens.TAG?.value === "INDI")
.map((n) => tree.getLabel(n) ?? n.tokens.XREF?.value));
```
api.parse(text, options) does the same for text already in hand. Both answer
with the validator's GedcomDocument: getNodes, getErrors, getVersion,
getLabel, getPointerTargetTag, isRecordDeclaration. api.version says
which API you are holding.
Privacy
GEDCOM by Domorium works locally inside the vault. It does not require an account, make network requests, access files outside the vault, show advertisements, or collect analytics or telemetry.
Installation
Install GEDCOM from Obsidian's Community Plugins directory. To test beta releases, use BRAT with this repository URL:
https://github.com/lavich/domorium-obsidian
For a manual installation, copy main.js, manifest.json, and styles.css
from the latest release into:
<vault>/.obsidian/plugins/domorium/
Reload Community Plugins and enable GEDCOM.
Development
npm install
npm run check
The packaged plugin is written to dist/.
The shared GEDCOM parser and editor-independent language service are maintained in the main Domorium repository and consumed as versioned public npm packages.
License
MIT © 2026 Andrei Lobanov
Domorium is an independent project and is not affiliated with or endorsed by FamilySearch or Intellectual Reserve, Inc. FAMILYSEARCH GEDCOM™ and FAMILYSEARCH® are trademarks of Intellectual Reserve, Inc.