Notebooks, read the way they were written.

Celdario opens Jupyter notebooks on your Mac the way Preview opens a PDF: instantly, offline, and without pretending to be a lab. Rendering, search, editing and export. Nothing else.

Coming soon to the Mac App Store

US$9.99, one purchase · macOS 13 or later · Apple silicon
No account. No kernel. No network.

nb = celdario.open("analysis.ipynb")
Celdario showing the demo notebook: an outline of headings and code cells in the sidebar, rendered Markdown and a table in the page
The demo notebook that ships with the app. Headings become the outline; the outline follows you as you scroll.

It never phones home.

There is no kernel to launch, no server to start, and no networking code to audit. The renderer runs inside WebKit with every remote request blocked, HTML outputs are sandboxed inside the page, and macOS sandboxes the whole app on top of that. A notebook you open in Celdario stays on your disk, full stop.

import telemetry, analytics, crash_reports
ModuleNotFoundError                       Traceback (most recent call last)
----> 1 import telemetry, analytics, crash_reports

ModuleNotFoundError: No module named 'telemetry'

Every output, rendered offline.

Markdown with math and tables. Syntax-highlighted code. stdout, stderr and ANSI-coloured tracebacks. PNG, SVG and JPEG. pandas tables and custom HTML. LaTeX, JSON and Markdown outputs. Widgets show a quiet placeholder, because nothing is running.

Big files stay quick: cells render as they scroll into view, so a 10,000-cell notebook or a 50 MB output opens in about a second.

nb.cells[14].outputs
A code cell with an ANSI-coloured Python traceback, followed by image and table outputs
Tracebacks keep their colours; images keep their resolution.

Find anything, in sources and outputs.

⌘F searches the whole notebook at once, including what a cell printed. Case, whole-word and regular-expression options sit in the bar; ⌥⌘F adds replace, per match or all at once, in cell sources only.

nb.find("sandboxed", include_outputs=True)
4 matches in 3 cells   ⌘G next · ⇧⌘G previous
The find bar open above the notebook with the current match highlighted in an output

Edit without a kernel.

Select a cell and press Return. Code and Markdown cells edit in place with a proper code editor; the raw nbformat JSON is one command away when you need to touch metadata. Every change is undoable, and Save writes a standard nbformat 4 file that is byte-stable: cells you did not touch come back exactly as they went in.

nb.cells[3].source = """# Results\nSee the table below."""
A Markdown cell being edited in place, with the editor replacing the rendered cell

Export, print, Quick Look.

Hand a notebook to someone who does not have Jupyter, or just press Space in Finder.

nb.export("report.pdf")  # or .html, .md, .py
HTMLOne self-contained file. Fonts, images and styles included.
PDFPaginated through the macOS print system, with page breaks between cells.
MarkdownImages written alongside, outputs as fenced blocks.
ScriptCode cells only, in the kernel's language.
$ qlmanage -p "analysis.ipynb"  # what Finder does when you press Space
A Finder Quick Look window showing a notebook rendered by Celdario's Quick Look extension
The same renderer, inside Finder, Spotlight and Mail.

It behaves like a Mac app, because it is one.

OutlineHeadings as a tree, code cells underneath, click to jump. Hide it with ⌃⌘S.
KeyboardJupyter command-mode keys where they make sense: A/B insert, D D delete, M/Y change type.
AppearanceLight, dark and your accent colour. Increase Contrast and Reduce Motion respected.
DocumentsAutosave, Versions, Duplicate, Rename, tabs. Open Recent remembers.
Quick LookA bundled extension previews any .ipynb in Finder.
TrustApp Sandbox, Hardened Runtime, distributed through the Mac App Store. No account, ever.

Get Celdario.

macOS 13 Ventura or later, Apple silicon. US$9.99, one purchase, no subscription.

Coming soon to the Mac App Store

US$9.99, one purchase · macOS 13 or later · Apple silicon
No account. No kernel. No network.