> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nimbusbci.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Python SDK Installation

> Install and verify the nimbus-bci Python SDK with pip, dependencies, and setup checks for local BCI development.

Install the nimbus-bci Python SDK from PyPI and verify your setup.

## Requirements

Before installing, ensure you have:

* **Python ≥ 3.11** (Python 3.11, 3.12, or 3.13)
* **pip** package manager
* **64-bit system** (Linux, macOS, or Windows)

<Note>
  The Python SDK does **not** require an API key. All processing is local.
</Note>

## Install from PyPI

Install the latest stable version from PyPI:

```bash theme={null}
pip install nimbus-bci
```

This installs the core package with all required dependencies:

* NumPy ≥ 1.26
* scikit-learn ≥ 1.6
* SciPy ≥ 1.17.1

Requires Python `>=3.11,<3.14` (CPython 3.11–3.13 wheels).

## Optional Dependencies

Install optional features as needed:

### MNE-Python Integration

For EEG preprocessing and feature extraction:

```bash theme={null}
pip install nimbus-bci[mne]
```

This adds:

* MNE ≥ 1.6

### Visualization

For plotting and diagnostics:

```bash theme={null}
pip install nimbus-bci[viz]
```

This adds:

* Matplotlib ≥ 3.8

### Softmax Model

For the optional JAX-based `NimbusSoftmax` model:

```bash theme={null}
pip install nimbus-bci[softmax]
```

This adds:

* JAX ≥ 0.4.25

### Riemannian Feature Pipelines

For pyRiemann covariance / tangent-space features, plus `Personalizer.for_riemann` / `for_p300`:

```bash theme={null}
pip install nimbus-bci[riemann]
```

This adds:

* pyRiemann ≥ 0.11, \< 0.12

<Note>
  The `riemann` extra enables `nimbus_bci.riemann.make_riemann_nimbus_pipeline(...)` and the paradigm factories. This is a feature-extraction / geometry bridge to Nimbus heads, not a separate Riemannian Bayesian model family.
</Note>

### Trunk PEFT / BaLoRA (research)

For opt-in trunk adaptation (`wrap_lora`, FiLM, `Personalizer.for_balora`):

```bash theme={null}
pip install nimbus-bci[train]
```

This adds:

* torch ≥ 2.14.0

Research surface only — no certified accuracy claims.

### All Optional Dependencies

Install everything:

```bash theme={null}
pip install nimbus-bci[all]
```

## Development Installation

For development or contributing, install from a source tree you have access to:

```bash theme={null}
pip install -e ".[dev,all]"
```

This includes:

* pytest for testing
* Cython for building extensions
* build and twine for packaging

Published installs use PyPI — you do not need a Git clone for normal use.

## Verify Installation

Test your installation — product surface first, then classical heads:

```python theme={null}
import nimbus_bci
print(f"nimbus-bci version: {nimbus_bci.__version__}")

from nimbus_bci import Personalizer, wrap, BrainState
print("Personalizer / wrap / BrainState imported successfully")

from nimbus_bci import NimbusLDA, NimbusQDA, NimbusSTS
print("Core heads imported successfully")

import numpy as np
X = np.random.randn(100, 10)
y = np.random.randint(0, 2, 100)

enc = wrap(lambda Z: Z, model_id="verify-encoder", embedding_dim=10)
adapter = Personalizer.for_deployment(enc, ["a", "b"])
adapter.fit(X, y)
states = adapter.predict(X[:5])
assert isinstance(states[0], BrainState)
print("Personalizer smoke test works")
```

Expected output:

```text theme={null}
nimbus-bci version: 0.6.0
Personalizer / wrap / BrainState imported successfully
Core heads imported successfully
Personalizer smoke test works
```

## Platform-Specific Notes

### macOS

Pre-built wheels for Intel (`x86_64`) and Apple Silicon (`arm64`):

```bash theme={null}
pip install nimbus-bci
```

### Linux

