NEST is a simulator for spiking neural networks. Development is coordinated by the NEST Initiative. For details about how to use NEST for your own modeling studies, see

This is the developer manual for NEST.

We use a private repository for internal and unpublished work, while all general NEST development takes place in the public repository.

This means that you can follow NEST’s development as it happens.

For ways to contribute your own code, see below.

Development infrastructure and workflow

NEST development is backed by multiple interlinked systems, most notably,

The development workflow is based purely on pull requests. This means that no direct commits to the repository are allowed, but all has to go through the code review process unconditionally.

The details of the development workflow and the code review are layed out in the following pages:

Extending NEST

The NEST simulator is a scientific tool and as such it is never ready and constantly changing to meet the needs of novel neuroscientific endeavors.

When adding your own neuron or synapse models, the easiest way to do so without messing with NEST’s source code, is to write a plugin in the form of an extension module:

A neuron model in NEST is a C++ class that contains the neuron dynamics and implements the API for setting and retrieving parameters, updating the dynamics, sending and receiving events, and recording analog quantities from the model.

Devices are similar to neurons, but used to stimulate the network or record from the neurons without necessarily having internal dynamics.

Synapses mediate the signal flow between neuron or device models. They can either be static or implement synaptic plasticity rules such as STDP.

If you find your models written for NEST version 2.4 and prior not working anymore in newer versions, the most likely reason is that we have updated the API for neuron and synapse models. To make the transision of models easier for you, there is a conversion guide:

Dig deeper!

NEST is a complex piece of software with a long history. To get you started at learning about it, there’s a collection of documents describing the NEST simulation kernel in historical order:

For even more information, see the numerous publications about the technology behind NEST.

Contributions welcome!

We are happily accepting contributions in the form of new models and functions or general improvements to NEST. To have your code included, it must adhere to some minimal coding and naming conventions:

Once your code is in shape, head over to the workflow manual to find out how to initiate the inclusion by issuing a pull request.

You might also want to consider becoming a member in the NEST Initiative.

Further reading (aka needs-a-better-home)