Source profileQuality 90/100Review permissions

NousResearch/hermes-agent/optional-skills/health/neuroskill-bci/SKILL.md

neuroskill-bci

Use live BCI cognitive and mood state from NeuroSkill.

Source repository stars
235,927
Declared platforms
0
Static risk flags
1
Last source update
2026-08-25
Source checked
2026-08-25

Decision brief

What it does: where it fits

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.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/NousResearch/hermes-agent --skill "optional-skills/health/neuroskill-bci"
    Safe inspection promptEditorial

    Inspect the Agent Skill "neuroskill-bci" from https://github.com/NousResearch/hermes-agent/blob/64a6f42cb38def7ad6524bdfe640a16997c88760/optional-skills/health/neuroskill-bci/SKILL.md at commit 64a6f42cb38def7ad6524bdfe640a16997c88760. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Verify Setup

      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…

      Make sure the NeuroSkill desktop app is openEnsure the BCI device is powered on and connected via BluetoothCheck signal quality — green indicators in NeuroSkill (≥0.7 per electrode)
    2. 02

      Prerequisites

      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+ installed (node --version)NeuroSkill desktop app running with a connected BCI deviceBCI hardware: Muse 2, Muse S, or OpenBCI (4-channel EEG + PPG + IMU via BLE)
    3. 03

      CLI Reference: npx neuroskill

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

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

      Global Flags

      Review the “Global Flags” section in the pinned source before continuing.

      Review and apply the “Global Flags” source section.
    5. 05

      1. Checking Current State

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

      Focus 0.70 → flow state territory, protect itFocus < 0.40 → suggest a break or protocolDrowsiness 0.60 → fatigue warning, micro-sleep risk

    Permission review

    Static risk signals and limitations

    Runs scripts

    medium · line 27

    The documentation asks the agent to run terminal commands or scripts.

    node --version # Must be 20+

    Runs scripts

    medium · line 28

    The documentation asks the agent to run terminal commands or scripts.

    npx neuroskill status # Full system snapshot

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score90/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars235,927SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    NousResearch/hermes-agent
    Skill path
    optional-skills/health/neuroskill-bci/SKILL.md
    Commit
    64a6f42cb38def7ad6524bdfe640a16997c88760
    License
    MIT
    Collected
    2026-08-25
    Default branch
    main
    View the original SKILL.md

    NeuroSkill BCI Integration

    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

    • 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

    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>

    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

    Get Live Metrics

    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):

    {
      "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 < 0.40 → suggest a break or protocol
    • Drowsiness > 0.60 → fatigue warning, micro-sleep risk
    • Relaxation < 0.30 → stress intervention needed
    • Cognitive Load > 0.70 sustained → mind dump or break
    • TBR > 1.5 → theta-dominant, reduced executive control
    • FAA < 0 → withdrawal/negative affect — consider FAA rebalancing
    • SNR < 3 dB → unreliable signal, suggest electrode repositioning

    2. Session Analysis

    Single Session Breakdown

    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

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

    3. Historical Search

    Neural Similarity Search

    npx neuroskill search --json                    # auto: last session, k=5
    npx neuroskill search --k 10 --json             # 10 nearest neighbors
    npx neuroskill search --start <UTC> --end <UTC> --json
    

    Finds moments in history that are neurally similar using HNSW approximate nearest-neighbor search over 128-D ZUNA embeddings. Returns distance statistics, temporal distribution (hour of day), and top matching days.

    Use this when the user asks:

    • "When was I last in a state like this?"
    • "Find my best focus sessions"
    • "When do I usually crash in the afternoon?"

    Semantic Label Search

    npx neuroskill search-labels "deep focus" --k 10 --json
    npx neuroskill search-labels "stress" --json | jq '[.results[].EXG_metrics.tbr]'
    

    Searches label text using vector embeddings (Xenova/bge-small-en-v1.5). Returns matching labels with their associated EXG metrics at the time of labeling.

    Cross-Modal Graph Search

    npx neuroskill interactive "deep focus" --json
    npx neuroskill interactive "deep focus" --dot | dot -Tsvg > graph.svg
    

    4-layer graph: query → text labels → EXG points → nearby labels. Use --k-text, --k-EXG, --reach <minutes> to tune.


    4. Session Comparison

    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."

    # Sort metrics by improvement percentage
    npx neuroskill compare --json | jq '.insights.deltas | to_entries | sort_by(.value.pct) | reverse'
    

    5. Sleep Data

    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 <20 min
    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

    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

    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

    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)
    • < 0.5 → Similar brain states across both sessions

    9. Proactive State Awareness

    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:

    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 < 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

    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 < 0.40, TBR > 1.5 → Theta-Beta Neurofeedback Anchor or Box Breathing
    • Relaxation < 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 < 0 (negative) → FAA Rebalancing
    • Flow State (focus > 0.75, engagement > 0.70) → Do NOT interrupt
    • High stillness + headache_index → Neck Release Sequence
    • Low RMSSD (< 25ms) → Vagal Toning

    11. Additional Tools

    Focus Timer

    npx neuroskill timer --json
    

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

    Calibration

    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

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

    Raw JSON Passthrough

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

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


    Error Handling

    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 < 0.7Loose electrodesAdjust fit, clean electrode contacts
    SNR < 3 dBNoisy signalMinimize head movement, check environment
    command not found: npxNode.js not installedInstall Node.js 20+

    Example Interactions

    "How am I doing right now?"

    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"

    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"

    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?"

    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?"

    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"

    npx neuroskill label "breakthrough"
    

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


    References

    Frequently asked questions

    What to verify before installation and use

    What does the neuroskill-bci source document cover?

    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.

    How do I install neuroskill-bci?

    The source record exposes this install command: npx skills add https://github.com/NousResearch/hermes-agent --skill "optional-skills/health/neuroskill-bci". Inspect the command and pinned source before running it.

    Which permission-related actions were detected?

    Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.

    Alternatives

    Compare before choosing

    Computed 10045,511

    coreyhaines31/marketingskills

    ab-testing

    When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

    Computed 10045,511

    coreyhaines31/marketingskills

    churn-prevention

    When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers o

    Computed 10024,921

    alirezarezvani/claude-skills

    app-store-optimization

    App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

    Computed 10015,122

    wanshuiyin/Auto-claude-code-research-in-sleep

    citation-audit

    Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.