Content
# Indaga-agent
**A local-first, multi-omic personal-health agent runtime.** The agent backend for the
Indaga product (the consumer app + website are a separate codebase). Where a genome agent
turns your DNA into a queryable, honest expert, Indaga-agent does the same across **every
modality** — genome, labs, wearables, CGM, and the derived metrics built from them — in one
coherent system, queryable by any MCP-compatible host (Claude Desktop, Claude Code, …).
It is built on three spines, applied to all of your health data:
1. **A persistent per-subject Active Health Index** (`~/.indaga/<subject>/active-health-index.sqlite`)
behind a storage-agnostic port — local SQLite now; a hosted / zero-knowledge adapter later,
with no upstream change.
2. **One evidence-envelope honesty contract.** Every answer is typed: `finding_state`,
`answer_readiness`, and `negative_inference`. *Absence is never "normal".* A lab that was
never measured returns `not_measured`; a Biological Midnight before 14 nights is
`index_incomplete`; a stale CGM read refuses to claim your current glucose. This is the
multi-omic generalization of genomic callability, and it is the point of the product.
3. **A dispatcher + per-capability skills.** `tools/list` shows a small base set; everything else
is reached via `indaga.invoke` after the agent reads that capability's `SKILL.md`
(progressive disclosure).
## Quickstart
```bash
# 1 — clone (Python ≥3.10; 3.11/3.12 recommended for the predictor venvs)
git clone https://github.com/birinets/indaga-agent.git && cd indaga-agent
# 2 — install. RECOMMENDED: uv — sudo-free, no system packages, makes its own venv.
# (curl the installer if you don't have it: curl -LsSf https://astral.sh/uv/install.sh | sh)
uv venv .venv && uv pip install --python .venv/bin/python -e ".[dev]"
# …or with stock pip (needs the python3-venv package — e.g. `sudo apt install python3.12-venv`
# on Debian/Ubuntu, which ship python3 without ensurepip):
# python3 -m venv .venv && . .venv/bin/activate && pip install -e ".[dev]"
# 3 — verify the engine on synthetic fixtures (no personal data needed)
.venv/bin/python -m pytest -q # ~146 tests
.venv/bin/python -m ruff check src tests
# 4 — download the reference libraries you want (cached in ~/.indaga, queried OFFLINE).
# `indaga` lives in the venv; activate it (`. .venv/bin/activate`) or call `.venv/bin/indaga`.
.venv/bin/indaga install --check # see the catalog + what's installed
.venv/bin/indaga install clinvar-grch38 pgs-catalog-metadata gene-disease-validity \
reactome-pathways hpa-tissue-rna gene-ontology
# 5 — wire it into your MCP host (writes the config + symlinks the skills)
.venv/bin/indaga install-host claude # also: openclaw | hermes (preview without --write)
```
**Bring your own genome** — a consumer chip export (23andMe / MyHeritage / AncestryDNA):
```bash
# imputation needs the pyliftover extra + a Java 17 runtime + bcftools/bgzip/tabix on PATH.
# sudo-free way to get the system tools: micromamba install -c conda-forge -c bioconda bcftools htslib openjdk=17
uv pip install --python .venv/bin/python -e ".[impute]"
.venv/bin/indaga impute --subject me --chip /path/to/your_raw_dna.txt # liftover + Beagle/1000G → GRCh38 (pulls the panel)
.venv/bin/indaga annotate --subject me # ClinVar P/LP · PGS · GWAS · ACMG · PGx · panels
```
> Chip-tier works with **no toolchain at all**: skip `impute` and run `annotate` directly on the raw
> chip (`dna/raw/`) — the Active Genome Index is built in pure Python (ClinVar P/LP screen + PGS), and
> imputation only adds the deeper imputed-variant tier.
…then ask your host: *"any ACMG-actionable secondary findings?"*, *"what diagnostic panels is my LDLR in?"*,
*"what's my biological midnight?"*, *"how's my glucose?"* — and watch the **honesty** surface (it refuses to
guess what wasn't measured).
> **Privacy:** this repo ships **zero personal data**. Reference libraries and your per-subject genome/health
> data live only in `~/.indaga/<subject>/` on your own machine; nothing is uploaded, and grounding/panels run
> from downloaded files (no per-variant egress). The only optional network call at query time is a single
> gnomAD lookup during variant resolution, which is disclosed.
## Layout
```
Indaga-agent/
├── README.md AGENTS.md CLAUDE.md INSTALL_FOR_AGENTS.md llms.txt llms-full.txt
├── pyproject.toml
├── skills/ # agent-facing capability skills (progressive disclosure)
│ ├── SKILL.md # root skill: routing + the honesty contract
│ ├── genome/ grounding/ journal/ synthesis/ analyze/ (SKILL.md each)
│ ├── circadian/ labs/ metabolic/ health-index/ domains/ (SKILL.md each)
│ └── conventions/evidence-envelope.md · output-rules.md
└── src/indaga/
├── runtime/ # ~/.indaga home, per-subject paths, secured 0600, audit, jobs, observability
├── store/ # the port (Reader/Writer/Store) + typed model + LocalSQLiteStore + conformance
├── evidence/ # the multi-omic EvidenceEnvelope + confidence calculus + allele-safe store reader
├── reference/ # the reference-library registry + downloader (ClinVar, PGS, Reactome, GenCC, …)
├── genome/ # AGI, VRS allele identity, predictors/ACMG, panels (ACMG SF/carrier), gene_disease …
├── operations/ # Operation model + registry + JSON-schema validation + indaga.invoke dispatcher
├── capabilities/ # genome · grounding (7 tools) · journal · synthesis · analyze · circadian · labs · …
├── spine/ # deterministic science (24h cosinor Biological Clock, CGM, PGS)
├── interfaces/ # MCP server (2025-11-25, stdio) + CLI + host_install
└── eval/ # envelope / allele-safety / genome-parity / analyze honesty gates
```
## Status
A working multi-omic engine: own genome pipeline (chip → **imputation** → Active Genome Index →
annotation), **9 analytical-grounding tools** (region/regulatory/pathways/GO/expression/celltype/gene/
gene-disease/diagnostic-panels — all local, zero-egress), the full **industry-standard panel stack**
(ACMG SF v3.3 · GenCC/ClinGen validity · PanelApp · ACMG carrier-113 · CPIC · PGS), a **VRS-style durable
allele identity**, an investigation **journal**, **multi-omic synthesis**, and a self-contained `analyze`
report — all behind one evidence-envelope honesty contract and a progressive-disclosure skills layer
(**~49 tools**). Gates: `pytest` + conformance / envelope / allele-safety / genome-parity / analyze.
Indaga-agent is wellness **decision-support, not medical diagnosis**.
**License:** [AGPL-3.0-or-later](LICENSE) — free to use, study, and modify; if you run a modified version
as a network service, you must offer your source changes to its users (the AGPL network clause). For a
commercial license without the copyleft obligations, get in touch.
Connection Info
You Might Also Like
Train-in-Silence
The first Task-Aware MCP server and automated VRAM calculator for LLM...
stacklit
108,000 lines of code. 4,000 tokens of index. One command makes any repo...
AppClaw
AI-powered mobile automation agent — describe what you want in plain...
pdf-mcp
Production-ready MCP server for PDF processing with intelligent caching....
kotadb
Local-only code intelligence API for AI developer workflows (Bun +...
gemini-api-docs-mcp
A remote HTTP MCP server for searching Google Gemini API documentation.