Emocity Biometric Scan
Face scan from the browser camera in 60 seconds: stress, a heart-rate estimate, mood, micro-expressions, eye contact, genuine smile, composure and, with the microphone on, voice te…
gv66co
@gv66co
Install
$ openclaw skills install @gv66co/fitcheck-workout-readinessFitCheck Face Scan: Stress, Heart Rate & Mood Challenge
Sixty seconds on camera and you see what your face is broadcasting right now: stress, a heart-rate estimate, mood, micro-expressions, eye contact, genuine smile and composure, plus voice tension if the microphone is on. Scan before and after, compare the two, or turn it into a challenge with friends. It runs in the browser at emo.city, nothing to install.
When to use
- The user asks for FitCheck by name, a face scan, or a stress or heart-rate check from the camera.
- Before and after something: a workout, a hard call, a date, a meditation.
- A game with friends: who stays the calmest, or the deception challenge.
- A video they want read moment by moment.
- A photo or clip they hand over and want analysed with their own RapidAPI key.
When not to use
- To scan someone who has not agreed to it.
- For medical questions. Not a medical device.
Try saying
- "FitCheck, scan me before my workout."
- "Before and after: scan me now and again after the call."
- "Challenge my friends: who stays the calmest?"
- "Let's play the deception challenge."
- "Check my stress."
- "Read this video with FitCheck."
Play modes
- Before and after. Scan, do the thing, scan again. The agent returns both results and what changed.
- Challenge your friends. One CHALLENGE link, no install. Everyone scans and pastes their result; the agent keeps the scoreboard.
- Deception challenge. One asks, one answers, the live meters do the talking: DECEPTION, STRESS, MICRO_EXPR, EYE_CONTACT, AUTHENTIC, from OPEN to HELD BACK. The app's own line: for fun, not a real lie detector.
- Check a video. UPLOAD a clip, for example your own take before you post it, and get a moment-by-moment read with the tense spots flagged.
Workflow
- Send the user to https://emo.city?utm_source=clawhub&utm_medium=skill (Chrome or Edge). Same scan as a home-screen app on Google Play: https://play.google.com/store/apps/details?id=city.emo.www.twa&referrer=utm_source%3Dclawhub%26utm_medium%3Dskill
- Mode: LIVE (camera, up to 2 minutes), UPLOAD (photo or video; a single photo gives no heart rate) or CHALLENGE (the link for friends).
- When the scan ends, ask them to tap COPY_TEXT and paste the summary into the chat.
- Parse it into the JSON below.
- Reply with a short read and one light takeaway. For before-and-after and challenges, return the scoreboard.
Result format
The pasted summary looks like this (numbers are an example):
EMOCITY SCAN REPORT
---
Emotion: neutral
Felt-vs-shown: 18%
Stress: 34%
Genuineness: 72%
Eye Contact: 81%
HR: 74bpm
HRV: 42ms
Voice Tension: 20%
Micro-Expressions: 3
Standout moments: 2
---
Turn it into:
{
"mood": "neutral",
"stress": 34,
"heart_rate_bpm": 74,
"hrv_ms": 42,
"eye_contact": 81,
"genuineness": 72,
"felt_vs_shown": 18,
"voice_tension": 20,
"micro_expressions": 3,
"standout_moments": 2
}
HR: N/A becomes null, a missing HRV line becomes null, percentages are integers from 0 to 100.
Before and after: return {"before": {...}, "after": {...}, "change": {"stress": -12, "heart_rate_bpm": -9, "eye_contact": 4}} plus one sentence in plain words.
Challenge: return {"players": [{"name": "Ana", "stress": 22, "eye_contact": 88, "genuineness": 80, "felt_vs_shown": 12}], "calmest": "Ana", "steadiest_eyes": "Ana", "most_genuine_smile": "Ana"}. In the deception challenge the lowest felt_vs_shown wins. Keep scoreboards in the conversation; do not write them to files.
Reading the numbers
- Stress: under about 30 relaxed, a good day to push; 30 to 60 some tension, keep it moderate; over about 60 tense, a good moment to slow down.
- Heart-rate estimate: from subtle colour changes in the face.
nullmeans the signal was too weak (light, movement); never report 0. - Mood: the dominant expression. Micro-expressions: brief flickers the scan flagged.
- Eye contact, genuineness, composure: how steady, open and relaxed the face looked.
- Tendencies, not verdicts about a person. Game results are for fun.
Optional: photo or clip analysis with the user's own RapidAPI key
The engine behind the scan is also a hosted API, EmoPulse Face Analysis: https://rapidapi.com/emocity/api/emopulse-face-analysis (free BASIC plan, 50 requests a month; every plan has a hard monthly limit, so a key cannot run up overage charges). Unlike the browser scan, this path uploads the file. Run it only when all three hold:
- Key from the environment. Read
EMOPULSE_RAPIDAPI_KEY, which the user sets in their own environment; suggest a dedicated key they can revoke. Never ask for the key in the chat, never print it, never write it to a file. If it is not set, send them to the RapidAPI page and stop. - Their media, with consent. Only a photo or clip they hand you, of themselves or of someone who knows and agreed. Never fetch a picture of a person from the web.
- Say it, then wait. One line first: "This uploads the file to the EmoPulse API through RapidAPI." Run only after a yes.
The key goes to curl through standard input, so it never appears in command arguments:
printf 'X-RapidAPI-Key: %s\n' "$EMOPULSE_RAPIDAPI_KEY" | curl -s -X POST "https://emopulse-face-analysis.p.rapidapi.com/api/v1/analyze/image" \
-H @- \
-H "X-RapidAPI-Host: emopulse-face-analysis.p.rapidapi.com" \
-F "file=@/path/to/photo.jpg"
Photo: JPG or PNG up to 10 MB, up to 4 faces. Clip: MP4 or MOV up to 100 MB to /api/v1/analyze/video, same command. The response has faces_detected and a faces list; map each face to the same JSON keys: avg_stress to stress, dominant_emotion to mood, avg_eye_contact to eye_contact, avg_authenticity to genuineness, avg_deception to felt_vs_shown, plus micro_expressions and genuine_smiles. The API does not return a heart rate; set heart_rate_bpm to null. If faces_detected is 0, say no face was found and stop.
Data
The camera and microphone are processed in the browser and never uploaded; what is sent is anonymous usage analytics and, for signed-in users, their summary scores saved to their account. The optional API path above uploads the one file the user chose.
Top skills in this category
Weather
@steipeteGet current weather and forecasts (no API key required).
Shop
@shopifyUltimate personal shopping assistant: find, compare, buy, gift, and reorder products across the Shop catalog containing millions of stores. Tracks orders and...
healthcheck
@stellarhold170ntTrack water and sleep with JSON file storage
ClawQuest: Agent Mine - OpenClaw Managed Mining
@zhzai30The managed automated mining server interface supports OpenClaw session mode and incremental event retrieval, enabling mining startup, status query, settlement, and stamina management.
FlyAI — Travel, Flight & Hotel Search and Booking
@yealexchenSearch flights, hotels, attractions, concerts, and travel deals with natural language. FlyAI connects to Fliggy MCP for real-time search and booking across h...