Apps and switching
Which apps are used, for how long, and where people switch.
{ "app_name": "Numbers", "category": "analysis", "duration_s": 412 }
CleanSignals turns Mac activity into structured, privacy-safe signals for your product. Everything is processed on the Mac. Only the signals leave to your cloud.
Raw activity in. Clean signals out. The filtering happens on the Mac, before anything leaves it.
Notices which apps and windows are in use.
Drops text, titles and personal data on the Mac.
Labels the kind of work with on-device AI.
Builds signals: times, counts and categories.
Sends signed batches to your webhook.
A few examples. See every signal and field →
Which apps are used, for how long, and where people switch.
{ "app_name": "Numbers", "category": "analysis", "duration_s": 412 }
Labelled on the Mac. Only the label leaves.
{ "category": "analysis", "confidence": 0.84 }
Continuous pieces of work, and data copied from one tool into another.
{ "apps": ["Salesforce", "Excel", "Mail"], "duration_s": 2934, "paste_count": 3, "rework_count": 1 }
Active, idle and away time. Counts, never keys.
{ "state": "active", "duration_s": 1860 }
HMAC-signed, retried, never duplicated.
Explore the signals before you build.
Every field explained. Read the docs →
X-CleanSignals-Signature: v1=pdneHSOiM+CG… { "type": "signals.batch", "device_id": "dev_c0ffee91…", "subject": "sub_4f9c2e7a…", "data": [ { "type": "app.switch", "dwell_s": 2237 }, { "type": "work.category", "category": "analysis" }, { "type": "handover", "content": never sent } ] }
Drag CleanSignals to Applications.
Accessibility, so it can see the front app.
Tell us what your product needs to understand. We'll show you how to deliver it without the sensitive data.