---
title: Read a GEDCOM without installing anything
slug: read-a-gedcom-without-installing-anything
description: Someone emailed you a .ged file. Open it as people, families and a pedigree in a browser tab, with nothing uploaded and nothing installed.
tools: [gedcom-viewer, inspect]
difficulty: beginner
time: 10 minutes
lastChecked: 2026-09-03
published: 2026-09-03T10:45:00+02:00
---

# Read a GEDCOM without installing anything

A relative sent a `.ged` file. Double-clicking it does nothing, or opens a text editor showing several thousand lines that start with numbers. You want to know who is in it before you decide whether to install a genealogy program.

The advice at the top of most search results is to rename the file to `.txt` and read it. That works and tells you almost nothing: the file is a flat list of records, and the relationships between them are pointers you would have to follow by hand.

## What causes the file to look like that

A GEDCOM is one fact per line. Each line starts with a level number saying how deeply it is nested, then a tag, then a value.

```
0 @1@ INDI
1 NAME Max /Mustermann/
1 SEX M
1 BIRT
2 DATE 1 JAN 1980
1 FAMC @F1@
```

Level 0 starts a record. Level 1 lines belong to it. Level 2 lines belong to the level 1 line above them. `@1@` is this person's identifier, and `@F1@` is a pointer to a family record somewhere else in the file. Nothing in the text puts the family next to the person, which is why reading it as text is hard and why a program that follows the pointers makes it easy.

Two questions usually come first, and they need different tools. What is in this file at all, and who are these people.

```mermaid
flowchart TD
  F["A .ged file arrived"] --> Q{"What do you want to know?"}
  Q -- "how many people, what program made it, is it damaged" --> I["File Inspector"]
  Q -- "who these people are and how they connect" --> V["GEDCOM Viewer"]
  I --> P{"Does Problems list errors?"}
  P -- "yes" --> R["Repair before reading further"]
  P -- "no" --> V
  V --> S["Search a surname, open a person, read the pedigree"]
```

## The steps

Numbers below are from `fixtures/public/Musterstammbaum.ged`, a 7,175-byte German export.

1. Open [File Inspector](/inspect) and drop the file on the drop target. The file is read by JavaScript in your browser. Nothing is uploaded, and the page makes no network call with the file in it.
2. Read **Header**. On this fixture **GEDCOM version** reads `5.5.1`, **Producer** reads `AHN (Ahnenblatt) 2.99g`, **Declared charset** reads `UTF-8`, **Decoded as** reads `utf-8 with BOM` and **Line endings** reads `LF`. The producer line tells you which program wrote it, which decides what its non-standard tags mean.
3. Read **Records by type**. On this fixture `INDI 20`, `FAM 11`, then `HEAD`, `SUBM` and `TRLR` at 1 each. The `INDI` count is the size of the tree in one number.
4. Read **Problems**. On this fixture the title reads `Problems: 0 errors, 0 warnings, 0 info` and the line below says the parser found nothing structurally wrong. Rows here mean the file needs repair before it is worth reading; [GEDCOM error messages, decoded](/how-to/decode-gedcom-error-messages) maps each code to its fix.
![File Inspector on Musterstammbaum.ged: the header naming GEDCOM 5.5.1, Ahnenblatt 2.99g and a UTF-8 charset decoded with a BOM, beside Records by type counting 20 INDI and 11 FAM.](/kb/shots/read-a-gedcom-without-installing-anything-inspector.jpg)
5. Open [GEDCOM Viewer](/gedcom-viewer) and drop the same file. The header line reads `20 people, 11 families`.
6. The left column is the people list. Use **Search name or xref** to filter it, and the **Sort people** select to order by Surname, Given name, Birth, Death or Xref.
7. Click a row. The right panel fills with that person: their name as the file wrote it, their events with dates and places, and their family links.
8. Read **Parents** and **Spouses and children** in the person panel. Each name there is a link; clicking one moves to that person.
![The GEDCOM Viewer on the same file: the searchable people list with Name, Born and Died columns on the left, and on the right one person's names, events, parents and spouses and children.](/kb/shots/read-a-gedcom-without-installing-anything-viewer.jpg)
9. Scroll to **Pedigree**. Set **Generations up** to 4 to see great-great-grandparents. Every box in the chart is clickable.
10. Read **Timeline** below it. It lists every dated event for that person with their age at each one.
11. Copy the address bar if you want to come back to the same person. The viewer writes the selection into the URL as `?p=@1@`.

## What to check when it worked

- **Records by type** in File Inspector shows an `INDI` count close to what the sender described. A count of 0 or of 20 on a tree they called large means the file was cut.
- The **Problems** table is empty, or every row is severity `info`.
- The viewer's header line matches the Inspector's `INDI` and `FAM` counts. On this fixture both say 20 and 11.
- Names show their accents. `Müller` reading as `MÃ¼ller` is a charset fault, not a damaged file, and [how to fix garbled characters and accents](/how-to/fix-garbled-characters-and-accents-in-a-gedcom) covers it.
- A person you know appears with the right parents when you click through.

## What to do when it did not

**The page says nothing loaded.** The file may not be a GEDCOM. Open it in a text editor: the first line of a GEDCOM is `0 HEAD`. A `.ged` file whose first line is anything else came from somewhere unusual.

**The viewer lists people with no name.** The `NAME` lines are absent or malformed. Run [GEDCOM Validator](/gedcom-validator) and read the `structural` category.

**Clicking a person shows no parents when you know they have some.** The pointer runs one way: the person names the family and the family does not name them back. [How to find every broken pointer in a GEDCOM](/how-to/find-every-broken-pointer-in-a-gedcom) finds all of those.

**You want the data as a spreadsheet.** Nothing here exports one yet. The viewer is for reading.

**The file is large and the page takes a while.** Parsing runs in a worker so the page stays usable. The Inspector prints the parse time beside the file size.

## Related

- Pillar: [how to work out what a GEDCOM file actually contains](/how-to/work-out-what-a-gedcom-file-actually-contains)
- Sibling: [what is a GEDCOM file](/how-to/what-is-a-gedcom-file)
- [GEDCOM error messages, decoded](/how-to/decode-gedcom-error-messages)
- [How to fix garbled characters and accents in a GEDCOM](/how-to/fix-garbled-characters-and-accents-in-a-gedcom)
