Drop an .ipynb file. It renders here, in your browser — nothing is uploaded.
Rendered in your browser. The notebook is not uploaded, stored, or logged.
Rendered in your browser. The notebook is not uploaded, stored, or logged.
Drop a notebook onto the panel, or paste its JSON. It renders immediately: markdown cells as formatted prose, code cells as source with their execution numbers, and outputs underneath each one — printed text, error tracebacks, plot images, and the HTML tables that pandas and friends emit.
Switch to results-only and the source disappears, leaving the narrative and the outputs. That is usually the version you would actually send to someone: the person waiting on the analysis wants the chart and the sentence explaining it, not forty lines of dataframe wrangling. Switching back is one click, so nothing is lost.
The rendering happens on your own machine. Your browser reads the file, this page turns it into a page, and it draws in a sandboxed frame — never sent to miinideck, never written to storage, never logged. Close the tab and there is nothing left behind, which also means there is no link yet.
A common reason to end up here is that .ipynb is a bad travelling format. GitHub renders notebooks, and so does Jupyter itself, but a notebook sent by email or dropped in a chat opens as raw JSON for anyone without the tooling — which is most recipients outside a data team. Reading it here answers the immediate question; turning it into a link is a separate, deliberate step.
Drop the file into the panel above. Your browser parses the notebook locally and draws it as a page — markdown, code, and the outputs saved inside the file — so there is nothing to install and nothing to sign into. This is worth knowing when the notebook came from someone else and you only need to read it once: installing a Python environment to read a document is a lot of setup for a single answer.
Because .ipynb is a JSON file, and anything that has not been taught otherwise shows you the JSON. That is the normal behaviour of email clients, chat previews, most file managers and plain text editors — they display the source rather than rendering it. Rendering requires something that understands the notebook format, which is what Jupyter, GitHub's viewer, and this page each do in their own way.
No. The file is read by your browser and rendered in an isolated frame on your own machine; it is not transmitted, stored, or logged. That matters more for notebooks than for most files, because they frequently carry things nobody intended to circulate — a connection string in a config cell, an API key, customer rows sitting in a dataframe preview, the name of an internal system in a file path.
Yes, with the results-only toggle. It keeps the markdown and every output — tables, printed values, plot images — and drops the source cells. This is the shape most non-technical readers want, because the question they have is what the analysis found rather than how it was computed. The toggle is only about display here; it does not modify your file.
If they were saved with the notebook, yes. Plots exported as images render as images, and the HTML tables that libraries like pandas produce render as tables. What will not appear is anything that was never saved — a notebook whose outputs were cleared before committing shows the code and prose with empty space where the results were, which is a property of the file rather than of the viewer.
Interactive widget state generally does not survive in the file, so sliders and dropdowns will not be live here. Plotting libraries differ: anything that saved itself as a static image renders, and anything that depends on a JavaScript library being loaded at view time may not. If interactivity is the point of the notebook, exporting it to a self-contained HTML file preserves far more of it than the .ipynb does.
Export it to HTML first — Jupyter, nbconvert and Colab all do this, and the result is one self-contained file that opens in any browser. Then it needs an address. miinideck turns that file into an unguessable link that stays out of search by default. Without an account the link lasts 7 days and has no password; sign in (free) to add a password or set your own expiry. That step is a real upload, so it only happens when you ask for it.
No — it opens a file you already have. Fetching a notebook from an arbitrary address would mean a server going and getting it on your behalf, which is exactly the thing this page avoids doing. For notebooks that already live in a public repository, GitHub renders them in place and nbviewer renders them from a link, and both are better suited to that than anything that could be built here.