strands-emotiv
An agent that can feel the person it's talking to.
EPOC X → Cortex → Strands tools · live brain dashboard · LeRobot v3 datasets.
docs · soul · dataset
2019: how do I control X with my mind? Blink = click. A slower keyboard. 2026: what does an agent become when it can feel you?
It notices when you tense up, go quiet, or light up, and changes how it talks.
Run
pip install strands-emotiv # or: uv tool install strands-emotiv
export EMOTIV_CLIENT_ID=… EMOTIV_CLIENT_SECRET=… # free Basic license
strands-emotiv doctor # Cortex ✓ headset ✓ streams ✓
strands-emotiv dashboard # → localhost:8765
Use the USB dongle; the cable only charges. No headset: --fake replays 865 real samples.
What the agent sees
One line per turn. The dashboard shows the exact same line.
[brain: focus 0.71↑ · stress 0.22↓ · alpha dominant O1/O2 · still 38s · CQ 13/14 good]
| you | it |
|---|---|
| stress ↑, build failed | 3 lines, 1 next step, no questions |
| alpha up, still 40 s | stays quiet |
| CQ < 10/14 | "I can't see your brain right now" |
Three speeds, never mixed: reflex ≤100 ms (blink · clench = veto) · ambient ~10 s (the line) · intent opt-in (one trained yes).
Dashboard
Left = you: skull with 14 live electrodes, 5 band topomaps, 10-min waterfall, head trail. Right = the agent: the line it reads, event river, metric radar, sonification, consent. Bottom: streaming chat. Under each message, the line it saw when you sent it.
The dataset
▶ 1 min: recording an episode on the dashboard
Embodied chain-of-thought, brain edition: observation = band power · CQ · motion · metrics · facial · events @ 8 Hz. action = what the agent said. reward = your brain after the answer (Δstress, Δengagement across the turn boundary). LeRobot v3.0, trains with stock tooling.
from lerobot.datasets.lerobot_dataset import LeRobotDataset
ds = LeRobotDataset("cagataydev/emotiv-ecot") # private
ds[80]["observation.state"].shape # [70] 14 ch × θ α βL βH γ
ds[80]["task"]
# TASK: One sentence: how does my brain look right now? | AMBIENT: [brain: theta dominant · CQ 13/14 good]
# | PLAN: Calm and settled… | TOOL: none | ACT: Calm and settled… | REWARD: Δstress=…
That's a real frame from the first live episode. ● REC in the header → talk → Publish.
Tools
from strands_emotiv.tools import brain_snapshot, brain_bands, head_pose, contact_quality, wait_for_brain_event
agent("wait until I blink twice, then tell me what my alpha did")
Every agent action stamps the EEG record (injectMarker). The loop closes both ways.
MIT · Cagatay Cali · 2019 → 2026
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file strands_emotiv-0.1.5.tar.gz.
File metadata
- Download URL: strands_emotiv-0.1.5.tar.gz
- Upload date:
- Size: 453.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b63f2d7785ea70a029220c743563e0e0cd4171e987e91ca1365232cef1aa7e6f
|
|
| MD5 |
1860724da6f31ee6b4e0309154122b2e
|
|
| BLAKE2b-256 |
941719f08bb399c5b4d061647f4b3086bc9294284774ace401627a80e43745d7
|
File details
Details for the file strands_emotiv-0.1.5-py3-none-any.whl.
File metadata
- Download URL: strands_emotiv-0.1.5-py3-none-any.whl
- Upload date:
- Size: 345.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cb1f7c3b0bae0493bff34281ae5075702470e169e5e9b6ce434c2f37840d94d
|
|
| MD5 |
f53b8227bac394b94b512acbecc7803d
|
|
| BLAKE2b-256 |
44d4775e06dc8df668ac0b810815577be3ae84920361c80e9b8bfdeacf419370
|