A minimal private browser for everyday use. No history. No memory. Every session starts fresh.
Note
Some online videos won't play. To keep the distributed binary free of proprietary-codec licensing obligations, Probe ships with the royalty-free FFmpeg build, so it cannot decode H.264/AAC — the codecs most streaming sites (YouTube, etc.) rely on. VP9/WebM/Opus content plays fine. TODO: revisit codec support (e.g. an optional user-installable proprietary FFmpeg, or documenting the trade-off more prominently).
- Ephemeral sessions — each tab runs in its own in-memory Chromium partition (
session.fromPartition('temp:tab-<id>', { cache: false })). No cookies, cache, or history ever touch disk. Storage is wiped again on quit as a second pass. - Auto-quit — the app closes itself when:
- the window loses focus (you switch to any other app)
- the system goes to sleep (lid close, sleep menu)
- 10 minutes of system-wide idle (no mouse or keyboard input)
- the window is closed normally
- Sandboxed renderers — every tab runs inside Chromium's OS-level process sandbox (
app.enableSandbox()+sandbox: trueper renderer). Web content has no access to the file system, Node.js, or raw sockets. - Free-codec media — ships with the royalty-free FFmpeg build (VP9, WebM, Opus, Ogg). Proprietary codecs (H.264, AAC) are swapped out at build time via
scripts/after-pack.jsso the distributed binary is clean for commercial use. - Tabs — open multiple tabs; each is fully isolated from the others with its own session partition.
- Minimal UI — dark theme, just a tab bar and address bar. Renders images and video natively via Chromium.
- Search — anything typed without a
.is sent to Google.
| Shortcut | Action |
|---|---|
⌘T |
New tab |
⌘W |
Close current tab |
⌘L |
Focus address bar |
⌘R |
Reload |
⌘[ |
Back |
⌘] |
Forward |
A pre-built, publicly distributable binary isn't available yet — proper distribution needs a Developer ID signature + notarization, which is on the roadmap. For now, build from source (below). It takes about a minute.
npm install
npm run build # produces dist/Probe-<version>-arm64.dmgRequires Node.js and npm. The build script automatically downloads the free-codec FFmpeg and swaps it in before signing.
To run without installing:
npm start| Layer | Mechanism |
|---|---|
| No persistent data | Each tab uses an in-memory-only session partition; nothing is written to disk |
| Session wipe on quit | session.clearStorageData() + clearCache() called on every tab before exit |
| OS process sandbox | app.enableSandbox() forces Chromium's sandbox on all renderers; individual renderers also set sandbox: true |
| Context isolation | contextIsolation: true on all windows; the preload script only exposes an explicit allowlist via contextBridge |
| Web security | webSecurity: true on all BrowserViews blocks cross-origin resource abuse |
| Codec licensing | Proprietary FFmpeg (H.264/AAC) replaced with free-codec build at build time |
MIT — see LICENSE. Electron is MIT licensed. Chromium attribution notices are compiled into the app bundle and accessible via chrome://credits.