Pre-built wheels for **x86\_64** use the `manylinux_2_28` platform tag. Other architectures fall back to building from the sdist (requires a C compiler and Cython).

```bash theme={null}
pip install nimbus-bci
```

### Windows

Pre-built wheels for 64-bit Windows:

```bash theme={null}
pip install nimbus-bci
```

<Note>
  32-bit systems are not supported. Use 64-bit Python on a 64-bit OS.
</Note>

## Troubleshooting

### JAX Installation Issues

JAX is only required for `NimbusSoftmax`. If JAX installation fails, install it separately first:

```bash theme={null}
# CPU-only JAX
pip install jax[cpu]

# Then install the softmax extra
pip install nimbus-bci[softmax]
```

For GPU support, see [JAX installation guide](https://github.com/google/jax#installation).

### Import Errors

If you see import errors, verify dependencies:

```python theme={null}
import numpy
import sklearn
import scipy

print(f"NumPy: {numpy.__version__}")
print(f"scikit-learn: {sklearn.__version__}")
print(f"SciPy: {scipy.__version__}")
```

All versions should meet minimum requirements.

### MNE-Python Conflicts

If you have an existing MNE installation, you may need to upgrade:

```bash theme={null}
pip install --upgrade mne scipy
```

## Upgrading

Upgrade to the latest version:

```bash theme={null}
pip install --upgrade nimbus-bci
```

Upgrading from 0.5? See [Migration to 0.6](/python-sdk/migration-0.6) — decision presets and some middleware import paths changed. Release notes: [Changelog 0.6](/python-sdk/changelog-0.6).

Check your version:

```python theme={null}
import nimbus_bci
print(nimbus_bci.__version__)
```

## Uninstalling

Remove the package:

```bash theme={null}
pip uninstall nimbus-bci
```

## License

The nimbus-bci Python SDK is **proprietary**, with two tracks under `LICENSE.txt` (v2.1) shipped in the PyPI package:

| Track | Use case | Cost |
| - | - | - |
| **Non-Commercial** | Academic research, teaching, government / non-profit labs, personal learning | Free (self-executing; no registration) |
| **Startup** | Companies with less than US \$1M annual revenue | Paid — contact us |
| **Commercial** | Full production rights | Paid — contact us |
| **Enterprise** | Unlimited deployments + SLA | Paid — contact us |
| **OEM / Embedded** | Medical devices, FDA support | Paid — contact us |

Any use inside a for-profit company, in a paid product or service, or for sponsored / fee-for-service research requires a commercial license. Citation is requested as a community norm, not a license condition.

### Request a commercial license

Email [hello@nimbusbci.com](mailto:hello@nimbusbci.com) with your use case.

<Note>
  Non-commercial eligibility is self-executing — no license key or registration is required. Full terms ship with the package as `LICENSE.txt`.
</Note>

## What's next

<Columns cols={2}>
  <Card title="Quickstart" icon="rocket" href="/python-sdk/quickstart">
    Build your first Personalizer in minutes
  </Card>

  <Card title="Migration to 0.6" icon="arrow-right" href="/python-sdk/migration-0.6">
    Breaking changes from 0.5
  </Card>

  <Card title="Changelog 0.6" icon="scroll" href="/python-sdk/changelog-0.6">
    Release notes mirror
  </Card>

  <Card title="API Reference" icon="book" href="/python-sdk/api-reference">
    Explore the complete API documentation
  </Card>

  <Card title="sklearn Integration" icon="code" href="/python-sdk/sklearn-integration">
    Use nimbus-bci with sklearn pipelines
  </Card>
</Columns>

## Support

Need help with installation?

* **Email**: [hello@nimbusbci.com](mailto:hello@nimbusbci.com)
* **Docs**: [docs.nimbusbci.com](https://docs.nimbusbci.com)
* **PyPI**: [pypi.org/project/nimbus-bci](https://pypi.org/project/nimbus-bci/)

***

Successfully installed? Continue with the [Quickstart](/python-sdk/quickstart).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.