Skip to main content

MNE-RT Logo

MNE-RT — Real-time M/EEG Signal Processing
From amplifier to 3-D brain display in a single, researcher-friendly API

License: MIT PyPI Python Docs


MNE-RT is an open-source Python library for real-time M/EEG signal processing, built on MNE-Python and MNE-LSL. It covers the full closed-loop pipeline — from amplifier to 3-D brain display — in a single API designed for neurofeedback, BCI, and clinical or basic-science monitoring.

Highlights

Feature Details
20 NF modalities Band power, ERD/ERS, laterality, Hjorth, spectral centroid, CFC, connectivity, graph Laplacian — sensor and source space
10 adaptive protocols Z-score, threshold, percentile, staircase, operant, RL, sham, multi-band, and cross-session transfer
5 artifact correction methods ASR, adaptive LMS, GEDAI, ORICA, real-time Maxwell/SSS (MEG)
9 live visualisation windows Scrolling raw · NF signal · epoch overlays · scalp topo · 3-D brain · butterfly · ERP comparison · TFR heatmaps
Feature combiners Weighted sum, geometric mean, z-scored norm, or any sklearn estimator
External feedback output OSC (Max/MSP, SuperCollider) and LSL outlet (PsychoPy, OpenViBE, BCI2000)
BIDS-compatible saving Session JSON + TSV with full metadata, artifact rate, and SNR
CLI mne-rt info · mne-rt demo · mne-rt baseline · mne-rt run
Mock mode Full pipeline without hardware via built-in LSL replay

Installation

pip install mne-rt                 # core package
pip install "mne-rt[full]"         # + 3-D viz, dev tools, docs
Other installation methods

uv (fast Rust-based installer):

uv pip install mne-rt
uv pip install "mne-rt[full]"

Development install from source:

git clone https://github.com/payamsash/mne-rt.git
cd mne-rt
pip install -e ".[dev]"

Verify:

mne-rt info     # prints MNE-RT and dependency versions
mne-rt demo     # runs a 60-second mock neurofeedback session

Quick start

from mne_rt import RTStream
from mne_rt.protocols import ZScoreProtocol

# 1 — Create a session object
nf = RTStream(
    subject_id="sub01",
    session="01",
    subjects_dir="/data/subjects",
    montage="easycap-M1",
)

# 2 — Connect to a live LSL stream (or replay a file without hardware)
nf.connect_to_lsl(mock_lsl=True)

# 3 — Record a resting-state baseline (bad channels, ICA, noise cov)
nf.record_baseline(duration=120)

# 4 — Run a closed-loop NF session
nf.record_main(
    duration=300,
    modality=["sensor_power", "erd_ers"],
    protocol=ZScoreProtocol(direction="up", zscore_threshold=0.5),
    show_nf_signal=True,
    show_topo=True,
)

# 5 — Save results (BIDS-compatible JSON + TSV)
nf.save()

CLI

# Print version and all dependency versions
mne-rt info

# Quick demo — no amplifier needed
mne-rt demo --duration 60 --modality sensor_power erd_ers

# Record a resting-state baseline
mne-rt baseline --subject sub01 --subjects-dir /data --session 01

# Run a full session with artifact correction and live displays
mne-rt run --subject sub01 --subjects-dir /data --duration 600 \
           --modality sensor_power erd_ers \
           --artifact-correction asr \
           --topo --brain

Documentation

Full documentation (API reference, tutorials, visualization gallery) is available at payamsash.github.io/mne-rt.

Cite

If you use MNE-RT in your research, please cite:

@inproceedings{shabestari2025advances,
  title        = {Advances on Real Time {M/EEG} Neural Feature Extraction},
  author       = {Shabestari, Payam S and Ribes, Delphine and D{\'e}fayes, Lara
                  and Cai, Danpeng and Groves, Emily and Behjat, Harry H
                  and Van de Ville, Dimitri and Kleinjung, Tobias
                  and Naas, Adrian and Henchoz, Nicolas and others},
  booktitle    = {2025 IEEE 38th International Symposium on Computer-Based
                  Medical Systems (CBMS)},
  pages        = {337--338},
  year         = {2025},
  organization = {IEEE}
}

Acknowledgements

Development was supported by the Swiss National Science Foundation (grant 208164 — Advancing Neurofeedback in Tinnitus).

License

MIT License — © 2025 Payam S. Shabestari

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mne_rt-1.0.1.tar.gz (207.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mne_rt-1.0.1-py3-none-any.whl (234.9 kB view details)

Uploaded Python 3

File details

Details for the file mne_rt-1.0.1.tar.gz.

File metadata

  • Download URL: mne_rt-1.0.1.tar.gz
  • Upload date:
  • Size: 207.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for mne_rt-1.0.1.tar.gz
Algorithm Hash digest
SHA256 5f1928af0b229d9d8d181ccc9b4ae943aa32fffde68812b162b07b301225d1f7
MD5 0bd00e0eff8cbc70ba4a7fa92601cd90
BLAKE2b-256 31c0f7c9b05456cc5e2314d905f66307c20f8b6028ba071d0828412475f1ee63

See more details on using hashes here.

File details

Details for the file mne_rt-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: mne_rt-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 234.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for mne_rt-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d823e8a2294556b2e35b204ac93f6fab0bacbd9c5a9ca0d061af29502d05e29a
MD5 6d09e41bd727f855458245547590b4f2
BLAKE2b-256 b7107d72b154ed5f9ea124ed0e96768daa591ae2ee5a0ee310400d4102923263

See more details on using hashes here.

Release history Release notifications | RSS feed

1.1.0

2 files

1.0.2

2 files

This release

1.0.1 This release

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page