Directory → SKILL
SKILLoptionalHermes Optional Skills

Neuroskill Bci

Use live BCI cognitive and mood state from NeuroSkill

BCIneurofeedbackhealthfocusEEGcognitive-statebiometricsneuroskill
Last registry verification2026-08-18v1.0.0Hermes Agent + Nous Research
Plain meaning

What does it add to Hermes?

Use live BCI cognitive and mood state from NeuroSkill

Neuroskill Bci is a skill related to extending the agent. It adds a capability or workflow to Hermes. The publisher description explains the intent, while granted permissions determine what it can actually do.

This plain-language explanation is based on the publisher description. The original text remains visible for verification.

Use it when

Use it when your goal in extending the agent is clear and you can limit it to the data and actions it actually needs.

Skip it when

Do not add it merely to experiment when Hermes already has a simpler path, or when you cannot review its source and permissions.

Who is it for?

Best for users who want a repeatable way of working inside Hermes.

Safe first test

Start with non-sensitive data and a small task whose result can be verified and reversed.

Original publisher description

Use live BCI cognitive and mood state from NeuroSkill

✓
Data source

This entry was indexed from Hermes Optional Skills. Our explanation interprets the type and domain without inventing a capability not present upstream.

!
Security review

The source is official or editorially reviewed, but you still need to review permissions and version compatibility.

Safe setup path

Inspect, install, then test.

  1. 01
    Open the source

    Match the publisher, license, and description to your need. Check the real update history.

  2. 02
    Review permissions and secrets

    Never paste a secret value into this site. Use environment-variable names and grant the smallest scope.

  3. 03
    Copy setup only after review

    The controls below copy text. They do not execute commands on your device.

  4. 04
    Test with a non-sensitive task

    Inspect the visible tools, then exclude write or delete tools you do not need.

Install command

Review the command, then copy it.

hermes skills install neuroskill-bci

Hermes Belarabi does not execute this command. Installation happens on your device and remains subject to Hermes scanning and your review.

The full skill definition

Exactly what Hermes loads when this skill runs.

Reproduced from the official documentation. Read it before enabling the skill: this text becomes the agent's instructions.

Use live BCI cognitive and mood state from NeuroSkill.

Skill metadata

A lookup table. Do not read it all; find the row that applies to you.

SourceOptional — install with hermes skills install official/health/neuroskill-bci
Pathoptional-skills/health/neuroskill-bci
Version1.0.0
AuthorHermes Agent + Nous Research
LicenseMIT
Platformslinux, macos, windows
TagsBCI, neurofeedback, health, focus, EEG, cognitive-state, biometrics, neuroskill

Reference: full SKILL.md

Explains the idea itself. Read it slowly; the later sections build on it.

Connect Hermes to a running NeuroSkill ↗ instance to read real-time brain and body metrics from a BCI wearable. Use this to give cognitively-aware responses, suggest interventions, and track mental performance over time.

⚠️ Research Use Only — NeuroSkill is an open-source research tool. It is NOT a medical device and has NOT been cleared by the FDA, CE, or any regulatory body. Never use these metrics for clinical diagnosis or treatment.

See references/metrics.md for the full metric reference, references/protocols.md for intervention protocols, and references/api.md for the WebSocket/HTTP API.

---

Prerequisites

Explains the idea itself. Read it slowly; the later sections build on it. Commands here: npx neuroskill status.

  • Node.js 20+ installed (node --version)
  • NeuroSkill desktop app running with a connected BCI device
  • BCI hardware: Muse 2, Muse S, or OpenBCI (4-channel EEG + PPG + IMU via BLE)
  • npx neuroskill status returns data without errors

Verify Setup

Shell3 lines
node --version                    # Must be 20+
npx neuroskill status             # Full system snapshot
npx neuroskill status --json      # Machine-parseable JSON

If npx neuroskill status returns an error, tell the user:

  • Make sure the NeuroSkill desktop app is open
  • Ensure the BCI device is powered on and connected via Bluetooth
  • Check signal quality — green indicators in NeuroSkill (≥0.7 per electrode)
  • If command not found, install Node.js 20+

---

CLI Reference: `npx neuroskill <command>`

A lookup table. Do not read it all; find the row that applies to you.

All commands support --json (raw JSON, pipe-safe) and --full (human summary + JSON).

