CoCalc
Collaborative cloud notebooks (Jupyter, LaTeX, SageMath) with real-time editing
Discover top open-source software, updated regularly with real-world adoption signals.

Edit Jupyter notebooks as plain text scripts for seamless version control
Jupytext converts Jupyter notebooks to .py, .md, or other script formats, enabling IDE editing, clear diffs, and paired notebook workflows for reproducible, version‑controlled data science.

Jupytext bridges the gap between interactive notebooks and traditional text‑based development. By representing notebook cells as plain‑text scripts (Python, R, Julia, Markdown, etc.), it lets data scientists keep notebooks under version control, generate meaningful diffs, and refactor code with any IDE.
The tool works as a JupyterLab extension and a command‑line utility. You can pair an .ipynb file with a .py or .md counterpart, edit the script version, then reload the notebook to restore outputs. Configuration files (jupytext.toml) enable project‑wide pairing, while the CLI supports batch conversion, synchronization, and piping through formatters like Black. Install via pip or conda in the same environment as Jupyter, restart the server, and the notebook icons appear for text files. Jupytext is language‑agnostic, supporting Julia, R, and many others, making it suitable for multi‑language documentation pipelines and CI workflows.
When teams consider Jupytext, these hosted platforms usually appear on the same shortlist.
Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.
Version‑controlled notebooks in Git
Store .py versions in Git, get clean diffs, and regenerate .ipynb outputs locally.
IDE refactoring of notebook code
Edit the .py representation in VS Code, then reload in JupyterLab to run updated cells.
Multi‑language documentation
Write notebooks in Julia or R as script files, convert to markdown for Jupyter Book.
Batch conversion for CI pipelines
Use the CLI to convert all notebooks to scripts before testing, ensuring a consistent source format.
Run `pip install jupytext` or `conda install -c conda-forge jupytext` in the same environment as Jupyter.
Outputs are stored only in the .ipynb file; text formats contain inputs. You can exclude .ipynb from VCS and regenerate outputs locally.
Right‑click the notebook and choose “Pair Notebook with percent Script”, or add `formats = "ipynb,py:percent"` to a `jupytext.toml` at the project root.
Yes, it supports Julia, R, and many other languages using the same script‑based formats.
Jupytext detects a conflict on save and prompts you to choose which version to keep, or you can use the Jupyter Collaboration extension for auto‑reload.
Project at a glance
ActiveLast synced 4 days ago