empathai-core
v0.3.1
Published
Non-intrusive behavior-based emotion detection SDK (keyboard & mouse) — EmpathAI core.
Downloads
35
Maintainers
Readme
@empathai/core
EmpathAI Core — lightweight, non-intrusive emotion detection for web apps (keyboard + mouse).
What it does
empathai-core analyzes user interaction signals (mouse movement, typing rhythm, clicks) and returns inferred emotional states (e.g. focused, frustrated, bored, neutral) together with a basic confidence score.
It is intentionally privacy-first — no camera/mic required.
What EmpathAI Core Does
- Captures non-intrusive user behavior signals
- Infers basic emotional states (deterministic v1)
- Emits structured emotion data with confidence & timestamp
- Works entirely on the client
- Stores no personal data
- Safe for BFSI / SaaS / FinTech / enterprise / privacy-sensitive environments
What EmpathAI Core Does NOT Do
- No camera access
- No microphone access
- No personal data collection
EmpathAI Core provides signals, not decisions.
Installation
npm install empathai-core
# or
pnpm add empathai-coreUsage Examples
JavaScript (Framework-Agnostic)
import { createEmpathAI } from 'empathai-core';
const empathAI = createEmpathAI({
onEmotionDetected: (emotion) => {
console.log('Emotion detected:', emotion);
},
// Optional configuration
signalWindowMs: 3000, // 3 second window
analysisIntervalMs: 1000, // Analyze every second
mouseThrottleMs: 50, // Throttle mouse events
confidenceThreshold: 0.3, // Minimum confidence
debugMode: false, // Enable for debugging
});
empathAI.init();
// Optional cleanup
window.addEventListener('beforeunload', () => {
empathAI.destroy();
});Java Backend with Web Frontend
Frontend (JavaScript)
import { createEmpathAI } from 'empathai-core';
const empathAI = createEmpathAI({
onEmotionDetected: (emotion) => {
fetch('/api/emotion', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(emotion),
});
}
});
empathAI.init();Backend (Spring Boot example)
@RestController
@RequestMapping("/api")
public class EmotionController {
@PostMapping("/emotion")
public ResponseEntity<Void> receiveEmotion(@RequestBody EmotionPayload payload) {
// Store, analyze, or react to emotion signal
return ResponseEntity.ok().build();
}
}Python Backend with Web Frontend
Frontend (JavaScript)
import { createEmpathAI } from 'empathai-core';
const empathAI = createEmpathAI({
onEmotionDetected: (emotion) => {
fetch('/emotion', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(emotion),
});
}
});
empathAI.init();Backend (Flask example)
from flask import Flask, request
app = Flask(__name__)
@app.route("/emotion", methods=["POST"])
def receive_emotion():
data = request.json
# Process emotion signal
return "", 200License
MIT
