jupyter-ydoc
Document structures for collaborative editing using Ypy
What it is and what it does
jupyter_ydoc wraps pycrdt's conflict-free replicated data types (CRDTs) into document classes tailored for the Jupyter ecosystem. It provides three built-in document types: YNotebook for notebook files, YUnicode for text documents, and YBlob for binary data. Each is designed to support collaborative real-time editing where changes from multiple users merge automatically without conflicts.
The package uses an entry-point system to make documents discoverable and extensible. You can load the built-in documents directly or register your own custom document types via pyproject.toml configuration. This design allows Jupyter applications and extensions to work with collaborative documents in a pluggable way, without hard-coding specific document implementations.
Use it for:
- Enable real-time collaborative notebook editing in JupyterHub or JupyterLab with automatic conflict resolution.
- Build custom collaborative text editors for Jupyter that sync changes across multiple users without manual merging.
- Create Jupyter extensions that need to store and synchronize binary data structures across collaborative sessions.
- Implement custom document types for domain-specific Jupyter workflows by registering them via the jupyter_ydoc entry point.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides pycrdt-based collaborative data structures for Jupyter documents, including notebooks, text files, and binary blobs, enabling real-time synchronized editing.
Yes, if you are building or extending Jupyter for collaborative use. The package is actively maintained, has low installation friction, and provides a clean abstraction over CRDTs for Jupyter's document types. It is a foundational dependency for collaborative Jupyter features rather than a standalone tool, so install it only if your project explicitly needs real-time document synchronization.
Install
jupyter-ydoc on PyPI
pip
pip install jupyter-ydocuv
uv add jupyter-ydocpoetry
poetry add jupyter-ydocInstalling jupyter-ydoc
Before you install
Low friction installation with only two runtime dependencies (anyio and pycrdt). Active maintenance with a recent release 39 days ago and current repository activity.
License in practice
BSD 3-Clause License permits commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install jupyter-ydoc
from jupyter_ydoc import YNotebook, YUnicode, YBlob
notebook = YNotebook()
text_doc = YUnicode()
blob_doc = YBlob()
Requires Python 3.10 or later.
Verify before relying
- Whether these document structures integrate seamlessly with existing Jupyter server infrastructure without additional configuration.
- Performance characteristics when handling large notebooks or concurrent edits from many users.
- Whether custom document types registered via entry points work reliably in production Jupyter deployments.
Package facts
| License | BSD 3-Clause License (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — anyio, pycrdt |
| Maintenance | actively maintained — 39 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,558,567/month — #3,765 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: jupyter_ydoc-4.1.1-py3-none-any.whl
Keywords: jupyter, pycrdt, yjs
Tags
More Application Frameworks packages
FastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
textualTextual is a Python framework for building…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
mcpBuild and connect to Model Context Protocol…
permissive · top 1,000 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
jupyter-docproviderAdds real-time collaborative editing to…
permissive · top 15,000 on PyPI
jupyter-server-ydocAdds real-time collaborative editing to Jupyter…
permissive · top 5,000 on PyPI
pycrdt-storeProvides persistent storage backends for…
permissive · top 15,000 on PyPI
pycrdtpycrdt provides Python bindings for Yrs, a CRDT…
permissive · top 5,000 on PyPI
pycrdt-websocketPycrdt-websocket provides an async WebSocket…
permissive · top 5,000 on PyPI
jupyter-collaborationAdds real-time collaborative editing to…
permissive · top 15,000 on PyPI
ypy-websocketYpy-websocket is an async WebSocket connector…
permissive · top 5,000 on PyPI
jupyter-collaboration-uiAdds real-time collaboration UI elements to…
permissive · top 15,000 on PyPI
jupyter-server-documentsA JupyterLab extension that moves document…
permissive · top 15,000 on PyPI
jupytextJupytext converts Jupyter notebooks to and from…
permissive · top 5,000 on PyPI