Skip to content

Floofy6/prism-browser

Repository files navigation

Prism

Prism is a local Electron + React browser with a dark, Chromium-powered shell and real webviews for website access.

What is included

  • Tab strip with live favicons and per-tab loading spinners, toolbar, omnibox, bookmark bar, Prism-branded new-tab search surface, styled error + warning pages.
  • Multi-tab state with back, forward, reload/stop, home, close, new tab, and keyboard shortcuts: Cmd/Ctrl+L (omnibox), Cmd/Ctrl+T (new tab), Cmd/Ctrl+R (reload), Cmd/Ctrl+K (command palette), Cmd/Ctrl+F + Cmd/Ctrl+G (find in page), Esc (stop loading), Cmd/Ctrl+Shift+A (assistant).
  • A Cmd/Ctrl+K command palette: jump to open tabs, bookmarks, and recent history, run browser actions, summon AI agents, or route free text straight to the local AI.
  • Real website loading through Electron/Chromium <webview> tabs.
  • Prism Extension Store at prism://extensions, with a 100-entry clean-room catalog and first-batch installable MV3 packages.
  • Local Ollama agent overlay with conversation continuity, relevance-ranked private memory, summonable agent personas, approval-gated risky actions, a live context meter, and contextual entry points: one-click Summarize this page, explain selection, compare tabs, and quick-action chips — all running on-device.
  • Security pipeline for URL normalization, HTTPS upgrading, suspicious host/path detection, executable download blocking, permission denial, and non-web scheme blocking.
  • A hardened Electron host process with sandboxed webviews, disabled Node integration, denied permission prompts, blocked downloads, and blocked popup windows.
  • Fast UI response through a local React chrome layer while remote pages load in shared-cache, sandboxed Chromium webviews.

Run

npm install
npm run desktop

Prism runs on macOS, Windows, and Linux from the same codebase. npm install downloads the matching Electron binary; npm run desktop builds the renderer and launches the app.

Build a distributable

npm run dist:win   # Windows  -> release/Prism-<version>-win-x64.exe (portable)
npm run dist:mac   # macOS    -> release/Prism-<version>-mac-arm64.dmg + .zip

The artifacts land in release/. The Windows portable .exe is self-contained — copy it anywhere and double-click; it is unsigned, so the first launch shows the standard SmartScreen prompt (More info → Run anyway).

Windows note: electron-builder's winCodeSign toolchain ships macOS symlinks that Windows can only unpack from an elevated shell or with Developer Mode on. dist:win runs scripts/prepare-wincodesign.cjs first (predist:win), which stages those tools in the electron-builder cache so packaging works from an ordinary terminal — no admin required. It is a no-op once the cache is prepared and never fails the build.

The assistant

On first launch Prism opens an AI setup wizard: it detects Ollama (running / installed-but-stopped / missing), scans this machine for local models (Ollama's store, LM Studio folders, loose GGUF files — names and sizes only), can download a starter model with live progress, applies a recommended per-task model routing in one click, and captures behavior preferences plus optional custom instructions. Re-run it anytime from Settings → Run AI setup or the command palette.

  • Models. The assistant expects Ollama at http://127.0.0.1:11434 and defaults to qwen2.5:7b. Every installed model gets metadata-based guidance (fastest / quick everyday / balanced reasoning / deep synthesis), and Settings → Per-task model routing lets you pin a specific model for chat, summaries, deep multi-tab work, agent planning, and agent final answers. Models are pre-warmed (keep_alive) so first prompts skip the cold load.
  • Hardware efficiency. Prism keeps Ollama's RAM use in check: a residency governor evicts the soonest-expiring resident model before loading another whenever the total would exceed the memory budget (default: half of system RAM; override with FORM_AI_MEMORY_BUDGET_GB), and keep-alive is adaptive — 13B+ models unload after 3 minutes idle, small models after 10 (FORM_OLLAMA_KEEP_ALIVE overrides both). Settings → Privacy & data shows what's resident right now with a one-click Unload, and the assistant's reset button frees everything.
  • Agents. Summon focused agents with slash commands in the composer — /research, /summarize, /organize, /factcheck, /write — or from the palette ("Summon Researcher"). /agents lists everything. Each persona runs the same safety-gated agent loop with its own instructions, tool whitelist, step budget, and model bias; build your own in Settings → Custom agents.
  • Memory. The agent keeps a private, encrypted local memory (preferences, workflows, task notes, source facts). Memories are relevance-ranked into prompts (keyword + site + recency scoring), ephemeral kinds expire after 45 days, near-duplicates are consolidated, and the assistant panel's Memory tab offers search, edit, tidy, export, and import.
  • Token efficiency. Conversations carry a rolling on-device summary plus recent turns instead of full history, background tabs contribute metadata only (full text on demand or in deep mode), and a context meter above the composer shows the estimated prompt size against the routed model's window.
  • Safety. Risky browser actions need approval; YOLO mode skips confirmations for actions you clearly asked for, while prompt-injection guards stay on in every mode. Payment, credential, and sensitive-page steps always pause for you — Autopilot included. Page content is always fenced as untrusted data.

Privacy

AI chats, agent memory, and prompts never leave this machine. The renderer cannot make network calls at all (CSP connect-src 'none'); the main process refuses any non-loopback Ollama endpoint unless you explicitly export FORM_ALLOW_REMOTE_OLLAMA=1; chat history and agent memory rest in OS-keychain-encrypted files under the app's data directory. Settings → Privacy & data shows every local store, its encryption status, and one-click clearing. Memory Export writes plaintext JSON by design — it is a deliberate, user-initiated copy.

Verify

npm run build
npm run smoke:electron
npm run test:assistant
npm run test:onboarding
npm test          # full suite

About

Local-first Electron + React desktop browser: terminal-style UI, on-device Ollama AI assistant, Chromium webviews, hardened host.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors