Promptify is a 100% local, privacy-first browser extension for Chrome and Firefox that automatically tracks your active time across popular AI conversational platforms (ChatGPT, Claude, Gemini, Perplexity, Qwen, DeepSeek, Kimi, Copilot, and Grok).
There are no servers, no telemetry, and no accounts required. All data is stored in your browser's local IndexedDB, keeping your usage data entirely in your hands.
Currently, the extension automatically tracks active tabs for:
- ChatGPT (
chatgpt.com), including Codex (chatgpt.com/codex) - Claude (
claude.ai) - Gemini (
gemini.google.com), including Flow (flow.google), NotebookLM (notebook.google.com), and Veo (aistudio.google.com/veo) - Perplexity (
perplexity.ai) - Qwen (
chat.qwen.ai,qianwen.com) - DeepSeek (
chat.deepseek.com,deepseek.com) - Kimi (
kimi.ai,kimi.moonshot.cn,kimi.com) - Copilot (
copilot.microsoft.com,copilot.cloud.microsoft,m365copilot.com,m365.cloud.microsoft) - Grok (
grok.com)
Since Promptify is currently in development and not published to a store, you can install it directly from the source code for Chrome and Firefox:
-
Clone or Download the Repository:
git clone https://github.com/Horrid-12/promptify.git
Or click Code > Download ZIP and extract it to a folder.
-
Open Chrome Extensions:
- In Chrome, navigate to
chrome://extensions/ - Alternatively, click the puzzle piece icon in the top right and select "Manage extensions".
- In Chrome, navigate to
-
Enable Developer Mode:
- Toggle the Developer mode switch in the top right corner of the Extensions page.
-
Load Unpacked:
- Click the Load unpacked button in the top left.
- Select the folder where you cloned/extracted
promptify(the folder containingmanifest.json).
-
Ready!
- The Promptify extension icon will appear in your browser. Pin it to your toolbar for easy access to your stats.
- Build the extension: run
node build.jsfrom the repo root to producedist/chromeanddist/firefox. - Open Firefox and navigate to
about:debugging#/runtime/this-firefox. - Click Load Temporary Add-on and select
firefox/manifest.jsonfrom the build output.
Promptify uses a highly optimized state machine running entirely in the browser:
| Component | Responsibility |
|---|---|
| Content Scripts | Injected only on supported AI sites. Detects when the user is actively interacting (mouse moves, clicks, typing) or if the tab is visible. Sends heartbeat events. |
| Service Worker | Runs in the background (src/background.js, src/platforms.js, src/db.js). Maintains the state of the active session. If it receives heartbeats, it accumulates time. If the tab is closed, hidden, or idle, it finalizes the session and saves it. |
| IndexedDB | The local database (src/db.js) where completed sessions are permanently stored. |
| Analytics Dashboard | A fully local, Neo-Brutalist dashboard (pages/dashboard/dashboard.html) to visualize daily, weekly, and monthly usage. |
A session is considered active only when:
- The AI website is the active browser tab
- The browser window is focused
- The page is visible
- The user has interacted recently (mouse, keyboard, click, scroll)
Inactivity timeout: 5 minutes of no interaction ends the session.
This means idle time is never counted, even if you leave an AI tab open in the background for hours.
Promptify/
├── manifest.json # Extension configuration
├── build.js # Build script (outputs Chrome + Firefox builds)
├── dist/ # Build output
│ ├── chrome/ # Chrome build
│ └── firefox/ # Firefox build
├── src/ # Core extension logic
│ ├── background.js # Service worker (session management)
│ ├── content.js # Content script (activity detection)
│ ├── analytics.js # Data aggregation functions
│ ├── db.js # IndexedDB wrapper
│ └── platforms.js # Supported AI platform definitions
├── pages/ # UI Components
│ ├── dashboard/ # Main analytics view
│ └── popup/ # Extension popup view
└── assets/ # Static media (icons, logos)
Promptify does not track you.
- No data leaves your machine.
- No analytics tools are used.
- No external requests are made.
All session durations are stored locally in your browser's IndexedDB. You can export or delete your data at any time from the dashboard footer.