← Back to Skills Marketplace
keylimesoda

Familysearch

by Ric Lewis · GitHub ↗ · v1.0.3
cross-platform ✓ Security Clean
375
Downloads
0
Stars
0
Active Installs
4
Versions
Install in OpenClaw
/install familysearch
Description
Search and analyze family history using the FamilySearch API or offline GEDCOM files for genealogy, ancestors, family trees, and historical records.
README (SKILL.md)

FamilySearch Genealogy Skill

Two modes of operation:

  1. Live API (primary) — Query FamilySearch directly for person search, pedigree, descendants, historical records
  2. Offline GEDCOM — Parse exported .ged files for local exploration, narratives, and statistics

Mode 1: FamilySearch API (Primary)

Prerequisites

  1. FamilySearch Account — Free at \x3Chttps://www.familysearch.org>
  2. Developer App Key — Register at \x3Chttps://www.familysearch.org/developers/>
  3. 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:

  1. Direct user to: https://ident.familysearch.org/cis-web/oauth2/v3/authorization?response_type=code&client_id={APP_KEY}&redirect_uri={REDIRECT_URI}
  2. User logs in, grants access
  3. 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}"
  1. Store returned access_token in 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 story command (GEDCOM mode) for auto-generated biographical narratives

Agent Workflow

  1. User asks about family history → Check if they have a FamilySearch account (API) or GEDCOM file (offline)
  2. API mode: Search by name → get person ID → explore ancestry/descendants/relationships
  3. GEDCOM mode: Load file → search → explore
  4. Either mode: Combine structured data with user's oral history for richer narratives
  5. 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
Usage Guidance
This skill appears to do what it claims: call FamilySearch APIs (when you provide an OAuth token) and parse GEDCOM files you point it at. Before installing or running it, consider: (1) only provide a FAMILYSEARCH_TOKEN if you trust the skill and want live API lookups — the token will be used to call api.familysearch.org; (2) GEDCOM mode reads local files you specify, so don't point it at sensitive non-gedcom files; (3) the script uses the macOS 'security' tool as a convenience to read Keychain entries if available — it only tries that when no env var is set; (4) inspect the included scripts yourself (they are small and plain Python) if you have doubts. If you do not want the skill to access live FamilySearch data, simply use it in offline GEDCOM mode without setting FAMILYSEARCH_TOKEN.
Capability Analysis
Type: OpenClaw Skill Name: familysearch Version: 1.0.3 The skill bundle is benign. It implements its stated purpose of interacting with the FamilySearch API and parsing local GEDCOM files. The `familysearch.py` script uses `subprocess.run` to securely retrieve credentials from the macOS Keychain, which is a legitimate and controlled use of system commands. Network requests are confined to the official FamilySearch API domain. The `gedcom_query.py` script is a self-contained parser for local files, with no external dependencies or dynamic code execution. There is no evidence of data exfiltration, malicious execution, persistence mechanisms, prompt injection against the agent, or obfuscation. Any potential vulnerabilities (e.g., DoS from malformed GEDCOM files, hypothetical server-side path traversal via API parameters) are inherent risks of processing untrusted input or interacting with external services, not indicators of malicious intent within the skill itself.
Capability Assessment
Purpose & Capability
Name/description match the included scripts and SKILL.md. The Python scripts implement FamilySearch API calls and an offline GEDCOM parser, which are appropriate for the stated genealogy functionality.
Instruction Scope
SKILL.md instructs only FamilySearch OAuth token storage/retrieval and GEDCOM file usage. The runtime instructions and scripts operate on the FamilySearch API endpoints and user-supplied GEDCOM files; they do not attempt to read arbitrary system files or call unexpected external endpoints.
Install Mechanism
No install spec; this is instruction-plus-script only. No external downloads or package installs are requested, so nothing is written to disk beyond running the included scripts.
Credentials
No required environment vars are declared in the registry metadata. The SKILL.md documents an optional FAMILYSEARCH_TOKEN env var and macOS Keychain storage for tokens, and the script checks FAMILYSEARCH_TOKEN (and keychain as a fallback). This is proportionate to API mode. Minor inconsistency: SKILL.md mentions storing an app key and token; the included script only attempts to fetch the token from the environment or macOS Keychain (it does not perform a client-secret exchange locally).
Persistence & Privilege
Skill is not force-included (always: false) and does not request elevated platform privileges or modify other skills. It can be invoked by the agent, which is expected behavior for skills.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install familysearch
  3. After installation, invoke the skill by name or use /familysearch
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.3
- Improved parsing in scripts/gedcom_query.py for increased reliability with GEDCOM files. - No user-facing command or feature changes.
v1.0.2
- Added support for reading the FamilySearch API OAuth token from the FAMILYSEARCH_TOKEN environment variable, in addition to macOS Keychain. - Documentation updated to reflect new credential loading options. - No changes to GEDCOM or command structure.
v1.0.1
- Added an "os" field specifying macos and linux compatibility. - Introduced a "credentials" section describing OAuth 2.0 token requirements for API mode. - Listed required binary ("python3") under "bins". - No functional changes to features or usage; documentation and metadata updates only.
v1.0.0
Initial release of the FamilySearch genealogy skill. - Search and analyze family trees using the live FamilySearch API or offline GEDCOM files. - Supports person search, pedigree charts, descendants, relationships, and historical record lookup via API. - Allows exploration, fuzzy searching, narrative biographies, and statistics from exported GEDCOM files. - Designed to answer genealogy and family history queries, including ancestor lookups and family tree navigation. - Offers both detailed data retrieval and narrative genealogy features.
Metadata
Slug familysearch
Version 1.0.3
License
All-time Installs 0
Active Installs 0
Total Versions 4
Frequently Asked Questions

What is Familysearch?

Search and analyze family history using the FamilySearch API or offline GEDCOM files for genealogy, ancestors, family trees, and historical records. It is an AI Agent Skill for Claude Code / OpenClaw, with 375 downloads so far.

How do I install Familysearch?

Run "/install familysearch" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Familysearch free?

Yes, Familysearch is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Familysearch support?

Familysearch is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Familysearch?

It is built and maintained by Ric Lewis (@keylimesoda); the current version is v1.0.3.

💬 Comments