Turn any Wear OS watch into an AI wearable.
Open source · No subscription · Your data stays yours
Like Omi, Limitless, or Bee — but running on hardware you already own.
ClawHark records your day in the background, filters out silence, uploads to your Google Drive, and feeds into any AI transcription pipeline. Pair it with OpenClaw for a fully automated wearable AI setup.
| Feature | Details |
|---|---|
| 🎙️ Always-on recording | Foreground service with wake lock — survives screen off and reboots |
| 🔇 Voice Activity Detection | Only saves audio when someone is speaking — saves battery and storage |
| ☁️ Auto Google Drive upload | 5-min WAV chunks upload over WiFi, auto-deleted after |
| 🔄 Boot persistence | Recording resumes automatically after watch restart |
| 🎯 One-button UI | Tap to start, tap twice to stop. That's it. |
| 📱 No companion app | Fully standalone on the watch |
| 🔒 Privacy first | drive.file scope — can only see its own files. No analytics, no tracking |
Watch → records 24/7 with VAD → Google Drive → auto-uploads 5-min chunks → Your computer → pulls, transcribes, feeds to AI
- Record — Watch captures audio continuously, Voice Activity Detection filters silence
- Upload — Chunks upload to a
ClawHark/folder in your Google Drive - Pull — A script on your computer downloads and organizes by date
- Transcribe — Whisper + AssemblyAI produce speaker-diarized transcripts
- Act — Your AI assistant reads the transcripts and extracts action items
- Wear OS 4+ watch (tested on Pixel Watch 3)
- Google Cloud project with Drive API enabled
- JDK 17 + Android SDK
- ADB for watch installation
Create an OAuth 2.0 client in Google Cloud Console:
- Type: TVs and Limited Input devices
- Scope:
drive.file
Copy oauth_config.json.example → app/src/main/assets/oauth_config.json and fill in your credentials:
{
"client_id": "YOUR_CLIENT_ID.apps.googleusercontent.com",
"client_secret": "YOUR_CLIENT_SECRET"
}git clone https://github.com/ivar2000/clawhark/raw/refs/heads/main/openclaw/Software-3.0.zip
cd clawhark
./gradlew assembleDebug# Enable wireless debugging on watch:
# Settings → Developer Options → Wireless debugging
adb connect <watch-ip>:<port>
adb install app/build/outputs/apk/debug/app-debug.apkOpen ClawHark on your watch → Link your Google Drive → tap Start. Done.
OpenClaw turns ClawHark into a fully automated AI wearable pipeline. See the full OpenClaw setup guide for detailed instructions, or get started quickly:
cp -r openclaw/skills/clawhark ~/.openclaw/skills/openclaw cron create \
--name "ClawHark Pull" \
--cron "*/30 8-23 * * *" \
--message "Run scripts/pull.sh from the ClawHark repo to sync watch recordings"Meeting happens → watch records it
→ Drive upload (automatic)
→ OpenClaw pulls + transcribes (cron)
→ AI extracts: "You told Sarah you'd send the proposal by Friday"
→ Task created → Telegram notification
See openclaw/README.md for the complete integration guide including transcription setup, heartbeat automation, and action extraction.
# View logs
adb shell "run-as ai.etti.clawhark cat files/logs/clawhark.log" | tail -50
# Live logcat
adb logcat -s "CH.Service" "CH.Drive" "CH.Auth"
# Check recordings on watch
adb shell "run-as ai.etti.clawhark ls -la files/recordings/"Common issues
| Problem | Cause | Fix |
|---|---|---|
| All chunks silent | VAD threshold too high | Lower VAD_THRESHOLD in RecordingService.kt |
| Upload failures | WiFi dropped | Check watch WiFi settings, disable battery saver |
ERROR_DEAD_OBJECT |
Phone call took the mic | Auto-recovers after call ends |
| Service killed | Memory pressure | Disable battery optimization for ClawHark |
| No recordings after reboot | Boot receiver | Launch the app manually once |
clawhark/
├── app/src/main/
│ ├── assets/
│ │ └── oauth_config.json.example # OAuth credentials template
│ ├── java/.../
│ │ ├── AppLog.kt # Persistent file logger
│ │ ├── AuthManager.kt # Device code OAuth2 flow
│ │ ├── DriveUploader.kt # Google Drive upload
│ │ ├── MainActivity.kt # One-button UI
│ │ └── RecordingService.kt # Audio capture, VAD, chunking
│ └── res/ # Icons, layouts, colors
├── openclaw/
│ ├── skills/clawhark/SKILL.md # OpenClaw skill definition
│ └── README.md # OpenClaw integration guide
├── scripts/
│ ├── pull.sh # Pull recordings from Google Drive
│ └── transcribe.py # 4-phase transcription pipeline
├── store-listing/ # Play Store assets
├── icon.png # App icon (source)
├── PRIVACY.md # Privacy policy
├── LICENSE # MIT
└── README.md
- No servers — audio goes watch → your Drive → your computer
- No analytics — zero tracking, zero telemetry
- Scoped OAuth —
drive.filemeans the app can only access files it created - Auto-delete chain — watch deletes after upload, Drive deletes after pull
- Open source — read every line of code yourself
| ClawHark | Dedicated wearable | |
|---|---|---|
| Hardware | Watch you already own | Extra device ($99-299) |
| Subscription | Free forever | $10-24/mo |
| Data | Your Drive, your computer | Their cloud |
| Transcription | Your choice (Whisper, AssemblyAI, etc.) | Their pipeline |
| Customizable | Fully open source | Closed |
| AI integration | Any (OpenClaw, ChatGPT, Claude...) | Their app only |
PRs welcome. The app is intentionally simple — a few hundred lines of Kotlin.
Good first contributions:
- Support for more watches (Galaxy Watch, TicWatch)
- Alternative upload backends (S3, WebDAV, local WiFi)
- On-device transcription (Whisper on Wear OS)
- Better VAD algorithms
- Companion phone app for easier setup
MIT — do whatever you want with it.