The VStress dashboard — stress timeline, file correlation, and trigger memory
🇬🇧 Overview
VStress connects your biometric signals (heart rate, HRV, facial expression, voice tone) to your coding environment. It classifies your current stress state using the Nefesh.ai API and surfaces the result directly inside VS Code — in the status bar, via break reminders, and on a full dashboard.
No code is ever transmitted. No keystrokes. No screen content. Only your stress score, derived entirely from biometric data.
Features
📊 Live Status Bar
Your stress score (0–100) is always visible in the bottom bar, color-coded by state.
|
🔔 Smart Break Reminders
When your score crosses the configured threshold, VStress nudges you — not aggressively, just once.
|
📈 Stress Dashboard
A full WebView panel with:
- Stress timeline (last 60 min)
- Per-file stress correlation
- Active and resolved trigger memory
|
🧪 Mock Mode
No wearable? No problem. Run VStress: Start Mock Session to simulate realistic stress patterns (calm, crunch, meeting, random) — no API key required.
|
Prerequisites
- A Nefesh API key → Get one at nefesh.ai/pricing
- A biometric signal source — pick one:
| Source |
How |
| 📷 Webcam |
Built-in. Run VStress: Start Webcam Session (rPPG) — opens a local camera page in your browser, no external tool needed |
| ⌚ Wearable |
Polar H10, Garmin, or Pixel Watch streaming to the Nefesh ingest endpoint |
| 🤖 AI Agent |
Nefesh MCP server with any compatible agent |
Quick Start
# 1. Install from VSIX
code --install-extension vstress-0.1.0.vsix
# 2. Open Settings (Cmd+, / Ctrl+,) → search "vstress"
# → Paste your API key in vstress.apiKey
# 3. Open the Command Palette (Cmd+Shift+P / Ctrl+Shift+P)
# → Run: VStress: Start Webcam Session (rPPG)
# → Allow camera access in the browser tab that opens
# → Hold still for ~20 s while the signal warms up
No hardware? Run VStress: Start Mock Session (no hardware) to try it instantly — no camera or API key required.
Commands
| Command |
Description |
VStress: Start Webcam Session (rPPG) |
Recommended. Opens a local camera page — measures HR & HRV via webcam, no external tool needed |
VStress: Start Monitoring Session |
Poll stress state from Nefesh API (requires an external signal source) |
VStress: Stop Monitoring Session |
Stop monitoring |
VStress: Open Stress Dashboard |
Open the full dashboard panel |
VStress: Toggle Status Bar |
Show / hide the status bar indicator |
VStress: Start Mock Session (no hardware) |
Test without a wearable or API key |
VStress: Change Mock Scenario |
Switch between calm / crunch / meeting / random |
Settings
| Setting |
Default |
Description |
vstress.apiKey |
— |
Your Nefesh API key (nfsh_...) |
vstress.pollIntervalMs |
5000 |
Polling interval in ms (2000–30000) |
vstress.subjectId |
— |
Persistent user ID for trigger memory |
vstress.showNotifications |
true |
Show break reminders on high stress |
vstress.stressThreshold |
70 |
Score threshold for break reminders (0–100) |
vstress.mockScenario |
random |
Stress pattern for mock sessions |
Architecture
Wearable / Webcam rPPG
│
▼
Nefesh API (/v1/ingest)
│
▼
VStress polls /v1/state every N seconds
│
├──▶ Status Bar (score + color state)
├──▶ File Stress Map (correlates active file with score)
├──▶ History buffer (last 120 samples / ~10 min at 5s)
└──▶ Dashboard (chart, file table, trigger memory)
Privacy
| What |
Sent? |
| Your code |
❌ Never |
| Keystrokes |
❌ Never |
| File contents |
❌ Never |
| Active file name |
🔒 Stored locally only, never transmitted |
| Stress state |
✅ Read from Nefesh API (derived from biometrics on your device) |
All biometric processing happens on-device via the Nefesh edge architecture. VStress only reads the resulting stress classification — it never sees raw biometric data.
Development
git clone https://github.com/Open-Medusa/vstress
cd vstress
npm install
npm run compile
# Press F5 in VS Code to launch Extension Development Host
Changelog
See CHANGELOG.md for a full history of changes.
License
MIT · Built with Nefesh.ai
🇩🇪 Überblick
VStress verbindet deine biometrischen Signale (Herzfrequenz, HRV, Mimik, Stimmton) mit deiner Entwicklungsumgebung. Die Nefesh.ai API klassifiziert deinen aktuellen Stresszustand und zeigt ihn direkt in VS Code an — in der Statusleiste, als sanfte Pausenerinnerung und im vollständigen Dashboard.
Dein Code, deine Tastatureingaben und deine Dateiinhalte werden niemals übertragen. Nur dein Stresswert, abgeleitet ausschließlich aus biometrischen Daten.
Funktionen
|
|
| 📊 Live-Statusleiste |
Dein Stresswert (0–100) ist immer sichtbar, farblich nach Zustand kodiert |
| 🔔 Pausenerinnerungen |
Wenn der Schwellenwert überschritten wird, erhältst du eine einmalige, dezente Benachrichtigung |
| 📈 Stress-Dashboard |
Zeitverlauf, Datei-Korrelation und gespeicherte Trigger über mehrere Sitzungen |
| 🧪 Mock-Modus |
Testen ohne Wearable oder API-Key — realistische Stressmuster direkt simuliert |
Voraussetzungen
- Einen Nefesh API-Key → Jetzt holen auf nefesh.ai/pricing
- Eine biometrische Signalquelle — eine davon:
| Quelle |
Methode |
| 📷 Webcam |
Eingebaut. VStress: Start Webcam Session (rPPG) ausführen — öffnet eine lokale Kameraseite im Browser, kein externes Tool nötig |
| ⌚ Wearable |
Polar H10, Garmin oder Pixel Watch über den Nefesh-Ingest-Endpoint |
| 🤖 KI-Agent |
Nefesh MCP-Server mit einem kompatiblen Agenten |
Schnellstart
# 1. Aus VSIX installieren
code --install-extension vstress-0.1.0.vsix
# 2. Einstellungen öffnen (Cmd+, / Ctrl+,) → "vstress" suchen
# → API-Key in vstress.apiKey eintragen
# 3. Befehlspalette öffnen (Cmd+Shift+P / Ctrl+Shift+P)
# → "VStress: Start Webcam Session (rPPG)" ausführen
# → Kamerazugriff im Browser erlauben
# → ~20 s ruhig halten, bis das Signal eingerastet ist
Kein Wearable? Einfach VStress: Start Mock Session (no hardware) starten — kein Gerät oder API-Key nötig.
Befehle
| Befehl |
Beschreibung |
VStress: Start Webcam Session (rPPG) |
Empfohlen. Lokale Kameraseite öffnen — HR & HRV über Webcam messen, kein externes Tool nötig |
VStress: Start Monitoring Session |
Stresszustand über die Nefesh API abrufen (externe Signalquelle erforderlich) |
VStress: Stop Monitoring Session |
Messung beenden |
VStress: Open Stress Dashboard |
Dashboard öffnen |
VStress: Toggle Status Bar |
Statusleiste ein-/ausblenden |
VStress: Start Mock Session (no hardware) |
Ohne Wearable testen |
VStress: Change Mock Scenario |
Szenario wechseln: calm / crunch / meeting / random |
Einstellungen
| Einstellung |
Standard |
Beschreibung |
vstress.apiKey |
— |
Dein Nefesh API-Key (nfsh_...) |
vstress.pollIntervalMs |
5000 |
Abrufintervall in ms (2000–30000) |
vstress.subjectId |
— |
Persistente Benutzer-ID für das Trigger-Gedächtnis |
vstress.showNotifications |
true |
Pausenerinnerungen bei hohem Stress anzeigen |
vstress.stressThreshold |
70 |
Schwellenwert für Pausenerinnerungen (0–100) |
vstress.mockScenario |
random |
Stressmuster für Mock-Sitzungen |
Datenschutz
| Was |
Übertragen? |
| Dein Code |
❌ Niemals |
| Tastatureingaben |
❌ Niemals |
| Dateiinhalte |
❌ Niemals |
| Aktiver Dateiname |
🔒 Nur lokal gespeichert, nie übertragen |
| Stresszustand |
✅ Wird von der Nefesh API gelesen (aus biometrischen Daten auf deinem Gerät abgeleitet) |
Die gesamte biometrische Verarbeitung findet lokal auf deinem Gerät statt (Nefesh Edge-Architektur). VStress liest ausschließlich das klassifizierte Ergebnis — keine Rohdaten.
Entwicklung
git clone https://github.com/Open-Medusa/vstress
cd vstress
npm install
npm run compile
# F5 in VS Code drücken → Extension Development Host startet
Changelog
Alle Änderungen sind in der CHANGELOG.md dokumentiert.
Lizenz
MIT · Entwickelt mit Nefesh.ai