iOS app coming soon

Stop explaining
yourself to your AI.

ClawPulse syncs your health and context from your iPhone to your OpenClaw agent. Encrypted on-device. The server sees nothing.

💤 sleep stages💓 heart rate📊 HRV👟 steps⚡ active energy🏃 activity type🎯 focus mode🔋 battery📍 location (v2)📅 calendar (v2)

What changes when your AI has context

Generic advice is useless. Context makes it real.

🌅 Morning check-in
Without ClawPulse

"Good morning! What's your plan for today?"

With ClawPulse

"You slept 5h and your HRV is 20% below your baseline. Might be worth a lighter day — want me to reschedule anything?"

🏋️ Workout advice
Without ClawPulse

"Sure, here's a workout plan for today!"

With ClawPulse

"Your recovery looks low right now. A walk or rest day might serve you better than a hard session today."

💬 During the day
Without ClawPulse

"How can I help you today?"

With ClawPulse

"You've been in Work Focus for 3 hours and your battery is at 12%. Quick break? I can also grab a charger reminder."

How it works

Your phone syncs privately. Your agent thinks smarter.

📡

Your phone syncs in the background

ClawPulse collects health and context from your iPhone — sleep, HRV, activity, focus mode, battery — and encrypts it on-device before sending anything anywhere.

🔒

A private relay holds the data

The encrypted blob lands on a relay server. It can't read it. Nobody can — not us, not the server, not any third party. Only you have the password.

🧠

Your AI agent picks it up

Your OpenClaw agent fetches and decrypts the data locally on your own machine. No cloud service reads your health data. The insight stays between you and your agent.

Get started

Three steps. Under five minutes.

01
📱

Install the iOS app

Download ClawPulse on your iPhone. Choose which data to share — each toggle requests only the permissions it needs. Nothing runs without your say.

02
🔑

Set your password

Pick a password. It never leaves your device — it derives your AES-256 encryption key locally. The app gives you a token + password pair to copy into OpenClaw.

03
🤖

Install the ClawPulse skill

Add the ClawPulse skill to your OpenClaw instance and paste your token and password. Your agent will start picking up context automatically — however your OpenClaw is configured to reach you.

🔒 Privacy-first by design

The server sees
absolutely nothing.

Your health data stays yours — and no one else's.

Your health data never travels unencrypted. ClawPulse encrypts everything on your device using AES-256 before the first byte hits the network. Decryption happens only on your OpenClaw instance — never on any server.

Even if the relay server is fully compromised, your data is useless without your password. We can't read your data. No one can.

Your iPhone
Encrypts payload with AES-256
🟢 On-device
Relay Server
Stores encrypted blob — sees nothing
🔒 Opaque
Your OpenClaw
Fetches + decrypts locally
🟢 Private
token → SHA256(uuid)
key → PBKDF2(password, salt=uuid)
payload → AES-GCM(data, key)
POST /sync { token, payload }
🏠

Self-host for free

The ClawPulse server is fully open source under MIT. Run it on any server, VPS, or home lab. One command to get started.

# Option A — clone + run
git clone github.com/rodrigocava/clawpulse
cd clawpulse && make run

# Option B — one-liner
curl -O .../docker-compose.ghcr.yml
docker compose -f docker-compose.ghcr.yml up -d
View on GitHub →
☁️

Hosted option (coming soon)

Don't want to manage a server? Use our hosted relay for a small annual fee. Zero config. Your data stays encrypted — we can't read it either.

  • ~$12-20/year
  • Zero setup
  • Same encryption — we see nothing
  • Cancel anytime
Notify me when available →

Evolvable payload schema

Versioned + modular. New data types are additive. Old parsers ignore unknown fields.

// POST /sync — encrypted before sending
{
  "v": 1,
  "sent_at": "2026-02-18T10:00:00Z",
  "modules": {
    "health": {
      "sleep": [{ "stage": "deep", "duration_min": 94 }],
      "hrv": [{ "value": 42, "unit": "ms" }],
      "steps": { "date": "2026-02-17", "count": 8432 }
    },
    "context": { "focus_mode": "sleep", "battery": 0.82 }
  }
}