napari
n-dimensional array viewer in Python
Decision gist · record as of 2026-08-14
Yes, if you work with multidimensional scientific images and want an interactive viewer without building custom GUI code. The active maintenance, permissive license, and low install friction make it a solid choice. Install into a dedicated virtual environment to manage the 36 dependencies cleanly. Not recommended if you need headless batch processing or have minimal GPU/display infrastructure.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >=3.11.
- Qt backend (PyQt6 or PySide6) must be installed; the [all] extra handles this.
- GPU rendering via PyOpenGL requires a compatible graphics driver.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause is permissive; you can use, modify, and distribute napari freely in commercial or private projects provided you include the license and copyright notice.
last release 2026-07-14 (31 days) · last repo commit 2026-08-14 · 2,733 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 189,481 downloads/mo, #9,927 on PyPI
Alternatives
Verify before relying
# Install
pip install "napari[all]"
# Interactive use (IPython/Jupyter)
import napari
viewer, layers = napari.imshow(data, channel_axis=1, ndisplay=3)
# Script use
napari.run() # start the event loop- Whether the 36 runtime dependencies resolve cleanly in all common environments without version conflicts.
- Performance characteristics and memory footprint when working with very large multidimensional datasets.
- Plugin ecosystem maturity and availability of third-party extensions for domain-specific workflows.
- Specific example datasets and workflows supported by the imshow() and run() API.
What it is and what it does
napari is a standalone image viewer and analysis platform built on Qt, vispy, and the scientific Python stack (numpy, scipy, scikit-image). It loads and displays n-dimensional arrays as interactive 2D or 3D slices, supporting six layer types—Image, Labels, Points, Vectors, Shapes, and Surface—each with its own visualization and interactivity model. You can layer multiple data types, adjust properties in real time, and use keyboard shortcuts and mouse functions to interact with the data.
It's designed for researchers and educators who need to browse and annotate large multidimensional datasets without writing custom visualization code. napari runs as a standalone GUI application or can be embedded in Jupyter notebooks and IPython shells, with bidirectional communication between the viewer and Python kernel. The plugin system (via npe2 and napari-plugin-engine) allows extending functionality with custom shortcuts, key bindings, and domain-specific tools.
Use it for
- Browse and slice 3D microscopy or medical imaging data interactively without writing custom rendering code.
- Annotate segmentation masks, points, or shapes on large multidimensional images for training data.
- Visualize and explore scientific arrays in real time from Jupyter notebooks or IPython shells.
- Build domain-specific image analysis workflows by extending napari with custom plugins and key bindings.
- Compare multiple image layers side-by-side with synchronized navigation and property adjustment.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with multidimensional scientific images and want an interactive viewer without building custom GUI code.
The active maintenance, permissive license, and low install friction make it a solid choice. Install into a dedicated virtual environment to manage the 36 dependencies cleanly. Not recommended if you need headless batch processing or have minimal GPU/display infrastructure.
Install
napari on PyPI
Before you install
Low install friction with a wheel distribution. Active maintenance—last commit 2026-08-14, release 31 days ago. Depends on 36 runtime packages including heavy scientific libraries and Qt/GPU rendering; installation time and disk footprint will be substantial but manageable in a dedicated environment.
Requires Python >=3.11. Qt backend (PyQt6 or PySide6) must be installed; the [all] extra handles this. GPU rendering via PyOpenGL requires a compatible graphics driver.
License in practice
BSD-3-Clause is permissive; you can use, modify, and distribute napari freely in commercial or private projects provided you include the license and copyright notice.
Quickstart
# Install
pip install "napari[all]"
# Interactive use (IPython/Jupyter)
import napari
viewer, layers = napari.imshow(data, channel_axis=1, ndisplay=3)
# Script use
napari.run() # start the event loop
Verify before relying
- Whether the 36 runtime dependencies resolve cleanly in all common environments without version conflicts.
- Performance characteristics and memory footprint when working with very large multidimensional datasets.
- Plugin ecosystem maturity and availability of third-party extensions for domain-specific workflows.
- Specific example datasets and workflows supported by the imshow() and run() API.
Package facts
| License | BSD-3-Clause permissive |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 36 packagesapp-modelcacheycertifidaskimageiojsonschemalazy_loadermagicguinapari-consolenapari-plugin-enginenapari-svgnpe2numpypandasPillowpintplatformdirspsutilpsygnalpydanticpygmentspydantic-extra-typespydantic-settingsPyOpenGLpywin32PyYAMLqtpyscikit-imagescipysuperqt |
| Maintenance | Actively maintained 31 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 189,481 / month, #9,927 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaEnvironment :: X11 Applications :: QtFramework :: napariIntended Audience :: EducationIntended Audience :: Science/ResearchOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIXOperating System :: UnixProgramming Language :: CProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Scientific/EngineeringTopic :: Scientific/Engineering :: Bio-InformaticsTopic :: Scientific/Engineering :: Information AnalysisTopic :: Scientific/Engineering :: VisualizationTopic :: Utilities |
Evidence: napari-0.8.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “multidimensional image viewer”
- naparinapari is an interactive, multi-dimensional image viewer for Python…
- napari-consoleAdds an interactive Python console panel to napari, allowing you to…
- mkdocs-glightboxA MkDocs plugin that automatically wraps images in a lightbox viewer…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also napari-console · pycat-napari · napari-svg · napari-plugin-manager · vispy · npe2 · napari-plugin-engine · bermuda · silx · scikit-image