Skip to main content

Overview

The Synheart Behavior Chrome Extension extends behavioral input to the desktop browser. It captures how you interact with Chrome — rhythm, attention, movement patterns — not what you read or type, and streams anonymized session events to your local Synheart Sensor Agent. It produces the same event shape as the mobile SDKs (Flutter, Kotlin, Swift), so the browser becomes another input source for the same downstream pipeline. As with the mobile SDKs, the extension is an input layer; higher-level metrics (focus, distraction, HSI fields) are derived downstream — see the Behavior overview. Distribution: Source-available. The repository is open for reading, auditing, and filing issues. Pull requests are not accepted — see the repo’s CONTRIBUTING.md. Security reports follow SECURITY.md.

Privacy posture

The extension records interaction timing and patterns only. It does not record URLs, page titles, passwords, or typed content. Tabs use anonymous labels (tab-1, tab-2). Sites are classified into generic categories only.

Site categories

Installation

From source

Load the extension in Chrome:
  1. Open chrome://extensions
  2. Enable Developer mode
  3. Click Load unpacked and select the dist folder
For iterative development, run npm run build -- --watch and use Reload on the extension card after each change.

Requirements

  • Chrome (Manifest V3)
  • A running Synheart Sensor Agent reachable on a configured host/port (typically 127.0.0.1)

Quick start

  1. Start the sensor agent.
  2. Open the extension popup, go to Sensor, set the port and auth token, choose Save, then Test Connection.
  3. Toggle the main switch to ON to begin capture. Use Stats and HSI in the popup to verify flow.
There is no account in this repo — only your local configuration.

Behavioral metrics captured

Focus and attention

Micro-motor patterns

Keystroke dynamics (timing only)

Session payload

The extension batches browser events into session payloads and POSTs them to the sensor agent.

Event type mapping

Sensor agent endpoint

Body: { "session": { ... } } as produced by the extension. Response shape varies with agent version.

Repository layout

  • Repository root: LICENSE, README.md
  • synheart-behavior/ (extension package)
    • manifest.json — Chrome MV3 manifest
    • background.js — Service worker (batch + send)
    • content.js — Behavioral capture
    • popup.html
    • src/popup.js, src/popup.css
    • icons/

Testing

Validate manifest and JavaScript syntax:
For manual verification, load unpacked from dist, open the Sensor tab, enable recording, and confirm events in your agent logs.

Resources

License

Licensed under the Apache License, Version 2.0.