CommandDescription
statusFull system snapshot: device, scores, bands, ratios, sleep, history
session [N]Single session breakdown with first/second half trends (0=most recent)
sessionsList all recorded sessions across all days
searchANN similarity search for neurally similar historical moments
compareA/B session comparison with metric deltas and trend analysis
sleep [N]Sleep stage classification (Wake/N1/N2/N3/REM) with analysis
label "text"Create a timestamped annotation at the current moment
search-labels "query"Semantic vector search over past labels
interactive "query"Cross-modal 4-layer graph search (text → EXG → labels)
listenReal-time event streaming (default 5s, set --seconds N)
umap3D UMAP projection of session embeddings
calibrateOpen calibration window and start a profile
timerLaunch focus timer (Pomodoro/Deep Work/Short Focus presets)
notify "title" "body"Send an OS notification via the NeuroSkill app
raw '{json}'Raw JSON passthrough to the server

Global Flags

FlagDescription
--jsonRaw JSON output (no ANSI, pipe-safe)
--fullHuman summary + colorized JSON
--port <N>Override server port (default: auto-discover, usually 8375)
--wsForce WebSocket transport
--httpForce HTTP transport
--k <N>Nearest neighbors count (search, search-labels)
--seconds <N>Duration for listen (default: 5)
--trendsShow per-session metric trends (sessions)
--dotGraphviz DOT output (interactive)

---

1. Checking Current State

Settings you configure once. Change one at a time so you can see what each does.

Get Live Metrics

Shell1 line
npx neuroskill status --json

Always use --json for reliable parsing. The default output is colorized human-readable text.

Key Fields in the Response

The scores object contains all live metrics (0–1 scale unless noted):

JSON24 lines
{
  "scores": {
    "focus": 0.70,           // β / (α + θ) — sustained attention
    "relaxation": 0.40,      // α / (β + θ) — calm wakefulness
    "engagement": 0.60,      // active mental investment
    "meditation": 0.52,      // alpha + stillness + HRV coherence
    "mood": 0.55,            // composite from FAA, TAR, BAR
    "cognitive_load": 0.33,  // frontal θ / temporal α · f(FAA, TBR)
    "drowsiness": 0.10,      // TAR + TBR + falling spectral centroid
    "hr": 68.2,              // heart rate in bpm (from PPG)
    "snr": 14.3,             // signal-to-noise ratio in dB
    "stillness": 0.88,       // 0–1; 1 = perfectly still
    "faa": 0.042,            // Frontal Alpha Asymmetry (+ = approach)
    "tar": 0.56,             // Theta/Alpha Ratio
    "bar": 0.53,             // Beta/Alpha Ratio
    "tbr": 1.06,             // Theta/Beta Ratio (ADHD proxy)
    "apf": 10.1,             // Alpha Peak Frequency in Hz
    "coherence": 0.614,      // inter-hemispheric coherence
    "bands": {
      "rel_delta": 0.28, "rel_theta": 0.18,
      "rel_alpha": 0.32, "rel_beta": 0.17, "rel_gamma": 0.05
    }
  }
}

Also includes: device (state, battery, firmware), signal_quality (per-electrode 0–1), session (duration, epochs), embeddings, labels, sleep summary, and history.

Interpreting the Output

Parse the JSON and translate metrics into natural language. Never report raw numbers alone — always give them meaning:

DO:

"Your focus is solid right now at 0.70 — that's flow state territory. Heart rate is steady at 68 bpm and your FAA is positive, which suggests good approach motivation. Great time to tackle something complex."

DON'T:

"Focus: 0.70, Relaxation: 0.40, HR: 68"

Key interpretation thresholds (see references/metrics.md for the full guide):

  • Focus > 0.70 → flow state territory, protect it
  • Focus &lt; 0.40 → suggest a break or protocol
  • Drowsiness > 0.60 → fatigue warning, micro-sleep risk
  • Relaxation &lt; 0.30 → stress intervention needed
  • Cognitive Load > 0.70 sustained → mind dump or break
  • TBR > 1.5 → theta-dominant, reduced executive control
  • FAA &lt; 0 → withdrawal/negative affect — consider FAA rebalancing
  • SNR &lt; 3 dB → unreliable signal, suggest electrode repositioning

---

2. Session Analysis

Explains the idea itself. Read it slowly; the later sections build on it.

Single Session Breakdown

Shell3 lines
npx neuroskill session --json         # most recent session
npx neuroskill session 1 --json       # previous session
npx neuroskill session 0 --json | jq '{focus: .metrics.focus, trend: .trends.focus}'

