Apple Health Assistant
In this guide, you will learn how to set up an Apple Health Assistant using PromptQL and Hasura. This assistant empowers you to analyze your own Apple Health data by interacting in natural language. You’ll import your health metrics from an iPhone into a PostgreSQL database, connect it with PromptQL, and interact with the data.
Here’s a sample conversation:

Check out the GitHub repo.
Prerequisites
Install the DDN CLI
To use this guide, ensure you've installed/updated your CLI to at least v2.28.0
.
- macOS and Linux
- Windows
Simply run the installer script in your terminal:
curl -L https://graphql-engine-cdn.hasura.io/ddn/cli/v4/get.sh | bash
Currently, the CLI does not support installation on ARM-based Linux systems.
- Download the latest DDN CLI installer for Windows.
- Run the
DDN_CLI_Setup.exe
installer file and follow the instructions. This will only take a minute. - By default, the DDN CLI is installed under
C:\Users\{Username}\AppData\Local\Programs\DDN_CLI
- The DDN CLI is added to your
%PATH%
environment variable so that you can use theddn
command from your terminal.
Install Docker
The Docker-based workflow helps you iterate and develop locally without deploying any changes to Hasura DDN, making the
development experience faster and your feedback loops shorter. You'll need Docker Compose v2.20
or later.
Validate the installation
You can verify that the DDN CLI is installed correctly by running:
ddn doctor
Export your Apple Health Data
This is a private health assistant and it relies on the Apple Health data of the user. In order to export the Health data from your iPhone, follow the instructions below:
- Go to the Health app on your iPhone.
- Tap your picture or initials at the top right.
- If you don’t see your picture or initials, tap Summary or Browse at the bottom of the screen, then scroll to the top of the screen.
- Tap Export All Health Data, then choose a method for sharing your data. If you have a Macbook, share it via AirDrop to get started quickly. Otherwise, use Google Drive to save and download.
Here are the docs on Apple Support around this. Do note that the export can take some time depending on how much data you have. Ensure your phone doesn't lock during the export to prevent interruption.
Import your Apple Health data into PostgreSQL
Step 1: Clone the project
git clone [email protected]:praveenweb/apple-health-ai-assistant.git
cd apple-health-ai-assistant
Step 2: Copy Apple Health export.zip
Copy the export.zip
file obtained from the Apple Health export above into the root directory of the git repo you just
cloned.
Step 3: Configure environment variables
cp .env.sample .env
The default Postgres credentials should work. Feel free to change them as necessary.
Step 4: Start the data import using docker compose
docker compose up -d –build
This should run the Python program, which takes in the export.zip
that was placed in the root directory, unpacks and
parses the XML data, and inserts it into the PostgreSQL database.
Note: Depending on how big your health export is, it should take anywhere between 30 seconds to 2 minutes to fully import the data. The schema will be initialized quickly and the data import happens in the background, so you can proceed to follow the steps below.
Build your PromptQL app
Now, let's set up the Hasura DDN project with PromptQL to start exploring the data in natural language!
- Set up the Hasura DDN project already scaffolded in the repo:
cd ddn-project
ddn supergraph build local
ddn project init
- Add Anthropic API key to the
.env
.
Get an api key from https://console.anthropic.com/settings/keys
...
ANTHROPIC_API_KEY=<your-anthropic-api-key>
To use an OpenAI API key instead, you’ll have to set the OPENAI_API_KEY
key-value in your .env
file and change the
environment variable LLM to openai
in the compose.yaml file.
- Start the DDN project
Let's start the DDN project by executing the following command:
ddn run docker-start
- Open the local DDN Console to start exploring:
ddn console --local
This should open up your browser (or print a browser URL) for displaying the Hasura Console. It’ll typically be something like: https://console.hasura.io/local?engine=localhost:3280&promptql=localhost:3282
Ask questions about personal health
The app has metadata about various health metrics and it can answer a range of questions; as simple as "What’s my step count per day?" to as complicated as, "Give me a nutrition plan based on my weight / BMR, activity and heart health to reduce 1 pound every 2 weeks."
Here's a sample of what you can ask:
- What's my average walking per day?
- How much time am I spending outdoors?
- Based on my weight and BMR, tell me if I'm on track to lose weight and what should my calorie intake be for losing 1 pound per week. Analyze data over the last 3 months.
- Am I being exposed to a lot of noise in the environment? Check the impact on my hearing health.
- How is my heart health?
- How active have I been over the last few months? Are there any patterns and anomalies in my activity?
- How much exercise activity did I do in the last year? What's the trend looking like?
Clean up and restart your app
If you want to reset the Apple Health data and start from scratch, you can execute the following in the root directory of the repo:
docker compose down -v && docker compose up -d --build
Interactive demo
Here is an interactive demo of the AI Assistant. We'll start by looking at the exported data and then talk to it with
PromptQL! You can click the Replay
button at any point to restart the demo.