Skip to main content
Docker runs the web app, Postgres, a background worker and synthetic demo records. Install Docker with Compose; on Windows, use a WSL 2 terminal. You do not need to install Python or Node.js, and a GPU is optional. Mirobody is available under Apache 2.0 on GitHub.

First answer in three steps

1

Start the stack

The script uses OpenSSL to generate secrets in .env, downloads the application image, starts the demo environment and prints a setup link.
2

Choose a model

Open the printed link and paste one model key: OpenRouter, OpenAI, Gemini, Anthropic, DeepSeek, DashScope, or any OpenAI-compatible gateway. The key is kept only after one real request through it works, and is stored encrypted; Settings › Model changes it later, without a restart. To keep every model on this machine instead, see Where the models run.
3

Sign in and ask

Open and sign in as you@mirobody.ai with code 111111 on the Email code tab. Ask “How has my cholesterol changed?”: the answer charts the trend and names the file behind each number. Then upload a file from demo/upload/ on the Data page, or switch to the record mom@mirobody.ai shares with you.
The walkthrough follows the same record through five scenes. For real records, apply the settings in Deploy on a Server before the first start; after a demo, follow the existing-demo path to start with clean data volumes.
From the engine checkout:
The mirobody service should be healthy, and the health response includes version and agent. mirobody doctor names the entry each model surface selected; --probe sends each a real request. A key added to .env later takes docker compose up -d; docker compose restart does not re-read .env. Troubleshooting lists the common failures.
Download and extract the source archive instead:

Where the models run

To run the models in Docker beside the stack, start it with a Compose profile instead of the plain ./deploy.sh:
These profiles configure the connection automatically. The first request waits for the model download. On a Mac, run llama-server on the host to use the GPU. See Run Locally for platform setup and Choosing a Model for the available options. A cloud API key in .env takes priority; use the overrides in Configuration to select local models explicitly.

What leaves the machine

Records stay in your Postgres database. Mirobody does not send usage telemetry. External data transfers depend on the services you enable: Encryption at rest covers chat, uploaded files, medication text and your profile, not yet readings or genotypes. The app listens on 127.0.0.1 only; before it reaches a network you do not control, read , which lists every address the server can call.

Export and backup

Readings export as CSV or JSON, the visible record streams as NDJSON, genotypes export as VCF or FHIR, and shell/backup.sh makes the complete copy of the database and uploaded files. Export Your Data has the routes and their limits.

Next steps

Connect your agent

Claude Code, Codex, Cursor or Gemini CLI over MCP, with a personal link from Settings.

Use your own data

Reports, photos and spreadsheets, then devices and Apple Health exports.

Configuration

Model keys, local models, configuration files and deployment settings.

Deploy on a Server

Production settings, secrets, HTTPS, upgrades and backups.
To resolve names and units in your own code without the stack, see the library. A self-hosted engine serves the web client at /, its own HTTP API at /api/* and MCP at /mcp.

Contributing

The most useful contribution is a term the resolver gets wrong. Run mirobody resolve "<term>"; if the answer is wrong or empty, report it, or add a row to together with a case in . The full workflow is in ; security reports go through a private advisory, as describes.