Skip to main content

AncestryLLM

AncestryLLM is a local-first platform for genealogy research tools. It combines deterministic RootsMagic and GEDCOM workflows with optional, explicitly selected LLM providers. The one-shot CLI and prompt-toolkit/Rich REPL are the only implemented product surfaces in 0.5.0. They derive commands from the same CommandSpec metadata and dispatch through the shared CommandExecutor into transport-neutral application services. Version 0.5.0 adds a bounded offline Electron shell with Home, Diagnostics, a sanitized capability summary, and local visual Settings only, backed by a private packaged sidecar. The first launch presents a bounded local welcome that asks for no account, provider, credential, genealogy data, or cloud consent. It has no genealogy, file, job, chat, provider, cloud-account, or updater surface. A supported v0.5.0 desktop release is a manually installed official unsigned installer. macOS or Windows may show an unknown-publisher or Gatekeeper prompt; verify the published checksums and release evidence before installation. Unsigned CI artifacts and unpacked development builds are verification inputs, not supported releases. The internal adapter is not a public API, and later domain adapters must reuse the existing service surface.

Documentation

The canonical documentation in docs/ is published to the AncestryLLM documentation site. The GitHub Wiki remains available as another published view of the same source; do not treat it as a separate source of truth.

Install and start

Python 3.12 through 3.14 and a working OS credential store are required. Install the isolated command with pipx:

pipx install ancestryllm
ancestry --version
ancestry --help

Install every optional LLM provider with pipx install 'ancestryllm[all-llm]'. Remote providers are never selected from installed packages or environment keys: every cloud call still requires an explicit profile and consent.

Run ancestry with no arguments for the prompt-toolkit/Rich interactive console. It is the only supported interactive console; the prompt stays responsive while background operations render live, sanitized spinner or completed-unit progress above it. One-shot and JSON output never emit terminal animation. The canonical command reference, examples, offline defaults, and privacy rules are in the CLI guide; see the console guide for interactive use and the file-ingress policy for per-format input limits and stable rejection codes.

Included modules

  • rootsmagic: immutable, bounded SELECT/CTE queries and deterministic GEDCOM export.
  • gedcom: merge, rooted subtree, quality analysis, incremental update, and rebase.
  • prompts: immutable prompt revisions with declared variables and output schemas.
  • people: curated research people, identifiers, facts, links, and provenance.
  • providers: explicit Ollama, OpenAI, Anthropic, Gemini, and OpenRouter profiles.
  • ocr: schema-validated extraction through the same provider boundary.
  • secrets: no-echo OS-keyring management; values never appear in status output.

Development

git clone https://github.com/sodejm/AncestryLLM.git
cd AncestryLLM
make bootstrap
make test
make lint
make typecheck
make security
make sbom

make bootstrap creates .venv, installs the checkout in editable mode with locked development and provider dependencies, and installs lightweight commit hooks plus the canonical pre-push quality/security gate. Use make setup when automation needs the environment without modifying Git hooks. The equivalent manual install command is .venv/bin/pip install --editable '.[all-llm,dev]'; it is for contributors, not end-user installation.

The dependency graph is locked in uv.lock. Never commit real family trees, GEDCOM exports, databases, logs, reports, secrets, or research-person data.

Read the architecture, desktop shell guide, desktop ADR, CLI guide, privacy and consent, provider guide, GEDCOM compatibility, encrypted backups, bounded file ingress, CI workflow guide, and threat model.

Versioning follows Semantic Versioning 2.0.0. The versioning policy defines the CLI contracts covered by a release.

Interoperability status

Automated round-trip and preservation tests run in CI. Ancestry, Geni, and MyHeritage imports must still be manually smoke-tested for each release; this repository does not claim production interoperability until that checklist is completed and recorded.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ancestryllm-0.5.0.tar.gz (298.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ancestryllm-0.5.0-py3-none-any.whl (319.7 kB view details)

Uploaded Python 3

File details

Details for the file ancestryllm-0.5.0.tar.gz.

File metadata

  • Download URL: ancestryllm-0.5.0.tar.gz
  • Upload date:
  • Size: 298.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ancestryllm-0.5.0.tar.gz
Algorithm Hash digest
SHA256 24ad30fadf89d27b3c72cd993cd0f34e49488c4180d6ef7d5dc65ff66039bb68
MD5 53c1dcfe57e3752940b010c400f519f2
BLAKE2b-256 a790392c36b8ac29340b6ea88a92f804d7bee0bb3c84e70d3032f7a8c22878e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for ancestryllm-0.5.0.tar.gz:

Publisher: release.yml on sodejm/AncestryLLM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ancestryllm-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: ancestryllm-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 319.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ancestryllm-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8a2eb1804ff57e7092d78f901c3624d6bb1bfc27a9946a04a3530840dae424a5
MD5 1b0e7d8b7b56b75d024a255828e83674
BLAKE2b-256 2f1795fdb0e8b9a62a774062023ba403d5e1a1db5f7e68b5668684b45f2af0be

See more details on using hashes here.

Provenance

The following attestation bundles were made for ancestryllm-0.5.0-py3-none-any.whl:

Publisher: release.yml on sodejm/AncestryLLM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page