Usage
Download statistics for 2026-08-06.
PyPI Download Statistics
| # | napari | npe2 | napari-plugin-manager |
|---|---|---|---|
| Last day | 6949 | 7224 | 3301 |
| Last week | 54862 | 49333 | 23240 |
| Last month | 194042 | 192086 | 83096 |
| Total | 7388547 | 6419009 | 1273430 |
Conda Download Statistics
| # | napari | npe2 | napari-plugin-manager |
|---|---|---|---|
| Total | 270970 | 182927 | 74812 |
| Last version | 2316 | 5947 | 15484 |
Bundled App Downloads
| Windows | macOS | Linux |
|---|---|---|
| 14920 | 7347 | 2168 |
Forum Engagement
There are 1443 topics on forum.image.sc with the napari tag.
Total engagement: 932 users.
496 topics active since 2024-01-01 with 440 users.
Download Maps
GitHub Statistics
Activity Overview
Napari issues activity
Cumulative activity on the repository.
Napari pull requests activity
Cumulative PR activity.
Napari GitHub Stars
Current star count.
Napari Downloads per Day
Daily download form conda
Version downloaded from conda in last 30 days
Basic GitHub Statistics (2026-08-06)
| Name | Value |
|---|---|
| Stars | 2722 |
| Active contributors | 100 |
| Average PR per day | 0.36 |
| Total PRs | 5440 |
| Merged PRs | 4536 |
| PRs closed without merge | 738 |
| Open PRs | 166 |
| Merged PRs since 2024-01-01 | 1447 |
| Open PRs since 2024-01-01 | 337 |
| New features since 2024-01-01 | 59 |
| New enhancements since 2024-01-01 | 211 |
| Bug fixes since 2024-01-01 | 308 |
| Issues closed since 2024-01-01 | 898 |
| Issues opened since 2024-01-01 | 1031 |
Contributor Activity
Top Contributor Metrics
All Time
| PR creator | Total | napari/napari | napari/docs | napari/npe2 |
|---|---|---|---|---|
| Czaki | 948 | 841 | 83 | 24 |
| tlambert03 | 664 | 536 | 2 | 126 |
| sofroniewn | 485 | 482 | 0 | 3 |
| psobolewskiPhD | 388 | 278 | 101 | 9 |
| brisvag | 317 | 288 | 23 | 6 |
| jni | 294 | 225 | 68 | 1 |
| Carreau | 274 | 255 | 1 | 18 |
| TimMonko | 227 | 142 | 81 | 4 |
| melissawm | 179 | 62 | 110 | 7 |
| DragaDoncila | 160 | 109 | 31 | 20 |
Since 2024-01-01
| PR creator | Total | napari/napari | napari/docs | napari/npe2 |
|---|---|---|---|---|
| Czaki | 511 | 439 | 62 | 10 |
| psobolewskiPhD | 286 | 214 | 65 | 7 |
| TimMonko | 227 | 142 | 81 | 4 |
| brisvag | 176 | 150 | 21 | 5 |
| jni | 121 | 60 | 60 | 1 |
| willingc | 90 | 41 | 38 | 11 |
| melissawm | 80 | 11 | 68 | 1 |
| DragaDoncila | 77 | 31 | 30 | 16 |
| Aniketsy | 62 | 61 | 1 | 0 |
| dalthviz | 61 | 57 | 4 | 0 |
All Time
| PR coauthor | Total | napari/napari | napari/docs | napari/npe2 |
|---|---|---|---|---|
| Czaki | 6078 | 5685 | 255 | 138 |
| tlambert03 | 5301 | 4456 | 3 | 842 |
| brisvag | 3418 | 3224 | 101 | 93 |
| sofroniewn | 3113 | 3096 | 0 | 17 |
| psobolewskiPhD | 2057 | 1428 | 556 | 73 |
| jni | 1880 | 1613 | 258 | 9 |
| andy-sweet | 1606 | 1566 | 38 | 2 |
| TimMonko | 1581 | 1139 | 408 | 34 |
| pwinston | 1470 | 1470 | 0 | 0 |
| DragaDoncila | 1216 | 949 | 137 | 130 |
Since 2024-01-01
| PR coauthor | Total | napari/napari | napari/docs | napari/npe2 |
|---|---|---|---|---|
| Czaki | 3362 | 3105 | 189 | 68 |
| brisvag | 2033 | 1844 | 99 | 90 |
| TimMonko | 1580 | 1138 | 408 | 34 |
| psobolewskiPhD | 1430 | 998 | 378 | 54 |
| jni | 752 | 529 | 216 | 7 |
| dalthviz | 638 | 623 | 15 | 0 |
| DragaDoncila | 474 | 246 | 130 | 98 |
| willingc | 414 | 186 | 162 | 66 |
| lucyleeow | 267 | 113 | 152 | 2 |
| melissawm | 238 | 22 | 215 | 1 |
All Time
| PR creator | Total | napari/napari | napari/docs | napari/npe2 |
|---|---|---|---|---|
| tlambert03 | 664 | 536 | 2 | 126 |
| sofroniewn | 485 | 482 | 0 | 3 |
| Carreau | 274 | 255 | 1 | 18 |
| andy-sweet | 146 | 140 | 4 | 2 |
| lucyleeow | 108 | 69 | 32 | 7 |
| dalthviz | 107 | 100 | 6 | 1 |
| goanpeca | 99 | 97 | 1 | 1 |
| dstansby | 98 | 81 | 16 | 1 |
| pwinston | 85 | 85 | 0 | 0 |
| alisterburt | 71 | 70 | 1 | 0 |
Since 2024-01-01
| PR creator | Total | napari/napari | napari/docs | napari/npe2 |
|---|---|---|---|---|
| Aniketsy | 62 | 61 | 1 | 0 |
| dalthviz | 61 | 57 | 4 | 0 |
| lucyleeow | 48 | 25 | 21 | 2 |
| dstansby | 32 | 26 | 5 | 1 |
| matthiasschabel | 18 | 18 | 0 | 0 |
| andy-sweet | 15 | 11 | 4 | 0 |
| rahul713rk | 10 | 10 | 0 | 0 |
| cnstt | 9 | 6 | 3 | 0 |
| GenevieveBuckley | 8 | 7 | 1 | 0 |
| omkar-334 | 7 | 2 | 1 | 4 |
All Time
| PR reviewer | Total | napari/napari | napari/docs | napari/npe2 |
|---|---|---|---|---|
| sofroniewn | 4432 | 4424 | 1 | 7 |
| jni | 3702 | 3410 | 270 | 22 |
| Czaki | 3553 | 3261 | 221 | 71 |
| tlambert03 | 2401 | 2228 | 0 | 173 |
| brisvag | 2236 | 2043 | 135 | 58 |
| psobolewskiPhD | 2171 | 1409 | 714 | 48 |
| andy-sweet | 1168 | 1144 | 21 | 3 |
| TimMonko | 943 | 650 | 256 | 37 |
| DragaDoncila | 906 | 640 | 181 | 85 |
| Carreau | 873 | 842 | 9 | 22 |
Since 2024-01-01
| PR reviewer | Total | napari/napari | napari/docs | napari/npe2 |
|---|---|---|---|---|
| Czaki | 1674 | 1518 | 128 | 28 |
| psobolewskiPhD | 1419 | 963 | 430 | 26 |
| brisvag | 1174 | 1013 | 111 | 50 |
| jni | 1089 | 867 | 209 | 13 |
| TimMonko | 942 | 649 | 256 | 37 |
| DragaDoncila | 490 | 323 | 123 | 44 |
| willingc | 388 | 250 | 122 | 16 |
| lucyleeow | 205 | 101 | 102 | 2 |
| melissawm | 175 | 29 | 145 | 1 |
| dalthviz | 122 | 119 | 3 | 0 |
Plugin Statistics
| Name | Value |
|---|---|
| Plugin count | 654 |
| Total plugin downloads (PyPI) | 63583699 |
| Total plugin downloads (Conda) | 3663991 |
| Plugins above 1500 downloads (last month) | 57 |
| Actively developed plugins (since 2024-01-01) | 426 |
Plugins with more than 1500 downloads last month are considered actively used.
Excluded: PartSeg, skan
Repository Activity
From 2026-07-27 to 2026-08-02
Merged old PRs
- 📗 napari/napari#8633 Canvas model by brisvag
- 📗 napari/napari#8661 Implement fuzzy find for the command palette by brisvag
- 📗 napari/napari#8783 Implement Surface slicing with async request/response by brisvag
- 📗 napari/npe2#481 ci: [pre-commit.ci] autoupdate by pre-commit-ci[bot]
- 📗 napari/npe2#482 ci(dependabot): bump astral-sh/setup-uv from 8.2.0 to 8.3.2 by dependabot[bot]
- 📗 napari/npe2#483 Defer unittest import by psobolewskiPhD
- 📗 napari/napari#9209 fix async colormap by ArneDefauw
- 📗 napari/napari#9244 fix: adjust the layout based on the hidden layers in grid by Revathyvenugopal162
- 📗 napari/npe2#489 ci(dependabot): bump softprops/action-gh-release from 3.0.1 to 3.0.2 by dependabot[bot]
- 📗 napari/napari#9287 Status bar coordinates as floats by jni
- 📗 napari/napari#9284 Fix test failures when running napari in tiling window managers by forcing the screenshot size. by ArozHada
- 📗 napari/napari#9291 UX: Indicate web links in Help menu with ↗ (unicode character) by psobolewskiPhD
- 📗 napari/napari#9289 Fix auto_contrast button state initialization by MargotCh
Solved old Issues
- 📗 napari/napari#5847 Closes widgets via X isn't registered as unticking in the plugin menu by ruaridhg
- 📗 napari/napari#3758 `MouseEvent` position varying according to layers scale by JoOkuma
- 📗 napari/napari#3101 Unify (visual) plugins (dockwidgets) under either the window or the plugins menu. by goanpeca
- 📗 napari/napari#1701 Allow scale and translation parameters to have units by jni
- 📗 napari/napari#835 Convenience APIs for empty shapes / points / labels by sofroniewn
- 📗 napari/napari#8496 Discrepancy in colors with example `add_labels_with_features` by TimMonko
- 📗 napari/napari#9188 Async slicing can render `Labels` with stale dtype-dependent direct colormap state by ArneDefauw
- 📗 napari/napari#9199 [grid mode] hidden layers are always part of grid mode layout by psobolewskiPhD
New PRs
- 📗 napari/napari#9293 New layer inherits axis labels when derived from another layer by cockovaz
- 📗 napari/napari#9292 Add `locked_data_level` to `add_image()` signature by TimMonko
- 📖 napari/docs#1088 Improve tox usage documentation by Czaki
- 📗 napari/napari#9303 [pre-commit.ci] pre-commit autoupdate by pre-commit-ci[bot]
- 📖 napari/napari#9302 fix: guard remove_selected against _is_creating state by abhi-0203
- 📗 napari/napari#9297 deprecate setting dims axis labels in examples by cockovaz
- 📕 napari/napari#9296 Enable layer controls when multiple layers are selected by MargotCh
- 📗 napari/napari#9295 Update `certifi`, `hypothesis`, `pandas`, `platformdirs`, `tqdm`, `virtualenv` by napari-bot
- 📗 napari/docs#1090 [pre-commit.ci] pre-commit autoupdate by pre-commit-ci[bot]
- 📗 napari/npe2#493 ci(dependabot): bump actions/checkout from 7.0.0 to 7.0.1 in the github-actions group across 1 directory by dependabot[bot]
- 📗 napari/npe2#491 Unify configuration schema and greatly simplify fields by DragaDoncila
- 📖 napari/napari#9319 [WIP] The (almost) Everything example by TimMonko
- 📖 napari/napari#9318 Dynamically construct layer controls based on selection by MargotCh
- 📖 napari/napari#9317 feat: initial working version slide out dockwidget by melonora
- 📖 napari/napari#9316 Inherit axis label, scale, unit, and translate from Xarrays by TimMonko
- 📖 napari/napari#9314 Remove `make_napari_viewer` from `test_vispy_labels_polygon_overlay` by Czaki
- 📗 napari/napari#9312 Update latlon with map example to follow PEP8 by jni
- 📖 napari/napari#9311 Fix hidden grids when stride is not abs(1) by ArozHada
- 📖 napari/napari#9309 Simplify tox configuration by Czaki
- 📖 napari/napari#9308 Add plugin-defined settings through `ConfigurationContribution`s by BadPrograms
- 📗 napari/napari#9307 Load data from zarr in map example if contextily fails by jni
- 📗 napari/napari#9306 Adding histogram to surfaces by MargotCh
- 📕 napari/napari#9304 Don't run latlon map example on CI to avoid spamming OSM by jni
- 📗 napari/docs#1091 Bring several NAPs up to date by brisvag
- 📗 napari/npe2#496 Make title, type and default required fields for ConfigurationProperty by DragaDoncila
- 📗 napari/npe2#495 Fully document all `ConfigurationJsonSchema` and `ConfigurationProperty` fields by DragaDoncila
- 📖 napari/napari#9325 Reorder font-family declaration in console QSS by psobolewskiPhD
- 📗 napari/napari#9324 UI: Add back the space between the arrow and 'activity' by psobolewskiPhD
- 📖 napari/napari#9323 Scene model by brisvag
- 📖 napari/napari#9322 Add tests to check if all mehod to create image have consistent signatures by Czaki
- 📖 napari/napari#9336 fix: correct typos in source by TheGreatApollyon
- 📖 napari/napari#9335 Vectors: choose the colormap and its contrast limits for feature-mapped edge color by matthiasschabel
- 📖 napari/napari#9334 Give cycle color mode a usable default color cycle on Points and Vectors by matthiasschabel
- 📖 napari/napari#9333 Vectors: make edge_color_mode = 'direct' actually leave the feature mapping by matthiasschabel
- 📖 napari/napari#9331 UI: Use tabular numerals when available by psobolewskiPhD
- 📖 napari/napari#9328 fix(dims): seed per-axis playback settings from preferences instead of binding to them by matthiasschabel
- 📖 napari/napari#9327 Close the playback settings popup when Enter is pressed in the fps spinbox by matthiasschabel
- 📖 napari/napari#9326 feat(dims): enable fixed seconds-per-cycle playback speed as an alternative to FPS by matthiasschabel
- 📖 napari/docs#1093 Unify search across sub-sites by ctrueden
- 📖 napari/napari#9339 Use magnitude of Layer.scale for points/shape handles by psobolewskiPhD
- 📖 napari/napari#9337 Support for non-orthogonal 2D slicing of nD images and labels by jules-vanaret
- 📖 napari/docs#1094 ci(dependabot): bump the github-actions group with 4 updates by dependabot[bot]
- 📖 napari/napari#9342 Set console font using SystemFont.FixedFont by psobolewskiPhD
- 📖 napari/napari#9341 ci(dependabot): bump the actions group with 5 updates by dependabot[bot]
- 📖 napari/napari#9340 Example: combine points and vectors to build a 3D structured object by Grzyb33k
- 📖 napari/napari#9345 fix(layer_utils): handle non-native byte order in convert_to_uint8 by VenkateswarluNagineni
- 📖 napari/napari#9344 UX/UI: Bump the splitter (separator) size by 1px by psobolewskiPhD
New Issues
- 📖 napari/docs#1087 Migration plan to psygnal by melonora
- 📖 napari/napari#9301 Remove code only used by its own tests by jacopoabramo
- 📖 napari/napari#9300 Remove (plausibly) dead code by jacopoabramo
- 📖 napari/napari#9299 Remove superseded code by jacopoabramo
- 📖 napari/napari#9298 Dynamic/live contribution points by ctrueden
- 📖 napari/napari#9294 Allow plugins to place visual markers on the dims slider for frames of interest by anna-teruel
- 📖 napari/docs#1089 Add prefetch steep to download all remote resources on begin of docs build by Czaki
- 📗 napari/npe2#494 All ConfigurationContribution fields need to be documented by DragaDoncila
- 📖 napari/npe2#492 ConfigurationContribution follow-up issues/discussions by DragaDoncila
- 📖 napari/napari#9321 Slide-out plugin tab widgets by melonora
- 📖 napari/napari#9320 slide out layer controls and layer list widget by melonora
- 📖 napari/napari#9315 Proposal: don't run PR tests if only examples are changed by jni
- 📖 napari/napari#9313 Further suggested improvements to the status bar by jni
- 📖 napari/napari#9310 Contrast limits cannot be directly set outside of the image's values range from the GUI by jules-vanaret
- 📖 napari/napari#9305 Followup: Adjust layout of grid with hidden layers and stride > 1 by TimMonko
- 📖 napari/docs#1092 Document add_image signature and how it works by TimMonko
- 📖 napari/npe2#497 [Reader] filename_pattern matching not working as expected by psobolewskiPhD
- 📖 napari/napari#9332 Vectors: setting edge_color_mode to 'direct' does not leave the feature mapping by matthiasschabel
- 📖 napari/napari#9330 Vectors: edge color is lost when data is replaced, and layer controls never recover from an empty layer by matthiasschabel
- 📖 napari/napari#9329 Preferences and live state diverge wherever a control can override a setting by matthiasschabel
- 📖 napari/napari#9338 [Points] Can't add points on layers with negative scale values e.g. (-1, -1) by psobolewskiPhD
- 📖 napari/napari#9343 No way to tell if a plugin dock widget is hidden or closed by psobolewskiPhD
Updated old PRs
- 📖 napari/docs#1086 NAP 10 migration events by melonora
- 📖 napari/napari#8786 Small refactor of point slicing + `rescale` projection mode to replace out_of_slice_display by brisvag
- 📖 napari/napari#8980 Make label colormaps immutable, layer owns show_selected_label (alternative to #8967) by hinderling
- 📖 napari/napari#9032 Refactor out-of-slice display for vectors into a projection mode by brisvag
- 📖 napari/napari#9059 [shapes] Preserve selection when changing ndisplay or slices and avoid stale highlights by psobolewskiPhD
- 📖 napari/napari#9067 Progressive loading for 2D and 3D by kephale
- 📖 napari/napari#9076 fix(typing): add type hints and fix mypy errors in `qt_viewer.py` by Aniketsy
- 📖 napari/napari#9157 fix(typing): add typing and fix mypy errors in `_layer_delegate.py` by Aniketsy
- 📖 napari/napari#9168 fix(typing): add typing and fix mypy error in `qt_layer_model.py` by Aniketsy
- 📖 napari/napari#9173 fix(typing): add typing and fix mypy error in `qt_layer_controls_container.py` by Aniketsy
- 📖 napari/napari#9176 fix(typing): add typing and fix mypy error in `qt_tracks_controls.py` by Aniketsy
- 📖 napari/napari#9178 fix(typing): add typing and fix mypy error in `qt_vectors_controls.py` by Aniketsy
- 📖 napari/napari#9180 fix(typing): add typing and fix mypy error in `qt_current_size_slider.py` by Aniketsy
- 📖 napari/napari#9206 [shapes] Enable option as modifier to draw/resize rect/ellipse/line from center by psobolewskiPhD
- 📖 napari/napari#9241 fix(typing): add typing and fix mypy error in `_evented_list.py` by Aniketsy
- 📖 napari/napari#9249 fix(typing): add typing and fix mypy error in `_nested_list.py` by Aniketsy
- 📖 napari/napari#9253 fix(typing): annotate `napari/utils/key_bindings.py` by jacopoabramo
- 📖 napari/napari#9288 Enable coverage annotation in PR changes view by Czaki
- 📖 napari/napari#9290 Add guided viewer tour by sdiebolt
Updated old Issues
- 📖 napari/napari#9285 Follow ups on axis labels handling by jni
- 📖 napari/napari#6917 How to handle providers/processors when headless by lucyleeow
- 📖 napari/napari#9280 Cleanup: investigate (and remove) unused code in production by jacopoabramo
- 📖 napari/napari#9072 View direction calculation is wrong by brisvag
- 📖 napari/napari#9092 Clean up and fix cursor overlay by brisvag
- 📖 napari/npe2#155 Consider application of `filename_patterns` to readers that accept directories by DragaDoncila
- 📖 napari/napari#8568 custom viewer.dims.axis_labels mangled if merging 3D layers and lost when deleting last layer by psobolewskiPhD
- 📖 napari/napari#1087 Edge thickness should be added to point size for hovering by sofroniewn
Source data available here.