<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Jupyter Blog - Konstantin Taletskiy</title><link href="https://jasongrout.github.io/medium-archive/pelican/" rel="alternate"/><link href="https://jasongrout.github.io/medium-archive/pelican/feeds/author-konstantin-taletskiy.atom.xml" rel="self"/><id>https://jasongrout.github.io/medium-archive/pelican/</id><updated>2026-03-13T17:18:00+00:00</updated><subtitle>The Project Jupyter blog: news, releases, and community stories, archived from blog.jupyter.org.</subtitle><entry><title>700 JupyterLab 4 Extensions!</title><link href="https://jasongrout.github.io/medium-archive/pelican/posts/2026/700-jupyterlab-4-extensions/" rel="alternate"/><published>2026-03-13T17:18:00+00:00</published><updated>2026-03-13T17:18:00+00:00</updated><author><name>Konstantin Taletskiy</name></author><id>tag:jasongrout.github.io,2026-03-13:/medium-archive/pelican/posts/2026/700-jupyterlab-4-extensions/</id><summary type="html">&lt;p&gt;The JupyterLab extension ecosystem just crossed 700 extensions compatible with JupyterLab 4!&lt;/p&gt;
</summary><content type="html">&lt;figure&gt;
&lt;img alt="The number 700 formed by a mosaic of JupyterLab extension icons and author avatars" src="https://jasongrout.github.io/medium-archive/pelican/posts/2026/700-jupyterlab-4-extensions/images/001-1_z7SyUie14-caE28XRvtH9A.jpg" loading="lazy" data-body-image=""&gt;
&lt;figcaption&gt;700 extensions for JupyterLab 4, and counting!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The JupyterLab extension ecosystem just crossed &lt;strong&gt;700 extensions compatible with JupyterLab 4!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That’s 700 community-built plugins — from astronomical data viewers to reactive notebooks, from genome browsers to workflow managers — created by hundreds of developers, research labs, and companies around the world.&lt;/p&gt;
&lt;h2 id="what-are-jupyterlab-extensions"&gt;What Are JupyterLab Extensions?&lt;/h2&gt;
&lt;p&gt;Extensions are how JupyterLab becomes a Git client, a dashboard builder, a genomics viewer, or an AI workspace — without changing the core application. Install one with &lt;code&gt;pip install&lt;/code&gt;, and it activates automatically.&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="Collage of screenshots showing popular JupyterLab extensions in action: jupytext with file format options, jupyterlab-h5web visualizing HDF5 data, jupyter-collaboration for real-time editing, jupyterlab-git with diff and staging views, ipywidgets with interactive parameter sliders, ipympl for inline matplotlib plots, jupytergis-lab for geospatial data, sidecar for side-panel output, and jupyterlab-latex for document preview." src="https://jasongrout.github.io/medium-archive/pelican/posts/2026/700-jupyterlab-4-extensions/images/002-1_TYJMNY9zzWcawsQsOkPuLQ.webp" loading="lazy" data-body-image=""&gt;
&lt;figcaption&gt;Popular JupyterLab extensions&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;This is by design: JupyterLab itself is built as a collection of extensions — the &lt;a href="https://github.com/jupyterlab/jupyterlab/tree/main/packages/filebrowser"&gt;file browser&lt;/a&gt;, the &lt;a href="https://github.com/jupyterlab/jupyterlab/tree/main/packages/notebook"&gt;notebook editor&lt;/a&gt;, the &lt;a href="https://github.com/jupyterlab/jupyterlab/tree/main/packages/terminal"&gt;terminal&lt;/a&gt; are all plugins. The same architecture that powers the core lets the community build what they need. For background, see &lt;a href="/posts/2019/99-ways-to-extend-the-jupyter-ecosystem/"&gt;99 ways to extend the Jupyter ecosystem&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="the-ecosystem-at-700"&gt;The Ecosystem at 700&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;700+ extensions compatible with JupyterLab 4&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~960 total extensions&lt;/strong&gt; published on PyPI&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~9.8 million downloads/month&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;100M+ total downloads&lt;/strong&gt; in the past year&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By any measure, a substantial software layer has grown around JupyterLab.&lt;/p&gt;
&lt;h2 id="how-we-got-here"&gt;How We Got Here&lt;/h2&gt;
&lt;p&gt;The ecosystem crossed &lt;strong&gt;600 JL4-compatible extensions in late October 2025&lt;/strong&gt;, days before &lt;a href="https://www.jupytercon.com/"&gt;JupyterCon in San Diego&lt;/a&gt;. At the conference, we ran a full-day &lt;a href="https://jupytercon.github.io/jupytercon2025-developingextensions/"&gt;Extension Development for Everyone&lt;/a&gt; tutorial with hands-on rapid prototyping. By early March 2026, we hit &lt;strong&gt;700&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The ecosystem has been growing at a steady pace, averaging about 18 new extensions per month, with November 2025 setting an all-time monthly record of 33. Modern tooling is helping: better templates, documentation, and code generation tools have lowered the bar for what once required deep familiarity with TypeScript, Lumino, and JupyterLab internals.&lt;/p&gt;
&lt;h2 id="where-the-extensions-are"&gt;Where the Extensions Are&lt;/h2&gt;
&lt;figure&gt;
&lt;img alt="Bar chart showing number of JupyterLab extensions by category. Development and Version Control leads with 267, followed by Cloud and Platform Integration (127), AI and Code Assistance (88), Specialized Computing (83), Visualization and Dashboards (80), Educational and Grading (70), Theme (67), System and Resource Management (65), Runtime and Kernel Extensions (44), Workflow and Automation (37), and Data and Database Integration (26)" src="https://jasongrout.github.io/medium-archive/pelican/posts/2026/700-jupyterlab-4-extensions/images/003-1_lijkfmv6G5n96sO2vRzB5Q.webp" loading="lazy" data-body-image=""&gt;
&lt;figcaption&gt;Number of JupyterLab extensions by category&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;img alt="Bar chart showing 30-day PyPI downloads per category. Development and Version Control leads at 5.4 million, followed by Visualization and Dashboards (2.7M), System and Resource Management (602K), AI and Code Assistance (253K), Runtime and Kernel Extensions (206K), Cloud and Platform Integration (178K), Data and Database Integration (148K), Educational and Grading (99K), Workflow and Automation (69K), Specialized Computing (56K), and Theme (48K)" src="https://jasongrout.github.io/medium-archive/pelican/posts/2026/700-jupyterlab-4-extensions/images/004-1_wW76DvGMkq2l_Xvr0JO_vw.webp" loading="lazy" data-body-image=""&gt;
&lt;figcaption&gt;Monthly PyPI downloads by category&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Development &amp;amp; Version Control dominates both in count (267) and downloads (5.4M/month). Visualization &amp;amp; Dashboards (2.7M/month) and System &amp;amp; Resource Management (602K/month) round out the top three most downloaded categories. But the fastest-growing categories point to where things are heading. Here’s what’s new in 2026:&lt;/p&gt;
&lt;h2 id="jupyterlabs-ai-layer-starts-taking-shape"&gt;JupyterLab’s AI Layer Starts Taking Shape&lt;/h2&gt;
&lt;p&gt;AI isn’t yet the biggest category in JupyterLab, but it may be the clearest signal of where new interaction patterns are emerging:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://labextensions.dev/extensions/jupyter-ai-acp-client?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;&lt;strong&gt;jupyter-ai-acp-client&lt;/strong&gt;&lt;/a&gt; — Brings external AI agents into JupyterLab’s chat via the Agent Communication Protocol. Ships with Claude Code and Kiro personas.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://labextensions.dev/extensions/nb-margin?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;&lt;strong&gt;nb-margin&lt;/strong&gt;&lt;/a&gt; — Annotate cells with margin comments, and Claude Code edits them. A different paradigm from chat-based AI.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://labextensions.dev/extensions/jupyterlite-ai-kernels?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;&lt;strong&gt;jupyterlite-ai-kernels&lt;/strong&gt;&lt;/a&gt; — AI-powered kernels for JupyterLite, from Jeremy Tuloup. AI-assisted computation entirely in the browser.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://labextensions.dev/extensions/jupyter-chat-components?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;&lt;strong&gt;jupyter-chat-components&lt;/strong&gt;&lt;/a&gt; — Reusable chat UI components from Project Jupyter — building blocks for the next generation of AI tools.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These extensions reflect what the JupyterLab team identified as a 2026 priority: first-class integration with AI tooling.&lt;/p&gt;
&lt;h2 id="reproducibility-gets-a-toolchain"&gt;Reproducibility Gets a Toolchain&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://labextensions.dev/extensions/calkit-python?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;&lt;strong&gt;calkit-python&lt;/strong&gt;&lt;/a&gt; is the most downloaded new extension of 2026 (11,000+ monthly downloads). It gives notebooks project-scoped environments, graphical package management via Astral’s &lt;code&gt;uv&lt;/code&gt;, and one-click notebook pipelines with freshness tracking. Think “Makefiles for notebooks” meets “Poetry for Jupyter.”&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="Calkit extension in JupyterLab showing a notebook pipeline with three stages — collect-data, process-data, and plot-results — in the left sidebar, alongside a Python notebook with pandas code. The toolbar shows environment and pipeline stage indicators" src="https://jasongrout.github.io/medium-archive/pelican/posts/2026/700-jupyterlab-4-extensions/images/005-0_vKMU4QiLD406Ac9c.webp" loading="lazy" data-body-image=""&gt;
&lt;figcaption&gt;Calkit manages notebook pipelines with environment tracking and one-click reruns. The orange ‘run’ button signals stale outputs that need to be regenerated.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://labextensions.dev/extensions/jupyter-projspec?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;&lt;strong&gt;jupyter-projspec&lt;/strong&gt;&lt;/a&gt; (from the fsspec contributors) takes a complementary approach — it brings &lt;a href="https://github.com/fsspec/projspec"&gt;projspec&lt;/a&gt; into JupyterLab, letting you scan and analyze project structures directly from the notebook environment.&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="jupyter-projspec extension in JupyterLab showing the Project Spec sidebar panel with detected project types including Git Repository, Pixi, and Poetry, alongside the file browser and JupyterLab launcher with notebook and console options." src="https://jasongrout.github.io/medium-archive/pelican/posts/2026/700-jupyterlab-4-extensions/images/006-0_GSE92ExuZWmjQHtA.webp" loading="lazy" data-body-image=""&gt;
&lt;figcaption&gt;jupyter-projspec integrates to system filebrowser to show the project metadata&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id="science"&gt;Science&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://labextensions.dev/extensions/fitsview?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;&lt;strong&gt;fitsview&lt;/strong&gt;&lt;/a&gt; — Stream FITS astronomical data slices directly in JupyterLab without downloading full files.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://labextensions.dev/extensions/jupyterlab-urdf-test?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;&lt;strong&gt;jupyterlab-urdf-test&lt;/strong&gt;&lt;/a&gt; — 3D robot model viewer/editor (URDF + Three.js), from &lt;a href="https://github.com/jupyter-robotics"&gt;jupyter-robotics&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://labextensions.dev/extensions/climb-jupyter-igv?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;&lt;strong&gt;climb-jupyter-igv&lt;/strong&gt;&lt;/a&gt;— Integrative Genomics Viewer with S3 access for bioinformatics.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://labextensions.dev/extensions/ggblab?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;&lt;strong&gt;ggblab&lt;/strong&gt;&lt;/a&gt;— GeoGebra interactive geometry with bidirectional Python communication. Second most downloaded new extension of 2026.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="accessibility"&gt;Accessibility&lt;/h2&gt;
&lt;p&gt;Accessibility has been a growing focus for JupyterLab core and extensions are starting to address it too:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://labextensions.dev/extensions/jupyterlab-a11y-checker?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;&lt;strong&gt;jupyterlab-a11y-checker&lt;/strong&gt;&lt;/a&gt;— From UC Berkeley’s &lt;a href="https://github.com/berkeley-dsep-infra/jupyterlab-a11y-checker"&gt;DSEP infrastructure team&lt;/a&gt;, this extension scans notebooks for WCAG 2.1 AA issues: missing alt text, heading structure, table headers, color contrast, and link text. Guided fix interfaces, optional AI suggestions, and a CLI for CI pipelines. Over 11,000 total downloads and a &lt;a href="https://a11y-checker-guide.datahub.berkeley.edu/"&gt;documentation site&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://labextensions.dev/extensions/jupyterlab-change-ui-font-size-fix?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;&lt;strong&gt;jupyterlab-change-ui-font-size-fix&lt;/strong&gt;&lt;/a&gt; — Fixes file browser icon misalignment when users change the UI font size — a small but real pain point for anyone who needs larger text.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="27-extensions-one-platform"&gt;27 Extensions, One Platform&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/stellarshenson/stellars-jupyterlab-ds"&gt;Stellars&lt;/a&gt; is a JupyterLab-based data science platform — GPU support, MLflow, TensorBoard, Optuna — assembled from &lt;strong&gt;27 custom extensions&lt;/strong&gt; covering everything from &lt;a href="https://labextensions.dev/extensions/jupyterlab-branding-extension?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;branding&lt;/a&gt; and &lt;a href="https://labextensions.dev/extensions/jupyterlab-vscode-icons-extension?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;file icons&lt;/a&gt; to &lt;a href="https://labextensions.dev/extensions/jupyterlab-kernel-terminal-workspace-culler-extension?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;kernel management&lt;/a&gt; and &lt;a href="https://labextensions.dev/extensions/jupyterlab-drawio-render-extension?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;diagram rendering&lt;/a&gt;, &lt;a href="https://labextensions.dev/extensions/jupyterlab-vscode-icons-extension?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;VS Code file icons&lt;/a&gt;, &lt;a href="https://labextensions.dev/extensions/jupyterlab-trash-mgmt-extension?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;trash management&lt;/a&gt;, &lt;a href="https://labextensions.dev/extensions/jupyterlab-mmd-to-png-extension?utm_source=medium&amp;amp;utm_medium=blog&amp;amp;utm_campaign=700_extensions"&gt;Mermaid-to-PNG conversion&lt;/a&gt;, and more.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;JupyterLab is now flexible enough that one developer can assemble a domain-specific product entirely from extension building blocks.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="want-to-build-your-own"&gt;Want to Build Your Own?&lt;/h2&gt;
&lt;p&gt;The JupyterCon tutorial is fully available: &lt;a href="https://jupytercon.github.io/jupytercon2025-developingextensions/"&gt;step-by-step materials&lt;/a&gt; and the complete &lt;a href="https://www.youtube.com/watch?v=z-KZ6CjZjbM"&gt;YouTube recording&lt;/a&gt;. It covers scaffolding, plugin architecture, publishing to PyPI, and rapid prototyping techniques. The tools have never been more accessible.&lt;/p&gt;
&lt;h2 id="how-we-track-this"&gt;How We Track This&lt;/h2&gt;
&lt;p&gt;The data behind this post comes from the &lt;a href="https://labextensions.dev"&gt;JupyterLab Marketplace&lt;/a&gt;, a community &lt;a href="https://github.com/orbrx/jupyter-marketplace"&gt;project&lt;/a&gt; that tracks all published JupyterLab extensions using PyPI data. The marketplace refreshes automatically and provides download trends, category breakdowns, and discovery tools.&lt;/p&gt;
&lt;figure&gt;
&lt;img alt="JupyterLab Marketplace homepage showing a grid of popular extensions with download counts and GitHub stars — including jupyter-archive, jupyter-resource-usage, ipyanchorviz, jupyterlab-execute, jupyter-collaboration, jupysql-plugin, jupyterlab-unfold, jupyter-ai, jupyterlab-code-snippets, and jupyterlab-autoscroll." src="https://jasongrout.github.io/medium-archive/pelican/posts/2026/700-jupyterlab-4-extensions/images/007-1_CkZpwkmEKNiXm_XsiBRACQ.webp" loading="lazy" data-body-image=""&gt;
&lt;figcaption&gt;JupyterLab Marketplace&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;For more on the data and methodology, see our &lt;a href="https://www.youtube.com/watch?v=OWt3Yzhrs1E"&gt;PyData Boston 2025 talk&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="whats-next"&gt;What’s Next&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New interaction patterns&lt;/strong&gt; are still being figured out — chat-based assistance, cell annotations, agent protocols. Probably all of them for different use cases.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reproducibility tooling&lt;/strong&gt; suggests the community is ready for opinionated workflow management built into the notebook experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ensuring extensions keep working as JupyterLab evolves is critical — the team has been &lt;a href="https://github.com/jupyterlab/frontends-team-compass/issues/301"&gt;discussing extension compatibility testing&lt;/a&gt; at recent contributors calls.&lt;/p&gt;
&lt;p&gt;For the &lt;a href="https://labextensions.dev"&gt;Marketplace&lt;/a&gt; itself, we’re working on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Deeper integration with JupyterLab Extension Manager&lt;/strong&gt; — deep links and “Install in JupyterLab” buttons to go from discovery to installation in one click.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expanding Trove classifiers&lt;/strong&gt; to indicate Jupyter Notebook and JupyterLite support. All three use the same extension system, with important caveats: Notebook extensions need to target different UI elements, and JupyterLite extensions cannot have a server component.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Better contribution signals&lt;/strong&gt; — surfacing commits, PRs, and issues to help users gauge how actively maintained an extension is.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;At 700 extensions, the community now shapes JupyterLab as much as the core team does. If you’re building extensions, thank you! Every one of them makes Jupyter better for someone.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="about-the-author"&gt;About the author&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.linkedin.com/in/taletskiy/"&gt;Konstantin Taletskiy&lt;/a&gt; is a Senior Software Engineer at &lt;a href="https://www.anaconda.com/"&gt;Anaconda&lt;/a&gt; working on open-source Jupyter. He is a contributor to JupyterLab, maintainer of &lt;a href="https://github.com/mamba-org/mamba-gator"&gt;mamba-gator&lt;/a&gt; and &lt;a href="https://github.com/jupyterlab/jupyterlab-latex"&gt;jupyterlab-latex&lt;/a&gt;, and the creator of the &lt;a href="https://labextensions.dev"&gt;JupyterLab Marketplace&lt;/a&gt;.&lt;/p&gt;
</content><category term="community"/><category term="extensions"/><category term="JupyterLab"/></entry></feed>