comm
Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc.
Decision gist · record as of 2026-08-14
Yes, if you are building a Jupyter kernel, widget library, or kernel extension that needs bidirectional frontend–kernel messaging. No, if you are a notebook user or building applications that only consume existing widgets—install ipywidgets or ipykernel instead, which pull in comm as a dependency. The aging maintenance status is not a blocker for a stable protocol implementation, but verify that your kernel version is compatible.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.8 or later.
- Low install friction with no runtime dependencies.
- Maintenance is aging—last release was 385 days ago and the repository shows minimal activity (12 stars), though it remains actively used by major Jupyter projects.
License · maintenance · safety
permissive license (permissive) — BSD 3-Clause License is permissive; you can use, modify, and distribute this package freely in commercial and private projects with only attribution and liability disclaimer required.
last release 2025-07-25 (385 days) · last repo commit 2025-11-24 · 12 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 80,003,770 downloads/mo, #423 on PyPI
Alternatives
Verify before relying
pip install comm
import comm
class MyCustomComm(comm.base_comm.BaseComm):
def publish_msg(self, msg_type, data=None, metadata=None, buffers=None, **keys):
pass
comm.create_comm = MyCustomComm- Whether the 385-day gap since last release indicates planned maintenance cadence or reduced active development.
- Stability guarantees or API compatibility commitments across kernel implementations (ipykernel, xeus-python, JupyterLite).
What it is and what it does
Comm is a low-level Jupyter kernel protocol implementation that establishes the communication contract between a kernel and its frontend. It provides a BaseComm class and a default CommManager for kernels to register custom communication handlers, allowing bidirectional message passing over the Jupyter messaging protocol. Kernel implementations like ipykernel and xeus-python use it to expose their messaging layer; frontend libraries like ipywidgets then consume the registered comm to send and receive messages.
The package has no runtime dependencies and is designed as a minimal, protocol-focused bridge. You either subclass BaseComm and register it as the kernel's comm factory, or you provide your own manager implementation entirely. It is typically installed as a transitive dependency of ipykernel or ipywidgets rather than directly, but can be used standalone if you are building a custom kernel or widget system.
Use it for
- Building a custom Jupyter kernel that needs to communicate with the frontend using the standard Jupyter protocol.
- Implementing a widget library that sends and receives messages between kernel and notebook frontend.
- Integrating a non-Python kernel (via xeus-python or similar) that needs a Python-side comm registration point.
- Testing or mocking Jupyter kernel communication in a controlled environment without a full IPython kernel.
- Extending ipykernel or JupyterLite with custom comm message handlers for application-specific communication.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are building a Jupyter kernel, widget library, or kernel extension that needs bidirectional frontend–kernel messaging.
No, if you are a notebook user or building applications that only consume existing widgets—install ipywidgets or ipykernel instead, which pull in comm as a dependency. The aging maintenance status is not a blocker for a stable protocol implementation, but verify that your kernel version is compatible.
Install
comm on PyPI
Before you install
Low install friction with no runtime dependencies. Maintenance is aging—last release was 385 days ago and the repository shows minimal activity (12 stars), though it remains actively used by major Jupyter projects.
Requires Python 3.8 or later.
License in practice
BSD 3-Clause License is permissive; you can use, modify, and distribute this package freely in commercial and private projects with only attribution and liability disclaimer required.
Quickstart
pip install comm
import comm
class MyCustomComm(comm.base_comm.BaseComm):
def publish_msg(self, msg_type, data=None, metadata=None, buffers=None, **keys):
pass
comm.create_comm = MyCustomComm
Verify before relying
- Whether the 385-day gap since last release indicates planned maintenance cadence or reduced active development.
- Stability guarantees or API compatibility commitments across kernel implementations (ipykernel, xeus-python, JupyterLite).
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Aging 385 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 80,003,770 / month, #423 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Framework :: JupyterLicense :: OSI Approved :: BSD LicenseProgramming Language :: PythonProgramming Language :: Python :: 3 |
Evidence: comm-0.2.3-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 › “jupyter kernel communication”
- commProvides a protocol-compliant Comm implementation for Jupyter kernels…
- jupyter-clientImplements the Jupyter protocol and provides client and kernel…
- pyviz-commsProvides bidirectional communication between Python and JavaScript in…
Give your agent the search over MCP, or paste the wish link into any chat.
Similar packages
Connects to live Jupyter Kernels over HTTP and WebSocket to execute code remotely, and provides an interactive console (REPL) for kernel interaction.
Provides Jupyter kernels that integrate Python code execution with Spyder's interactive console, enabling both interactive and file-based code execution within the Spyder IDE.
Provides the IPython kernel backend that powers interactive Python execution in Jupyter notebooks and JupyterLab environments.
Install it if you use Jupyter notebooks for interactive Python work.
Provides bidirectional communication between Python and JavaScript in Jupyter notebooks and JupyterLab, enabling HoloViz tools to send and receive messages across the kernel-frontend boundary.
Jupyter Kernel Gateway is a web server that exposes Jupyter kernels over HTTP and WebSocket, enabling remote code execution and kernel management without a notebook interface.
Provides the JavaScript frontend and communication layer that enables Jupyter widgets to function in classic Jupyter Notebook, bridging kernel-side widget objects with interactive controls in the browser.
See also jupyter · jupyter-client · ipyflow-core · ipylab