@user-intent-detector/core
v0.1.1
Published
Core logic for detecting user intent such as exit, conversion, hesitation, and confusion via event tracking.
Downloads
7
Maintainers
Readme
@user-intent-detector/core
Lightweight, framework-agnostic utility to track user intent on the web — including exit, hesitation, conversion, idling, and more. Designed to be used with or without a UI.
✨ Features
- Detects various user intent types:
- Exit intent (mouse leaves the viewport)
- Conversion (clicks, hovers, etc.)
- Hesitation (slow or uncertain mouse movement)
- Confusion (rapid, erratic interaction)
- Idling (no activity for a while)
- Small size and zero dependencies
- Framework-agnostic (can be used in Vanilla JS, React, Vue, etc.)
- Extendable for custom behavior
📦 Installation
npm install @user-intent-detector/core
# or
pnpm add @user-intent-detector/core
# or
yarn add @user-intent-detector/core🚀 Usage
import { UserIntentTracker } from '@user-intent-detector/core';
const tracker = new UserIntentTracker({
onIntentDetected: (intent) => {
console.log('User intent detected:', intent);
// Possible values: "exit", "conversion", "hesitation", "confusion", "idle"
},
});
// Start tracking
tracker.startTracking();
// Optional: Stop tracking later
// tracker.stopTracking();⚙️ Options
The UserIntentTracker accepts the following options:
| Option | Type | Description |
|-------------------|-------------------------------|-------------------------------------------------|
| onIntentDetected| (intent: string) => void | Callback triggered when an intent is detected |
| idleTimeMs | number (default: 60000) | Time in ms to consider user as idle |
| debug | boolean (default: false) | Enable logs for debugging |
📘 Intent Types
The tracker detects and emits one of the following intents:
- exit – User moves mouse toward closing or switching tab
- conversion – User performs meaningful actions (e.g., clicks, hovers)
- hesitation – User moves mouse slowly or lingers without clicking
- confusion – User shows uncertain or erratic interaction patterns
- idle – User stops interacting for a period
🧪 Example Use Cases
- Show exit-intent popups or offers
- Trigger auto-save when idle
- Improve UX with dynamic hints on hesitation
- Analyze user confusion or engagement
- Prefetch routes when user seems interested
📁 File Size
Less than 6KB minified, zero dependencies.
🧱 Related Packages
You can also use the UI binding package: Add the below dependency for react.
@user-intent-detector/react📄 License
MIT © 2025 Manish Garg
