# comm

> Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc.

- **URL**: https://www.freshcrate.ai/projects/comm
- **Author**: Jupyter contributors
- **Category**: Frameworks
- **Latest version**: `0.2.3` (2026-04-21)
- **License**: non-standard
- **Source**: https://github.com/ipython/comm
- **Homepage**: https://pypi.org/project/comm/
- **Language**: Python
- **GitHub**: 12 stars, 17 forks
- **Registry**: pypi (`comm`)
- **Tags**: `ipykernel`, `jupyter`, `pypi`, `xeus-python`

## Description

# Comm

It provides a way to register a Kernel Comm implementation, as per the Jupyter kernel protocol.
It also provides a base Comm implementation and a default CommManager that can be used.

## Register a comm implementation in the kernel:

### Case 1: Using the default CommManager and the BaseComm implementations

We provide default implementations for usage in IPython:

```python
import comm


class MyCustomComm(comm.base_comm.BaseComm):
    def publish_msg(self, msg_type, data=None, metadata=None, buffers=None, **keys):
        # TODO implement the logic for sending comm messages through the iopub channel
        pass


comm.create_comm = MyCustomComm
```

This is typically what ipykernel and JupyterLite's pyolite kernel will do.

### Case 2: Providing your own comm manager creation implementation

```python
import comm

comm.create_comm = custom_create_comm
comm.get_comm_manager = custom_comm_manager_getter
```

This is typically what xeus-python does (it has its own manager implementation using xeus's C++ messaging logic).

## Comm users

Libraries like ipywidgets can then use the comms implementation that has been registered by the kernel:

```python
from comm import create_comm, get_comm_manager

# Create a comm
comm_manager = get_comm_manager()
comm = create_comm()

comm_manager.register_comm(comm)
```

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `0.2.3` | 2026-04-21 | Low | Imported from PyPI (0.2.3) |
| `v0.2.3` | 2025-07-25 | Low | ## 0.2.3  ([Full Changelog](https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90))  ### Merged PRs  - Remove `traitlets` dependency [#32](https://github.com/ipython/comm/pull/32) ([@davidbrochart](https://github.com/davidbrochart)) - Add Security.md file. [#29](https://github.com/ipython/comm/pull/29) ([@Carreau](https://github.com/Carreau)) - pre-commit updates and fixes [#28](https://github.com/ipython/comm/pull/28) ([@Carreau](https://github.com/Carreau) |
| `v0.2.3` | 2025-07-25 | Low | ## 0.2.3  ([Full Changelog](https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90))  ### Merged PRs  - Remove `traitlets` dependency [#32](https://github.com/ipython/comm/pull/32) ([@davidbrochart](https://github.com/davidbrochart)) - Add Security.md file. [#29](https://github.com/ipython/comm/pull/29) ([@Carreau](https://github.com/Carreau)) - pre-commit updates and fixes [#28](https://github.com/ipython/comm/pull/28) ([@Carreau](https://github.com/Carreau) |
| `v0.2.3` | 2025-07-25 | Low | ## 0.2.3  ([Full Changelog](https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90))  ### Merged PRs  - Remove `traitlets` dependency [#32](https://github.com/ipython/comm/pull/32) ([@davidbrochart](https://github.com/davidbrochart)) - Add Security.md file. [#29](https://github.com/ipython/comm/pull/29) ([@Carreau](https://github.com/Carreau)) - pre-commit updates and fixes [#28](https://github.com/ipython/comm/pull/28) ([@Carreau](https://github.com/Carreau) |
| `v0.2.3` | 2025-07-25 | Low | ## 0.2.3  ([Full Changelog](https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90))  ### Merged PRs  - Remove `traitlets` dependency [#32](https://github.com/ipython/comm/pull/32) ([@davidbrochart](https://github.com/davidbrochart)) - Add Security.md file. [#29](https://github.com/ipython/comm/pull/29) ([@Carreau](https://github.com/Carreau)) - pre-commit updates and fixes [#28](https://github.com/ipython/comm/pull/28) ([@Carreau](https://github.com/Carreau) |
| `v0.2.3` | 2025-07-25 | Low | ## 0.2.3  ([Full Changelog](https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90))  ### Merged PRs  - Remove `traitlets` dependency [#32](https://github.com/ipython/comm/pull/32) ([@davidbrochart](https://github.com/davidbrochart)) - Add Security.md file. [#29](https://github.com/ipython/comm/pull/29) ([@Carreau](https://github.com/Carreau)) - pre-commit updates and fixes [#28](https://github.com/ipython/comm/pull/28) ([@Carreau](https://github.com/Carreau) |
| `v0.2.3` | 2025-07-25 | Low | ## 0.2.3  ([Full Changelog](https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90))  ### Merged PRs  - Remove `traitlets` dependency [#32](https://github.com/ipython/comm/pull/32) ([@davidbrochart](https://github.com/davidbrochart)) - Add Security.md file. [#29](https://github.com/ipython/comm/pull/29) ([@Carreau](https://github.com/Carreau)) - pre-commit updates and fixes [#28](https://github.com/ipython/comm/pull/28) ([@Carreau](https://github.com/Carreau) |
| `v0.2.3` | 2025-07-25 | Low | ## 0.2.3  ([Full Changelog](https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90))  ### Merged PRs  - Remove `traitlets` dependency [#32](https://github.com/ipython/comm/pull/32) ([@davidbrochart](https://github.com/davidbrochart)) - Add Security.md file. [#29](https://github.com/ipython/comm/pull/29) ([@Carreau](https://github.com/Carreau)) - pre-commit updates and fixes [#28](https://github.com/ipython/comm/pull/28) ([@Carreau](https://github.com/Carreau) |
| `v0.2.3` | 2025-07-25 | Low | ## 0.2.3  ([Full Changelog](https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90))  ### Merged PRs  - Remove `traitlets` dependency [#32](https://github.com/ipython/comm/pull/32) ([@davidbrochart](https://github.com/davidbrochart)) - Add Security.md file. [#29](https://github.com/ipython/comm/pull/29) ([@Carreau](https://github.com/Carreau)) - pre-commit updates and fixes [#28](https://github.com/ipython/comm/pull/28) ([@Carreau](https://github.com/Carreau) |
| `v0.2.3` | 2025-07-25 | Low | ## 0.2.3  ([Full Changelog](https://github.com/ipython/comm/compare/v0.2.2...ec3eb438c07314b47c057c1cc3ce5fe43c294e90))  ### Merged PRs  - Remove `traitlets` dependency [#32](https://github.com/ipython/comm/pull/32) ([@davidbrochart](https://github.com/davidbrochart)) - Add Security.md file. [#29](https://github.com/ipython/comm/pull/29) ([@Carreau](https://github.com/Carreau)) - pre-commit updates and fixes [#28](https://github.com/ipython/comm/pull/28) ([@Carreau](https://github.com/Carreau) |

## Citation

- HTML: https://www.freshcrate.ai/projects/comm
- Markdown: https://www.freshcrate.ai/projects/comm.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/comm/deps

_Generated by freshcrate.ai. Indexes pypi releases for AI-agent ecosystem packages._
