Metadata-Version: 2.4
Name: gedcom-navigator
Version: 1.9.4
Summary: Find the nearest DNA-flagged relatives in a GEDCOM family tree
Project-URL: Homepage, https://github.com/ajkessel/gedcom-navigator
Project-URL: Repository, https://github.com/ajkessel/gedcom-navigator
Project-URL: Bug Tracker, https://github.com/ajkessel/gedcom-navigator/issues
Project-URL: Changelog, https://github.com/ajkessel/gedcom-navigator/blob/main/docs/CHANGELOG.md
Author-email: Adam Kessel <ajkessel@gmail.com>
License: BSD-2-Clause
Keywords: ancestry,dna,family-tree,gedcom,genealogy
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Other/Nonlisted Topic
Requires-Python: >=3.8
Provides-Extra: gui
Requires-Dist: certifi; (sys_platform == 'darwin') and extra == 'gui'
Requires-Dist: ctktooltip>=0.1.0; extra == 'gui'
Requires-Dist: customtkinter>=5.2.0; extra == 'gui'
Requires-Dist: cyrtranslit>=1.2.0; extra == 'gui'
Requires-Dist: hebrew>=0.8.1; extra == 'gui'
Requires-Dist: pillow; extra == 'gui'
Requires-Dist: pyobjc-framework-cocoa; (sys_platform == 'darwin') and extra == 'gui'
Description-Content-Type: text/markdown

# GEDCOM Navigator

## Who is this for?

This application is for genealogists who manage large GEDCOM files, particularly with tags for DNA matches.

## What does it do?

This application provides useful ways to rapidly explore a GEDCOM file exported from genealogy services like Ancestry, MyHeritage, Geni, and Family Tree Maker:

* Find the closest tagged people (e.g. DNA match) to any other person in a family tree
* Show multiple relationship paths between any two people in your tree
* Search your tree for variations on names (maiden/married name, alternate names, fuzzy matching, and Hebrew/Cyrillic transliterations) and filter on other information like geographical locations or occupation
* Rapidly explore names and connections, even in a very large tree with very distant connections
* Generate custom images of parts of your tree, expanding or collapsing the connections you want to see and saving them to your clipboard or an image file
* Visualize relationships between any two people graphically

The tool does not modify your GEDCOM file. It is used for exploring connections.

In addition to the GUI, this application also includes a command-line tool for fast queries or incorporating into other programmatic workflows.

## Downloads

* Mac
  * [App Store](https://apps.apple.com/app/gedcom-navigator/id6765485580) (easy install, may be behind the latest version here)
  * [ZIP Download](https://github.com/ajkessel/gedcom-navigator/releases/latest/download/gedcom-navigator-mac.zip) (see [security note](MAC_SECURITY.md)).
* Windows
  * [App Store](https://apps.microsoft.com/detail/9p3zvf1q3rhm?hl=en-US&gl=US) (easy install)
  * [Portable Version](https://github.com/ajkessel/gedcom-navigator/releases/latest/download/gedcom-navigator-windows-portable.zip) (see [security note](WINDOWS_SECURITY.md)).
  * [Installer](https://github.com/ajkessel/gedcom-navigator/releases/latest/download/gedcom-navigator-windows-installer.exe)
* [Linux](https://github.com/ajkessel/gedcom-navigator/releases/latest/download/gedcom-navigator-linux.zip)

This is a beta release. If you are interested in experimenting with a "dummy" GEDCOM file rather than your own, here are a couple of options:

* Use the [Fictional Genealogy](https://github.com/ajkessel/gedcom-navigator/blob/main/samples/fictional_genealogy.ged) sample file I built for testing this application. It contains 1,000 fictional people and illustrates various complicated family connections. If you want to download it from github for use with this tool, be sure to retrieve the [raw version](https://raw.githubusercontent.com/ajkessel/gedcom-navigator/refs/heads/main/samples/fictional_genealogy.ged). This file is released under the [Unlicense](https://unlicense.org/), which means you can do anything you want with it.
* [The FindMyPast Github Repository](https://github.com/findmypast/gedcom-samples) has several real and fictional family trees. I used the [Game of Thrones family tree](https://github.com/findmypast/gedcom-samples/blob/main/GoT.ged) for the sample screenshots to avoid any privacy issues and also to show why it gets complicated when siblings marry one another.

## The problems this solves

![Main window](https://raw.githubusercontent.com/ajkessel/gedcom-navigator/main/docs/screenshots/screen_recording.gif)

Many genealogists working with autosomal DNA add unfamiliar people to their family tree based on DNA matches and then build out those people's lines, hoping to find the most recent common ancestor between the match and themselves. After accumulating thousands of these speculative additions, you often end up looking at a person in your tree and thinking: *why is this person here? which DNA match did this branch come from?*

Ancestry, Family Tree Maker, and other standard GEDCOM viewers show you a flat list of everyone you've tagged as a DNA match, but none of them will, given an arbitrary person in the tree, walk outward through the relationship graph and tell you the nearest tagged relative. That is the main purpose of this tool.

You can also use this tool to find multiple paths between any two people in your tree and also view individual records from your tree. For example, if your grandfather's maternal cousin married your grandfather's paternal cousin, you will have multiple paths to their descendants. Most applications only show one path; this tool can find as many paths as you like. If you set the application to cast a wide net by setting the "max depth" to a high value, you can discover unexpected links between your relatives. This will take longer to process in a large tree but can yield interesting information.

Any relationship description can be clicked to see a graphical representation of that relationship, which you can then copy and use as you like.

If you set a person as the "Home Person" using the "Set Home" button, the Display Pane will include the path from the selected person to the Home Person in Profile, Matches, and Paths mode.

Finally, if you have a large tree, you may find it difficult to search for specific individuals in other tools. Ancestry, for example, only searches on the person's "preferred name" and not any of the alternate names, and neither Ancestry nor Family Tree Maker allow fuzzy matching searches. Ancestry also does not allow you to easily search on multiple fields simultaneously, like name, location, and occupation. With this tool, you can search for a name with fuzzy matching (e.g. "John Smith" in the "Find:" box) and then further limit the results by a term that appears anywhere in the person's record (e.g. "Chicago" and "tailor" in the "Filter" box). If you have multiple names in a person's record (e.g. maiden name, married name, nicknames), this tool will match any of them. When fuzzy matching is enabled, Hebrew and Cyrillic names also get approximate English-letter aliases generated locally when the GEDCOM is parsed and cached, so they can be found from an English-language keyboard (e.g., searching for "shlomo" should return someone named שְׁלֹמֹה even if their GEDCOM entry lacks any English version of their name; likewise with "Vladimir" for Владимир). This search method avoids the clumsy workarounds people use to label people in their tree, for example, by packing all the person's different surnames into the surname field. You can create a separate "name" record for each name the person has, and then find them easily using this tool's search functionality.

I've also sought to make all actions accessible from the keyboard. See [the keyboard shortcuts list](KEYBOARD_SHORTCUTS.md) for guidance. This makes it very fast to search for and compare people, even in a very large tree.

For more details including the command-line tool, see [technical details](TECHNICAL.md)

## License

This application is released under the [BSD 2-Clause License](LICENSE.md).

## Recent changes

[`CHANGELOG`](CHANGELOG.md)

## Contributing

Bug reports, feature suggestions, and pull requests are welcome. If you encounter a GEDCOM file whose tag format is not recognized, please open an issue and include the relevant excerpt (with personal names redacted) so the parser can be extended.