Returns full metrics with first-half vs second-half trends ("up", "down", "flat"). Use this to describe how a session evolved:

"Your focus started at 0.64 and climbed to 0.76 by the end — a clear upward trend. Cognitive load dropped from 0.38 to 0.28, suggesting the task became more automatic as you settled in."

List All Sessions

Shell2 lines
npx neuroskill sessions --json
npx neuroskill sessions --trends      # show per-session metric trends

---

4. Session Comparison

Explains the idea itself. Read it slowly; the later sections build on it.

Shell2 lines
npx neuroskill compare --json                   # auto: last 2 sessions
npx neuroskill compare --a-start <UTC> --a-end <UTC> --b-start <UTC> --b-end <UTC> --json

Returns metric deltas with absolute change, percentage change, and direction for ~50 metrics. Also includes insights.improved[] and insights.declined[] arrays, sleep staging for both sessions, and a UMAP job ID.

Interpret comparisons with context — mention trends, not just deltas:

"Yesterday you had two strong focus blocks (10am and 2pm). Today you've had one starting around 11am that's still going. Your overall engagement is higher today but there have been more stress spikes — your stress index jumped 15% and FAA dipped negative more often."
Shell2 lines
# Sort metrics by improvement percentage
npx neuroskill compare --json | jq '.insights.deltas | to_entries | sort_by(.value.pct) | reverse'

---

5. Sleep Data

Explains the idea itself. Read it slowly; the later sections build on it.

Shell3 lines
npx neuroskill sleep --json                     # last 24 hours
npx neuroskill sleep 0 --json                   # most recent sleep session
npx neuroskill sleep --start <UTC> --end <UTC> --json

Returns epoch-by-epoch sleep staging (5-second windows) with analysis:

  • Stage codes: 0=Wake, 1=N1, 2=N2, 3=N3 (deep), 4=REM
  • Analysis: efficiency_pct, onset_latency_min, rem_latency_min, bout counts
  • Healthy targets: N3 15–25%, REM 20–25%, efficiency >85%, onset &lt;20 min
Shell2 lines
npx neuroskill sleep --json | jq '.summary | {n3: .n3_epochs, rem: .rem_epochs}'
npx neuroskill sleep --json | jq '.analysis.efficiency_pct'

Use this when the user mentions sleep, tiredness, or recovery.

---

6. Labeling Moments

Explains the idea itself. Read it slowly; the later sections build on it.

Shell4 lines
npx neuroskill label "breakthrough"
npx neuroskill label "studying algorithms"
npx neuroskill label "post-meditation"
npx neuroskill label --json "focus block start"   # returns label_id

Auto-label moments when:

  • User reports a breakthrough or insight
  • User starts a new task type (e.g., "switching to code review")
  • User completes a significant protocol
  • User asks you to mark the current moment
  • A notable state transition occurs (entering/leaving flow)

Labels are stored in a database and indexed for later retrieval via search-labels and interactive commands.

---

7. Real-Time Streaming

Explains the idea itself. Read it slowly; the later sections build on it.

Shell2 lines
npx neuroskill listen --seconds 30 --json
npx neuroskill listen --seconds 5 --json | jq '[.[] | select(.event == "scores")]'

Streams live WebSocket events (EXG, PPG, IMU, scores, labels) for the specified duration. Requires WebSocket connection (not available with --http).

Use this for continuous monitoring scenarios or to observe metric changes in real-time during a protocol.

---

8. UMAP Visualization

Explains the idea itself. Read it slowly; the later sections build on it.

Shell2 lines
npx neuroskill umap --json                      # auto: last 2 sessions
npx neuroskill umap --a-start <UTC> --a-end <UTC> --b-start <UTC> --b-end <UTC> --json

GPU-accelerated 3D UMAP projection of ZUNA embeddings. The separation_score indicates how neurally distinct two sessions are:

  • > 1.5 → Sessions are neurally distinct (different brain states)
  • &lt; 0.5 → Similar brain states across both sessions

---

9. Proactive State Awareness

Explains the idea itself. Read it slowly; the later sections build on it.

Session Start Check

At the beginning of a session, optionally run a status check if the user mentions they're wearing their device or asks about their state:

Shell1 line
npx neuroskill status --json

Inject a brief state summary:

"Quick check-in: focus is building at 0.62, relaxation is good at 0.55, and your FAA is positive — approach motivation is engaged. Looks like a solid start."

