Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Probe

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).

Features

  • 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: true per 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.js so 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.

Keyboard shortcuts

Shortcut Action
⌘T New tab
⌘W Close current tab
⌘L Focus address bar
⌘R Reload
⌘[ Back
⌘] Forward

Install (macOS, Apple Silicon)

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.

Build from source

npm install
npm run build   # produces dist/Probe-<version>-arm64.dmg

Requires 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

Security model

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

License

MIT — see LICENSE. Electron is MIT licensed. Chromium attribution notices are compiled into the app bundle and accessible via chrome://credits.

About

A minimal private browser for macOS — ephemeral sessions, auto-quit on idle/sleep, no history ever touches disk.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages