/install familysearch
FamilySearch Genealogy Skill
Two modes of operation:
- Live API (primary) — Query FamilySearch directly for person search, pedigree, descendants, historical records
- Offline GEDCOM — Parse exported
.gedfiles for local exploration, narratives, and statistics
Mode 1: FamilySearch API (Primary)
Prerequisites
- FamilySearch Account — Free at \x3Chttps://www.familysearch.org>
- Developer App Key — Register at \x3Chttps://www.familysearch.org/developers/>
- OAuth 2.0 Access Token — Via authentication flow below
Store credentials:
Option A — Environment variable (all platforms):
export FAMILYSEARCH_TOKEN="\x3CTOKEN>"
Option B — macOS Keychain:
security add-generic-password -a "familysearch-app-key" -s "openclaw-familysearch" -w "\x3CAPP_KEY>"
security add-generic-password -a "familysearch-token" -s "openclaw-familysearch-token" -w "\x3CTOKEN>"
The script checks FAMILYSEARCH_TOKEN env var first, then falls back to macOS Keychain.
Authentication
OAuth 2.0 Authorization Code flow:
- Direct user to:
https://ident.familysearch.org/cis-web/oauth2/v3/authorization?response_type=code&client_id={APP_KEY}&redirect_uri={REDIRECT_URI} - User logs in, grants access
- Exchange code for token:
curl -X POST "https://ident.familysearch.org/cis-web/oauth2/v3/token" \
-d "grant_type=authorization_code&code={AUTH_CODE}&client_id={APP_KEY}"
- Store returned
access_tokenin Keychain
Sandbox for testing: https://integration.familysearch.org / https://api-integ.familysearch.org
API Usage
python scripts/familysearch.py \x3Ccommand> [args]
| Command | Description |
|---|---|
search --given John --surname Lewis --birth-place Oregon |
Search persons in Family Tree |
person \x3CPID> |
Get person details |
ancestry \x3CPID> --generations 4 |
Ascending pedigree (1-8 generations) |
descendants \x3CPID> --generations 2 |
Descending tree |
parents \x3CPID> |
Get parents |
spouses \x3CPID> |
Get spouses |
children \x3CPID> |
Get children |
Search parameters: --given, --surname, --birth-date, --birth-place, --death-date, --death-place, --sex
Results use GEDCOM X format (JSON). Key fields: persons[].id, persons[].display.name, .birthDate, .birthPlace, .deathDate, .deathPlace.
Ahnentafel numbering in ancestry: 1=subject, 2=father, 3=mother, 4=paternal grandfather, etc.
Mode 2: Offline GEDCOM Files
For exported .ged files from FamilySearch, Ancestry, MyHeritage, etc. No API key needed — pure offline.
Getting a GEDCOM File
FamilySearch: familysearch.org → Family Tree → Tools → Export GEDCOM
Usage
python scripts/gedcom_query.py \x3Cgedcom_file> \x3Ccommand> [args...]
| Command | Description |
|---|---|
search \x3Cname> |
Fuzzy name search — returns matches with IDs |
person \x3Cid_or_name> |
Full profile: birth, death, parents, spouses, children |
ancestors \x3Cid_or_name> [depth] |
Pedigree chart up (default: 4 generations) |
descendants \x3Cid_or_name> [depth] |
Pedigree chart down (default: 3 generations) |
story \x3Cid_or_name> |
Narrative biography paragraph |
timeline \x3Cid_or_name> |
Chronological life events |
stats |
Tree summary: counts, surnames, birth decades, completeness |
find-date \x3Cyear> |
Find people born/died in a given year |
common-ancestor \x3Cname1> \x3Cname2> |
Find closest common ancestor |
id_or_name: GEDCOM ID (e.g., I001) or partial name (fuzzy, case-insensitive).
Narrative Genealogy
Beyond data retrieval, this skill supports narrative genealogy — connecting facts to stories:
- Note occupations, migrations, life events when exploring a tree
- Cross-reference API/GEDCOM data with stories the user shares conversationally
- Build family narratives that explain why — not just dates and names
- Flag research opportunities: missing records, undocumented branches, conflicting dates
- Use
storycommand (GEDCOM mode) for auto-generated biographical narratives
Agent Workflow
- User asks about family history → Check if they have a FamilySearch account (API) or GEDCOM file (offline)
- API mode: Search by name → get person ID → explore ancestry/descendants/relationships
- GEDCOM mode: Load file → search → explore
- Either mode: Combine structured data with user's oral history for richer narratives
- Cross-reference: Use API to find records that fill gaps in GEDCOM data
Rate Limits & Best Practices
- FamilySearch API is free but rate-limited — cache results locally
- Never store FamilySearch usernames/passwords — OAuth tokens only
- Tokens expire; re-authenticate on 401 responses
- GEDCOM parser handles files up to ~100K individuals
- File encoding: auto-detects UTF-8 (with BOM), UTF-8, latin-1
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install familysearch - 安装完成后,直接呼叫该 Skill 的名称或使用
/familysearch触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Familysearch 是什么?
Search and analyze family history using the FamilySearch API or offline GEDCOM files for genealogy, ancestors, family trees, and historical records. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 375 次。
如何安装 Familysearch?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install familysearch」即可一键安装,无需额外配置。
Familysearch 是免费的吗?
是的,Familysearch 完全免费(开源免费),可自由下载、安装和使用。
Familysearch 支持哪些平台?
Familysearch 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Familysearch?
由 Ric Lewis(@keylimesoda)开发并维护,当前版本 v1.0.3。