Skip to main content

jellycell

PyPI Docs License Python

A living catalogue for reproducible analyses. Plain-text notebooks, content-addressed cell-output caching, live HTML viewer. Agent-friendly from day one.

Why jellycell

Jupyter notebooks are great for exploration and awful for everything after. They diff poorly, store outputs alongside code, make provenance opaque, and have no story for "which step produced this file?" — so analyses drift, results become unreproducible, and the notebook gets rewritten as a script anyway.

jellycell keeps the things that made notebooks useful (cell-level thinking, rich outputs, narrative + code interleaved) and fixes what made them painful:

  • Source is plain Python. Notebooks are .py files in jupytext percent format with a PEP-723 dependency header. Diffable, greppable, uv run-able. No JSON-wrapped base64.
  • Outputs are content-addressed. Every cell's output is keyed on (normalized source, declared + detected deps, lockfile-aware env hash). Re-run → cache hit. Change a cell → only that cell + its dependents re-execute. Outputs live in a sidecar cache, not in your commits.
  • Provenance is first-class. Every artifact is tagged with the cell + notebook + cache key that produced it. jc.load("artifacts/foo.json") implicitly declares the dep edge. No hand-written DAGs.
  • HTML reports are free. jellycell render produces byte-identical static HTML; jellycell view serves the same pages live with SSE-backed reload while you edit. Side-nav, artifact browser, no build step.
  • Agents drop in without onboarding. Every CLI command supports --json with a versioned schema. jellycell prompt --write drops AGENTS.md + CLAUDE.md at your repo root so Cursor, Codex, GitHub Copilot, Claude Code, Aider, and every other AGENTS.md-native tool picks up the canonical agent guide with zero config.

Install

pip install jellycell            # CLI only (no live viewer)
pip install 'jellycell[server]'  # with `jellycell view`

Requires Python ≥ 3.11.

Quickstart

jellycell init my-project
cd my-project

# (Once per repo) drop AGENTS.md + CLAUDE.md so Cursor / Codex / Copilot / Claude Code read jellycell's agent guide
jellycell prompt --write

# Scaffold a notebook
jellycell new tour
# edit notebooks/tour.py in your editor of choice

# Run it — first time executes, subsequent runs hit the cache
jellycell run notebooks/tour.py

# Build static HTML reports
jellycell render notebooks/tour.py

# Or serve the live viewer with reload on save (requires [server] extra)
jellycell view

Inside a cell, the jc.* helpers work transparently:

# %% cell-id=tour:1 name=raw
import pandas as pd
df = pd.read_csv("data/sales.csv")
jc.save(df, "artifacts/sales.parquet")

# %% cell-id=tour:2 name=summary deps=raw
df = jc.load("artifacts/sales.parquet")
summary = df.describe()
jc.table(summary)

Change tour:1 → tour:2 invalidates on the next run. Edit nothing → both hit the cache.

Full docs: https://jellycell.readthedocs.io

Composition, not reinvention

jellycell's value is the composition, not the parts. We piggyback on the best tools in the Jupyter ecosystem:

We piggyback on For
jupytext .py ↔ notebook IR
jupyter-client kernel subprocess + messaging
nbformat .ipynb round-trip
diskcache content-addressed blob store
nbconvert (output helpers) mime bundle → safe HTML
markdown-it-py + MyST plugins markdown rendering
watchfiles + sse-starlette live reload
pydantic + typer CLI + config + schemas

The bits we own are the ones that tie these together: tag vocabulary, cache key derivation, manifest format, per-cell orchestration, page shell, dep graph, agent guide. The full piggyback map is in docs/reference/architecture.md.

Is this for you?

Probably yes if:

  • You write analyses in notebooks and wish they diffed.
  • You keep rerunning a 10-minute cell to regenerate one plot.
  • You need reviewers or agents to understand what produced what.
  • You want a single project-wide HTML report, not a directory of disconnected .ipynb files.

Probably no if:

  • You want a fully-featured cloud notebook platform.
  • You need real-time collaboration / multiplayer editing.
  • Your workflow is tightly coupled to JupyterLab extensions.

Project structure

my-project/
├── jellycell.toml          # project config
├── notebooks/              # .py notebooks (jupytext percent format)
├── data/                   # inputs
├── artifacts/              # jc.save outputs
├── site/                # rendered HTML (jellycell render)
└── .jellycell/cache/       # content-addressed cache (gitignored)

Documentation

Contributing

See CONTRIBUTING.md and docs/development/. Short version: bugfix PRs are welcome and bump patch; feature PRs should open an issue first. The three §10 contracts (--json schemas, cache key algorithm, agent guide content) are deliberate ceremonies — read docs/development/releasing.md before touching them.

License

Apache-2.0. See LICENSE.

Metadata

Release files for jellycell 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jellycell 1.4.0
File Size Uploaded Provenance Actions
jellycell-1.4.0.tar.gz 1.5 MB With provenance Details for jellycell-1.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for jellycell 1.4.0
File Interpreter ABI Platform Actions
jellycell-1.4.0-py3-none-any.whl Python 3 none any Details for jellycell-1.4.0-py3-none-any.whl

Total release size: 1.6 MB

Release files / jellycell-1.4.0.tar.gz

Download URL jellycell-1.4.0.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
642019ac460df15b82fa728e2b87f4c5f21a73e3f4761f0f887f80efabd05bec
BLAKE2b-256 checksum
How to use checksums
bd17158602ebdae4eeb5e0096eb6a397130dea94203a43ffa3f163c05b3577fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 20, 2026.

Transparency log

Release files / jellycell-1.4.0-py3-none-any.whl

Download URL jellycell-1.4.0-py3-none-any.whl
Size 131.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e71b40507cef4cff0b490853cd7049b5a97b52f3dbcddb4c33d9297507aded7b
BLAKE2b-256 checksum
How to use checksums
0736daf4e37b1a1d7505a231fcea96317f3babd51a92ed38087d6b5b5393311e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 20, 2026.

Transparency log

Security for jellycell 1.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for jellycell-1.4.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page