Nori Health
by @danmurphy1217
Query your personal health data from wearables and nutrition logs and get AI coaching on sleep, workouts, heart rate, recovery, and health insights.
clawhub install nori-healthπ About This Skill
name: nori-health description: Query your personal health data and get coaching from Nori, your AI health coach. Use when the user asks about sleep, workouts, nutrition, weight, heart rate, HRV, or wants health insights. NOT for: medical diagnosis, prescriptions, or emergency health situations. homepage: https://nori.health metadata: {"openclaw":{"emoji":"πΏ","requires":{"env":["NORI_API_KEY"],"bins":["curl","jq"]},"primaryEnv":"NORI_API_KEY"}}
Nori Health Coach
Send health questions to Nori and return the response. Nori analyzes data from wearables (Apple Watch, Oura, Garmin, Whoop, etc.), meals, workouts, weight, and lab results.
Setup
1. Install the Nori iOS app and connect your wearables
2. In the Nori app, go to Settings > Integrations > OpenClaw
3. Generate an API key (starts with nori_)
4. Set the environment variable:
export NORI_API_KEY="nori_your_key_here"
Or add to ~/.openclaw/openclaw.json:
{
"skills": {
"entries": {
"nori-health": {
"apiKey": "nori_your_key_here"
}
}
}
}
When to Use
Usage
Send the user's message to Nori via the chat endpoint. Always forward the user's exact words.
Use jq -n to safely escape the user's message into valid JSON, and capture the HTTP status code to handle errors:
RESPONSE=$(curl -s -w "\n%{http_code}" -X POST "https://api.nori.health/api/v1/openclaw/chat" \
-H "Authorization: Bearer $NORI_API_KEY" \
-H "Content-Type: application/json" \
-d "$(jq -n --arg msg "USER_MESSAGE_HERE" '{message: $msg}')")
HTTP_CODE=$(echo "$RESPONSE" | tail -1)
BODY=$(echo "$RESPONSE" | sed '$d')if [ "$HTTP_CODE" -eq 200 ]; then
echo "$BODY" | jq -r '.reply'
elif [ "$HTTP_CODE" -eq 401 ]; then
echo "Your Nori API key is invalid. Please regenerate it in the Nori app under Settings > Integrations > OpenClaw."
elif [ "$HTTP_CODE" -eq 429 ]; then
echo "Rate limited. Wait a moment and try again."
else
echo "Something went wrong connecting to Nori (HTTP $HTTP_CODE)."
fi
Response Handling
.reply field directly to the user as plain text. Do not add markdown formatting, bullet points, or other decoration.Important
β‘ When to Use
π‘ Examples
Send the user's message to Nori via the chat endpoint. Always forward the user's exact words.
Use jq -n to safely escape the user's message into valid JSON, and capture the HTTP status code to handle errors:
RESPONSE=$(curl -s -w "\n%{http_code}" -X POST "https://api.nori.health/api/v1/openclaw/chat" \
-H "Authorization: Bearer $NORI_API_KEY" \
-H "Content-Type: application/json" \
-d "$(jq -n --arg msg "USER_MESSAGE_HERE" '{message: $msg}')")
HTTP_CODE=$(echo "$RESPONSE" | tail -1)
BODY=$(echo "$RESPONSE" | sed '$d')if [ "$HTTP_CODE" -eq 200 ]; then
echo "$BODY" | jq -r '.reply'
elif [ "$HTTP_CODE" -eq 401 ]; then
echo "Your Nori API key is invalid. Please regenerate it in the Nori app under Settings > Integrations > OpenClaw."
elif [ "$HTTP_CODE" -eq 429 ]; then
echo "Rate limited. Wait a moment and try again."
else
echo "Something went wrong connecting to Nori (HTTP $HTTP_CODE)."
fi
βοΈ Configuration
1. Install the Nori iOS app and connect your wearables
2. In the Nori app, go to Settings > Integrations > OpenClaw
3. Generate an API key (starts with nori_)
4. Set the environment variable:
export NORI_API_KEY="nori_your_key_here"
Or add to ~/.openclaw/openclaw.json:
{
"skills": {
"entries": {
"nori-health": {
"apiKey": "nori_your_key_here"
}
}
}
}