Privacy: don't take our word for it

Every privacy policy asks for trust. This page is different: it tells you exactly what happens to your files and how to verify each claim yourself, in about two minutes, with browser tools you already have.

1. Your code never has to leave your machine

After your first visit, the entire conversion engine is installed in your browser (via WebAssembly) and cached by a service worker. You can turn off your internet and run the whole flow: pick a folder, review the tree, generate and download the notebook. Zero network required.

The top bar shows it happening: caching… while the engine downloads itself in the background (~6 MB, one time; skipped on metered connections), then offline ready. After that, airplane mode is fair game.

# verify it yourself

1. Load this site and wait for offline ready in the top bar

2. DevTools (F12) → Network tab → check Offline

3. Convert a folder, download the notebook

4. Everything works. No requests leave your machine.

2. If you use the server path instead

On first use (or in browsers without WebAssembly), conversion runs on our server. Here is the complete list of what that means:

EndpointReceivesReturnsStored
POST /api/scanonly the files you checked (after client-side filtering)include/exclude decision per file, with the rule that caused itnothing
POST /api/generatethe files you checked, your selection, and the target (kaggle/colab)the notebook JSON you downloadnothing

There is no database, no file storage, and no account system, because there is nothing to attach your files to. Server logs contain counts and byte sizes only: never file names, never contents. You can watch the server's entire view of your request in the repository's api/handlers.py — it is a hundred lines.

3. Analytics

Cookieless, anonymous page counts plus four conversion-funnel events:

folder_selected
tree_previewed    { file_count, target }   // a number and "kaggle"/"colab"
notebook_generated
notebook_downloaded

No file names, no paths, no contents, no notebook names, no cookies, no cross-site tracking. That is the complete list.

4. No third parties, ever

Open DevTools → Network on any page of this site and group by domain: you will see only this site's own origin. The conversion engine and its Python runtime are served from here too — no CDN, no ads, no trackers, no font CDNs, no social widgets.

And since the whole thing is open source, the strongest verification is reading it: the engine is packages/repo2nb_core, the browser plumbing is apps/web/lib, and the service worker is apps/web/public/sw.js.

Questions

No. Your files exist only in the request body and process memory for the duration of a single conversion call. Nothing is written to disk, nothing is kept, and there is no account system because there is nothing to attach your files to.

Dependency folders (node_modules, .venv), caches, build artifacts, model checkpoints, datasets and other large binaries: plus whatever your project's .gitignore excludes. Every rule is listed on the Filters page, and each excluded file shows its reason right in the tree.

That's the point. You pick a folder from your own machine: repo2nb never sees a repo URL and has no way to reach into anything you didn't explicitly hand it.

Direct conversion is capped at 4 MB of filtered content so the tool stays fast for everyone. Datasets and model weights should be attached on Kaggle/Colab directly anyway: exclude them and let the notebook fetch or reference them.

Yes: pick the target before generating. The notebook's first cells contain step-by-step setup instructions for that platform, including how to enable GPU acceleration.