by thetahealth
Turn scattered health data into answers you can trace. Self-hosted AI health data engine for lab reports, wearables and genetics, with a built-in MCP server. Run it with Docker and one LLM key, or keep every model local on llama.cpp.
# Add to your Claude Code skills
git clone https://github.com/thetahealth/mirobodyLast scanned: 5/2/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-02T06:08:56.426Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": false
}See how mirobody compares with popular alternatives.
mirobody is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by thetahealth. Turn scattered health data into answers you can trace. Self-hosted AI health data engine for lab reports, wearables and genetics, with a built-in MCP server. Run it with Docker and one LLM key, or keep every model local on llama.cpp. It has 1,374 GitHub stars.
Yes. mirobody passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/thetahealth/mirobody" and add it to your Claude Code skills directory (see the Installation section above).
mirobody is primarily written in Python. It is open-source under thetahealth on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh mirobody against similar tools.
No comments yet. Be the first to share your thoughts!
30 days in the Featured rail · terms & refunds
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Automated security scan — not a certification.
Turn scattered health data into answers you can trace.
A self-hosted AI health data engine that brings lab reports, wearables and genetic files into one standardized record. Standardize health data with one command. Try the full app in Codespaces with your own model key, or run the app, the data and the models 100% on your own machine.
English · 中文
▶ Live demo · Try one command · Open in Codespaces · 100% local
| You want to | Start here | What you need |
|---|---|---|
| Standardize names and units | One command | uv; no model or API key |
| Try the full app in your browser | GitHub Codespaces | A GitHub account and your own model API key |
| Keep the app, models and records on your machine | 100% local with Docker | Docker with Compose; 16 GB memory; no API key |
| Keep the app and records on your machine, without Docker | No Docker | Debian or Ubuntu; PostgreSQL 16; Python 3.12; your own model API key |
With uv installed, paste this into your terminal:
uvx --python 3.12 mirobody resolve "LDL cholesterol" 血红蛋白 ヘモグロビン "Total Kolesterol" 血脂
No repository clone, Docker, model or API key. uv prepares Python and the package for you; the first run needs a network connection to download them. The resolver then works offline from the bundled vocabulary.
血红蛋白 and ヘモグロビン both resolve to 718-7. 血脂 stays unresolved: it names a category, not one test. The same engine standardizes names and units across the full app.
→ Use the engine from Python or MCP
Run the web app in your browser with your own model API key. GitHub prepares the environment; you do not need to install Docker or Python on your computer.
you@mirobody.ai, code 111111, on the Email code tab. Ask "How has my cholesterol changed?" The demo holds 2,019 readings across your record and mom@mirobody.ai's, shared with you view-only.demo/upload/ on the Data page to see a new report join the record, or switch to mom's record and ask again.The app and its records run in GitHub's cloud; the model service receives the documents and questions it processes. Use the included synthetic data to explore. Codespaces has usage limits and billing; model usage is billed by your model provider. Stop the codespace when you finish. For complete control on your own machine, use the local route below.
The app, records and models all run on your own machine. No model API key needed. Docker with Compose starts the stack and llama.cpp, with a small answering model and a document reader:
git clone --depth 1 https://github.com/thetahealth/mirobody.git && cd mirobody
COMPOSE_PROFILES=local-cpu ./deploy.sh
Allow 16 GB of memory, at least 8 GB of it for Docker. No GPU is required; on Windows, run the commands in a WSL 2 terminal. The first start needs a network connection to download container images and model weights. If the registry is not reachable from your network, deploy.sh says so and retries through a mirror; DOCKER_MIRROR in .env names your own. After those downloads, document reading, standardization and answers run locally. CPU answers can take minutes; Mac, NVIDIA and Windows options explain how to use your GPU.
Open the app link the script prints. The local models are already selected; sign in with the same demo account above, ask a question or upload a sample. Which model to choose compares the local options.
Prefer Docker with a cloud model? Run ./deploy.sh without a local model profile, then paste your own model key into the printed setup link. The app and records stay on your host; the model service processes your documents and questions.
→ Self-host guide · Walkthrough · Deploy on a server
No container, and nothing pulled from a registry. On Debian or Ubuntu, PostgreSQL 16 with pgvector comes from the distribution's own packages and the app runs straight from the checkout. It is the same install the Codespaces path performs:
git clone --depth 1 https://github.com/thetahealth/mirobody.git && cd mirobody
scripts/install_native.sh # PostgreSQL, pgvector, the Python package, a .env
scripts/start_native.sh # the worker and the app on port 18060
Open the link it prints and sign in as you@mirobody.ai, code 111111: the demo record is seeded already. A model key from the printed setup link adds document extraction and answers. install_native.sh installs system packages with sudo and writes one sudoers rule for the postgres account, and says so as it runs.
The local models belong to the Docker path, so this one answers through a model service. Everything else matches the row above it in what stays on your machine: the records live in the PostgreSQL you just installed, and a name to a code never leaves the machine.
headache since last night, BP 150/95, no fever becomes a coded complaint and two coded readings; "no fever" is not logged as a fever.| Stage | What it does | Where |
|---|---|---|
| ① Collect | Files, devices and journal entries come in; the source is kept, so every reading points back to it. | collect/ |
| ② Translate | A1c, HbA1c and Glycated Hemoglobin resolve to one code, units to one standard, offline. A name it cannot place stays unresolved. |
engine/ · translate/ |
| ③ Agent | Ask over the coded record: trends, comparisons across labs and devices, a chart, and the file behind every number. | agent/ |
The model reads documents and reasons; the codes and units come from vocabularies bundled with the package, never from the model. How a reading moves through the pipeline.