
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
pymmcore-plus
Advanced tools
pymmcore superset providing improved APIs, event handling, and a pure python acquisition engine
pymmcore-plus extends pymmcore
(python bindings for the C++ micro-manager
core) with a number of
features designed to facilitate working with Micro-manager in pure python/C
environments.
pymmcore_plus.CMMCorePlus is a drop-in replacement subclass of
pymmcore.CMMCore that provides a number of helpful overrides and additional
convenience functions beyond the standard CMMCore
API. See
CMMCorePlus
documentation
for details.pymmcore-plus includes an acquisition engine
that drives micro-manager for conventional multi-dimensional experiments. It accepts an
MDASequence
from useq-schema for
experiment design/declaration.CMMCorePlus class also fixes a number of
"missed" events that are not currently emitted by the CMMCore API.https://pymmcore-plus.github.io/pymmcore-plus/
pymmcore directly?pymmcore is (and should probably remain) a thin SWIG wrapper for the C++ code at the core of the Micro-Manager project. It is sufficient to control micromanager via python, but lacks some "niceties" that python users are accustomed to. This library:
pymmcore.CMMCore object with additional
methodsMMCore.Configuration
and Metadata.Enums rather than int for various
constantscamelCase method names from the
CMMCore API are not substituted with snake_case).Pycro-Manager?Pycro-Manager is designed to make it easier to work with and control the Java Micro-manager application (MMStudio) using python. As such, it requires Java to be installed and for MMStudio to be running a server in another process. The python half communicates with the Java half using ZeroMQ messaging.
In brief: while Pycro-Manager provides a python API to control the Java
Micro-manager application (which in turn controls the C++ core), pymmcore-plus
provides a python API to control the C++ core directly, without the need for
Java in the loop. Each has its own advantages and disadvantages! With
pycro-manager you retain the entire existing micro-manager ecosystem
and GUI application. With pymmcore-plus, the entire thing is python: you
don't need to install Java, and you have direct access to the memory buffers
used by the C++ core. Work on recreating the gui application in python
being done in pymmcore-widgets
and pymmcore-gui.
from pip
pip install pymmcore-plus
# or, add the [cli] extra if you wish to use the `mmcore` command line tool:
pip install "pymmcore-plus[cli]"
# add the [io] extra if you wish to use the tiff or zarr writers
pip install "pymmcore-plus[io]"
from conda
conda install -c conda-forge pymmcore-plus
dev version from github
pip install 'pymmcore-plus[cli] @ git+https://github.com/pymmcore-plus/pymmcore-plus'
Usually, you'll then want to install the device adapters. Assuming you've
installed with pip install "pymmcore-plus[cli]", you can run:
mmcore install
(you can also download these manually from micro-manager.org)
See installation documentation for more details.
Then use the core object as you would pymmcore.CMMCore...
but with more features :smile:
from pymmcore_plus import CMMCorePlus
core = CMMCorePlus()
...
See a number of usage examples in the documentation.
You can find some basic python scripts in the examples directory of this repository
Contributions are welcome! See contributing guide.
FAQs
pymmcore superset providing improved APIs, event handling, and a pure python acquisition engine
We found that pymmcore-plus demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.