Skip to main content

neuroskill-transport

NeuroSkill EEG API transport layer — WebSocket and HTTP protocols, port discovery, Quick Start, output modes (default/--json/--full), and global CLI flags. Use when setting up a connection, choosing transport, or understanding output format options.

インストールへ移動

ソース情報

リポジトリ
NeuroSkill-com/skills
ソースの最終更新活動
2026年2月27日 15:30
検出された SKILL.md の言語
英語
スター
13
フォーク
5

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
neuroskill-transport
description
NeuroSkill EEG API transport layer — WebSocket and HTTP protocols, port discovery, Quick Start, output modes (default/--json/--full), and global CLI flags. Use when setting up a connection, choosing transport, or understanding output format options.
# NeuroSkill Transport & Quick Start NeuroSkill runs a local server (auto-discovered via mDNS or `lsof`). All commands work over **both** transports; the CLI picks the best one automatically. --- ## WebSocket (`ws://127.0.0.1:<port>`) - **Full-duplex, low-latency.** Best for live data, event streaming, and polling loops. - Commands are JSON messages sent over the socket; responses arrive as JSON messages. - Supports real-time broadcast events (EEG packets, scores, label-created, …). - Used by default when the server is reachable. ```bash # Force WebSocket: npx neuroskill status --ws # Direct WebSocket from any language (wscat example): wscat -c ws://127.0.0.1:8375 > {"command":"status"} < {"command":"status","ok":true,"device":{...},"scores":{...},...} ``` --- ## HTTP (`http://127.0.0.1:<port>/`) - **Request / response only.** No live streaming, no broadcast events. - All commands are `POST /` with a JSON body; the response is JSON. - Useful from `curl`, Python `requests`, Node `fetch`, or any HTTP client. - Automatic fallback when the WebSocket is unreachable. ```bash # Force HTTP: npx neuroskill status --http # curl equivalent of every CLI command: curl -s -X POST http://127.0.0.1:8375/ \ -H "Content-Type: application/json" \ -d '{"command":"status"}' # Extract a single field with jq: curl -s -X POST http://127.0.0.1:8375/ \ -H "Content-Type: application/json" \ -d '{"command":"status"}' | jq '.scores.focus' ``` --- ## Auto-transport (default) When neither `--ws` nor `--http` is given, the CLI probes WebSocket first and silently falls back to HTTP. Informational lines are written to **stderr** (not stdout), so JSON piping is never polluted. --- ## Port Discovery The CLI finds the port automatically via: 1. `--port <n>` flag (explicit, skips all discovery) 2. mDNS (`_skill._tcp` service advertisement, 5 s timeout) 3. `lsof` / `pgrep` fallback (probes each TCP LISTEN port) ```bash npx neuroskill status --port 62853 # skip discovery entirely ``` --- ## Quick Start ```bash # Prerequisites (run once): npm install -g neuroskill # Snapshot of everything: npx neuroskill status # Pipe-friendly JSON output: npx neuroskill status --json | jq '.scores' # Print full help with examples: npx neuroskill --help ``` --- ## Output Modes Every command has three output modes. ### Default (no flag) — human-readable summary only Colored, structured summary to **stdout**. Raw JSON is discarded after rendering. ```bash npx neuroskill status # colored summary, no JSON npx neuroskill session 0 # trend table, no JSON npx neuroskill sleep # stage counts, no JSON ``` ### `--json` — raw JSON only, pipe-safe `print()` calls suppressed; only `printResult()` fires. Plain JSON, no ANSI codes on **stdout**. Informational lines go to **stderr** and never pollute the JSON stream. ```bash npx neuroskill status --json # full JSON, no summary npx neuroskill status --json | jq '.scores.focus' # pipe to jq npx neuroskill sleep --json | jq '.summary' npx neuroskill search --json | jq '.result.results[0].neighbors' npx neuroskill umap --json | jq '.result.points | length' ``` ### `--full` — human-readable summary **and** colorized JSON Both `print()` and `printResult()` fire. Summary prints first, then complete colorized JSON. ```bash npx neuroskill status --full # summary + full colorized JSON npx neuroskill neurological --full # summary + references object npx neuroskill session 0 --full # trend table + raw first/second/trends objects npx neuroskill sleep --full # stage counts + full epochs[] array npx neuroskill umap --full # cluster analysis + full points[] array ``` > **Colors:** `--full` uses ANSI-colored JSON. For plain text, pipe through > `sed 's/\x1b\[[0-9;]*m//g'` or use `--json`. --- ## Global Options | Flag | Description | |---|---| | `--port <n>` | Connect to an explicit port (skips mDNS) | | `--ws` | Force WebSocket; error if unreachable | | `--http` | Force HTTP REST; no live-event commands | | `--json` | Raw JSON only — no summary, no colors, pipe-safe | | `--full` | Human-readable summary **and** colorized full JSON appended below | | `--no-color` | Disable ANSI color output (also honoured via `NO_COLOR` env var) | | `--dot` | (`interactive` only) Graphviz DOT to stdout — pipe to `dot -Tsvg` | | `--trends` | (`sessions` only) Show first-half → second-half deltas | | `--mode <m>` | (`search-labels`) `text` \| `context` \| `both` | | `--k <n>` | Number of nearest neighbors (`search`, `search-labels`) | | `--k-text <n>` | (`interactive`) k for text-label HNSW search (default 5) | | `--k-eeg <n>` | (`interactive`) k for EEG-similarity HNSW search (default 5) | | `--k-labels <n>` | (`interactive`) k for label-proximity step (default 3) | | `--reach <n>` | (`interactive`) temporal window in minutes around each EEG point (default 10) | | `--ef <n>` | HNSW ef parameter (`search-labels`; default `max(k×4, 64)`) | | `--seconds <n>` | Duration for `listen` (default 5) | | `--profile <p>` | Profile name or UUID for `calibrate` | | `--poll <n>` | (`status`) Re-poll every N seconds; keeps the socket open | | `--context "..."` | (`label`) Long-form annotation body; used by `search-labels --mode context` | | `--at <utc>` | (`label`) Backdate to a specific Unix second (default: now) | | `--voice <name>` | (`say`) Voice name to use (e.g. `Jasper`); omits to use the server default | | `--version` | Print CLI version and exit | | `--help` | Show full help and exit | --- ## Polling with `status` `status` is the single fastest call to get a complete system snapshot. Poll it periodically from any script or external tool to react to EEG state changes. ```bash # One-shot snapshot: npx neuroskill status --json # Poll every 5 seconds and print focus score: while true; do npx neuroskill status --json | jq '.scores.focus' sleep 5 done # Alert when focus drops below 0.4: while true; do FOCUS=$(npx neuroskill status --json | jq '.scores.focus') if (( $(echo "$FOCUS < 0.4" | bc -l) )); then npx neuroskill notify "Focus dropped" "Current: $FOCUS" fi sleep 10 done ```
GitHubで見る