SenseKit is an open-source context runtime for AI agents.
It runs on iPhone, listens to passive sensor signals, turns them into deterministic context events, and delivers those events to OpenClaw over signed HTTPS.
The goal is simple: an AI agent should understand important real-world transitions without asking the user to build Shortcuts automations first.
SenseKit is:
- passive-first
- event-first
- deterministic
- local-first
- OpenClaw-first
That means:
- the iPhone app should do useful work right after install and permissions
- event detection uses fixed weights and thresholds, not ML guesses
- raw sensor data stays local by default
- the main integration is an outbound webhook, not a phone-hosted server
This repository is a monorepo. It keeps the iOS runtime, shared wire contracts, OpenClaw integration helpers, and project docs together because they change together.
This repo already includes the first serious product scaffolding:
- a deterministic corroboration engine for passive events
- a Swift runtime package with Motion, Location, HealthKit, power, and calendar collectors
- SQLite-backed runtime state, queue, and audit log
- signed webhook delivery for OpenClaw
- a SwiftUI app shell with onboarding, settings, audit log, and debug timeline scaffolding
- a separate bench harness target for field testing
- shared JSON schemas and TypeScript validation helpers
What is not proven yet:
- real-device wake precision
- real-device driving precision
- battery impact over normal daily use
- final onboarding polish
In other words: the architecture and build system are in place, but the passive claims still need bench validation.
apps/ios: iPhone app, bench harness, Swift runtime package, and SwiftUI packagepackages/contracts: JSON schemas, fixtures, and TypeScript validation helperspackages/openclaw-skill: example skill packaging for OpenClawpackages/openclaw-plugin: plugin surface for later OpenClaw integration workpackages/examples: webhook and QR bootstrap examplesdocs: ADRs, privacy notes, bench plans, and runbooks
Requirements:
- Xcode with
iOS 17+SDK support - Node.js and
pnpm - Ruby only if you want to regenerate the Xcode project with
scripts/generate_ios_project.rb
Install JavaScript dependencies:
pnpm installRun the TypeScript workspace checks:
pnpm build
pnpm test
pnpm contracts:checkRun Swift package tests:
cd apps/ios/Packages/SenseKitRuntime && swift test
cd apps/ios/Packages/SenseKitUI && swift testBuild the iOS app targets:
xcodebuild -workspace apps/ios/SenseKit.xcworkspace -scheme SenseKitApp -sdk iphonesimulator -destination 'generic/platform=iOS Simulator' CODE_SIGNING_ALLOWED=NO build
xcodebuild -workspace apps/ios/SenseKit.xcworkspace -scheme SenseKitBenchApp -sdk iphonesimulator -destination 'generic/platform=iOS Simulator' CODE_SIGNING_ALLOWED=NO buildIf you want to help on the MVP, the highest-value work is:
- passive wake validation on real devices
- driving detection validation on real commutes
- background wake and delivery reliability
- onboarding and debug timeline polish
The best starting docs are:
docs/adrdocs/bench/phase-1a-field-test.mddocs/runbooks/runtime-bootstrap.md
- License: Apache-2.0
- Contributions are welcome. See
CONTRIBUTING.md - Architecture decisions live in
docs/adr