When to Proactively Mention State

Mention cognitive state only when:

  • User explicitly asks ("How am I doing?", "Check my focus")
  • User reports difficulty concentrating, stress, or fatigue
  • A critical threshold is crossed (drowsiness > 0.70, focus &lt; 0.30 sustained)
  • User is about to do something cognitively demanding and asks for readiness

Do NOT interrupt flow state to report metrics. If focus > 0.75, protect the session — silence is the correct response.

---

10. Suggesting Protocols

Explains the idea itself. Read it slowly; the later sections build on it.

When metrics indicate a need, suggest a protocol from references/protocols.md. Always ask before starting — never interrupt flow state:

"Your focus has been declining for the past 15 minutes and TBR is climbing past 1.5 — signs of theta dominance and mental fatigue. Want me to walk you through a Theta-Beta Neurofeedback Anchor? It's a 90-second exercise that uses rhythmic counting and breath to suppress theta and lift beta."

Key triggers:

  • Focus &lt; 0.40, TBR > 1.5 → Theta-Beta Neurofeedback Anchor or Box Breathing
  • Relaxation &lt; 0.30, stress_index high → Cardiac Coherence or 4-7-8 Breathing
  • Cognitive Load > 0.70 sustained → Cognitive Load Offload (mind dump)
  • Drowsiness > 0.60 → Ultradian Reset or Wake Reset
  • FAA &lt; 0 (negative) → FAA Rebalancing
  • Flow State (focus > 0.75, engagement > 0.70) → Do NOT interrupt
  • High stillness + headache_index → Neck Release Sequence
  • Low RMSSD (&lt; 25ms) → Vagal Toning

---

11. Additional Tools

Explains the idea itself. Read it slowly; the later sections build on it.

Focus Timer

Shell1 line
npx neuroskill timer --json

Launches the Focus Timer window with Pomodoro (25/5), Deep Work (50/10), or Short Focus (15/5) presets.

Calibration

Shell2 lines
npx neuroskill calibrate
npx neuroskill calibrate --profile "Eyes Open"

Opens the calibration window. Useful when signal quality is poor or the user wants to establish a personalized baseline.

OS Notifications

Shell1 line
npx neuroskill notify "Break Time" "Your focus has been declining for 20 minutes"

Raw JSON Passthrough

Shell1 line
npx neuroskill raw '{"command":"status"}' --json

For any server command not yet mapped to a CLI subcommand.

---

Error Handling

A troubleshooting section. Find the symptom that matches yours rather than reading it end to end.

ErrorLikely CauseFix
npx neuroskill status hangsNeuroSkill app not runningOpen NeuroSkill desktop app
device.state: "disconnected"BCI device not connectedCheck Bluetooth, device battery
All scores return 0Poor electrode contactReposition headband, moisten electrodes
signal_quality values &lt; 0.7Loose electrodesAdjust fit, clean electrode contacts
SNR &lt; 3 dBNoisy signalMinimize head movement, check environment
command not found: npxNode.js not installedInstall Node.js 20+

---

Example Interactions

Explains the idea itself. Read it slowly; the later sections build on it.

"How am I doing right now?"

Shell1 line
npx neuroskill status --json

→ Interpret scores naturally, mentioning focus, relaxation, mood, and any notable ratios (FAA, TBR). Suggest an action only if metrics indicate a need.

"I can't concentrate"

Shell1 line
npx neuroskill status --json

→ Check if metrics confirm it (high theta, low beta, rising TBR, high drowsiness). → If confirmed, suggest an appropriate protocol from references/protocols.md. → If metrics look fine, the issue may be motivational rather than neurological.

"Compare my focus today vs yesterday"

Shell1 line
npx neuroskill compare --json

→ Interpret trends, not just numbers. Mention what improved, what declined, and possible causes.

"When was I last in a flow state?"

Shell2 lines
npx neuroskill search-labels "flow" --json
npx neuroskill search --json

→ Report timestamps, associated metrics, and what the user was doing (from labels).

"How did I sleep?"

Shell1 line
npx neuroskill sleep --json

→ Report sleep architecture (N3%, REM%, efficiency), compare to healthy targets, and note any issues (high wake epochs, low REM).

"Mark this moment — I just had a breakthrough"

Shell1 line
npx neuroskill label "breakthrough"

→ Confirm label saved. Optionally note the current metrics to remember the state.

---

References

Explains the idea itself. Read it slowly; the later sections build on it.