Open-source Python toolkit for reading EEG data, processing neural signals, and building brain-computer interfaces. Supports consumer hardware. Actually documented.
We're not pretending this is production-ready. But it works, and it's getting better every week.
Honest status of what works, what's in progress, and what we're planning. No vaporware.
Install, plug in your EEG, run the example. If it takes longer than five minutes, that's a bug and you should file an issue.
# pip install neural-ninja (coming soon)
from neural_ninja import Board, FilterPipeline
from neural_ninja.viz import LivePlot
# Auto-detect connected EEG device
board = Board.auto_connect()
# Build a signal processing chain
pipeline = FilterPipeline([
("bandpass", {"low": 1, "high": 40}),
("notch", {"freq": 60}),
("car", {}), # Common Avg Ref
])
# Stream and visualize
board.start_stream()
plot = LivePlot(board, pipeline, channels=[0,1,2,3])
plot.show()
# Read filtered data
epoch = board.get_data(seconds=2)
filtered = pipeline.apply(epoch)
print(f"Shape: {filtered.shape}")
# >> Shape: (4, 500) # 4ch, 250Hz
First-class drivers for these. Community contributions welcome for anything else. If it speaks LSL, it probably works already.
8ch research-grade
4ch budget option
Consumer headband
Sleep EEG
14ch wireless
8ch dry electrode
Open-source 32ch
Generic driver
This is a nights-and-weekends project that wants to be more than that. If you know signal processing, BCI paradigms, or just want better docs — PRs are open.
Branch from main. Read CONTRIBUTING.md. It's short.
Add tests. Run make lint. Don't break existing stuff.
Describe what you did and why. We review fast.
Merged code goes out in the next release. You get credit.