  There are high technological and software demands associated with conducting
brain-computer interface (BCI) research. In order to accelerate the development
and accessibility of BCI, it is worthwhile to focus on open-source and desired
tooling. Python, a prominent computer language, has emerged as a language of
choice for many research and engineering purposes. In this manuscript, we
present BciPy, an open-source, Python-based software for conducting BCI
research. It was developed with a focus on restoring communication using
event-related potential (ERP) spelling interfaces, however, it may be used for
other non-spelling and non-ERP BCI paradigms. Major modules in this system
include support for data acquisition, data queries, stimuli presentation,
signal processing, signal viewing and modeling, language modeling, task
building, and a simple Graphical User Interface (GUI).
