Skip to main content
Guides

How to Open a .ipynb File (Without Jupyter)

By Mithun··6 min read
Quick Answer

You don't need Jupyter to open a .ipynb. Fastest: drop it into an [online notebook viewer](/tool/ipynb-viewer) — no install, nothing uploaded, renders markdown, code, and outputs. Already have tools? VS Code opens .ipynb natively, and GitHub renders any notebook you push. Have Python? JupyterLab is the full editor, or run jupyter nbconvert --to html notebook.ipynb to get a shareable HTML file. And because a notebook is just JSON, you can read the cells with a few lines of standard-library Python.

Someone sends you a .ipynb, or you find one on GitHub, and you just want to *read* it — but opening it in a text editor shows a wall of JSON, and spinning up Jupyter feels like overkill. Good news: there are several ways to open a notebook, and most need no install at all.

Here are six, ordered from zero-setup to full-toolchain, each tested so you know exactly what it gives you. Pick the one that matches what you already have.

First: a .ipynb is just JSON

Understanding this makes every method below make sense. A notebook is a plain JSON document — a list of cells, each with a type, its source, and (for code cells) any saved outputs. That's the whole format:

$ python -c "import json; d=json.load(open('report.ipynb')); print(list(d.keys()))"
['cells', 'metadata', 'nbformat', 'nbformat_minor']
# cells: 2 | types: ['markdown', 'code']
the real top-level structure (tested)

Because it's just structured text, any tool that understands the format can render it — and you can even read it yourself (Method 6). The outputs (printed text, tables, and especially images) are stored inside that JSON as data, which is why notebooks get large.

Method 1 — an online viewer (no install)

The quickest path, with nothing to install: open the free Jupyter Notebook Viewer, drop your .ipynb in, and it renders the whole notebook — formatted markdown, syntax-highlighted code, and the saved outputs (text, tables, images, and error tracebacks) — right in your browser.

It runs entirely client-side, so the file never leaves your machine — safe for proprietary or sensitive notebooks. And because it only reads the *saved* outputs, it never executes the notebook's code, so it's also safe to open a .ipynb from someone you don't know.

This is the right choice when you just need to *read* a notebook. If you're about to commit one to git, run it through the Output Cleaner first to strip the bulky outputs.

Method 2 — VS Code (opens .ipynb natively)

If you have Visual Studio Code, you already have a notebook viewer. Open the folder and click the .ipynb — VS Code renders it as a proper notebook (with the Python/Jupyter extension it also becomes fully editable and runnable). No browser, no server to start. This is the most convenient option for anyone who already lives in VS Code.

Method 3 — GitHub & nbviewer (in the browser)

GitHub renders notebooks automatically: push a .ipynb to a repo and open it on github.com, and you'll see the fully rendered notebook, outputs and all — no download needed. For a notebook that lives at a public URL, nbviewer.org renders it the same way. Both are read-only, which is exactly what you want for sharing or reviewing.

Reviewing a notebook in a pull request? GitHub's rich notebook diff is far more readable if the author stripped outputs first — the reason clearing outputs before committing is a standard habit.

Method 4 — JupyterLab (the full app, if you have Python)

If you have Python and actually want to *run* the notebook — not just read it — install Jupyter and open the real editor:

$ pip install jupyterlab
$ jupyter lab # opens in your browser
# or the lighter classic UI:
$ jupyter notebook
the classic way

This gives you the complete interactive environment: edit cells, execute them, and regenerate outputs. It's the heaviest option (a full install plus a running local server), so reach for it only when you need to *execute*, not merely view.

Method 5 — convert to HTML on the command line

If you have Jupyter installed and want a shareable file — something a non-technical colleague can just double-click — convert the notebook to a self-contained HTML page:

$ jupyter nbconvert --to html report.ipynb
# writes report.html — opens in any browser, no Python needed
nbconvert to HTML (tested, nbconvert 7.x)

One thing to expect: the HTML is large and self-contained — my two-cell test produced a 278 KB file, because nbconvert inlines all the CSS and rendering assets. That's fine for emailing a single report, but it's why you wouldn't use it to view notebooks casually — the online viewer is instant by comparison.

Method 6 — read it with standard-library Python

For automation — or if you just want the text out of a notebook — you don't need any package. Since it's JSON, the standard library reads it in a few lines:

import json
nb = json.load(open('report.ipynb'))
for cell in nb['cells']:
src = ''.join(cell['source'])
tag = 'MD' if cell['cell_type'] == 'markdown' else 'CODE'
print(f'[{tag}] {src.splitlines()[0]}')
# [MD] # Sales report
# [CODE] import pandas as pd
open_ipynb.py — stdlib only (tested)

That's the same idea every viewer uses under the hood. If what you actually want is the runnable Python pulled out into a .py file, use the Jupyter → Script converter or see the full guide on converting a notebook to a script.

Which method should you use?

You want to…Best methodInstall needed
Just read it, right nowOnline viewerNone (browser)
Open it in your editorVS CodeVS Code
Share/review onlineGitHub or nbviewerNone
Run & edit itJupyterLabPython + Jupyter
Email a static copynbconvert → HTMLJupyter
Automate / extract textstdlib PythonPython only

For the overwhelmingly common case — *"I just need to see what's in this notebook"* — the online viewer wins on speed and requires nothing. Everything else is about what you plan to do *after* opening it.

Open your .ipynb — free, no install

Drop a notebook in and read it in your browser: markdown, code, and outputs. Nothing uploaded, no Jupyter needed.

Open the Notebook Viewer

Free tools mentioned here

Related guides

Frequently asked questions

How do I open a .ipynb file without installing Jupyter?

Use an online notebook viewer — drop the .ipynb into pyobfuscate.com's free Jupyter Notebook Viewer and it renders the markdown, code, and outputs in your browser with nothing to install, and nothing uploaded. VS Code also opens .ipynb files natively, and GitHub renders any notebook you push to a repo.

What program opens an .ipynb file?

Jupyter and JupyterLab are the native apps, but you don't need them: VS Code opens .ipynb files directly, GitHub and nbviewer render them in the browser, and an online viewer opens one with no install. Under the hood a .ipynb is just a JSON file, so many tools can read it.

Can I open a Jupyter notebook in VS Code?

Yes. VS Code renders .ipynb files natively — just click the file. With the Python and Jupyter extensions installed it also becomes fully editable and runnable, so you can execute cells without leaving the editor.

How do I convert a notebook to HTML or PDF to share it?

Run jupyter nbconvert --to html notebook.ipynb to produce a self-contained HTML file anyone can open in a browser (expect a fairly large file — nbconvert inlines all assets; a small test notebook produced about 278 KB). For PDF, nbconvert --to pdf works if you have a LaTeX toolchain installed.

Is it safe to open an .ipynb from someone I don’t know?

Reading it is safe if you use a viewer that only displays the saved outputs and never executes the code — like the online viewer here, which also sandboxes any HTML output. Danger only arises if you run the notebook (in Jupyter or VS Code), because then its code executes; view first, run only if you trust it.

Keep reading