SoftGlaze Browser is a local-first Electron + React desktop app for managing local browser profiles, reusable proxies, and spreadsheet-based profile imports.
This package intentionally does not include stealth plugins, fingerprint spoofing, driver-masking, or anti-detect evasion code. It provides legitimate local profile isolation, proxy routing, and profile management.
- Electron main process
- React renderer via Vite
- Tailwind CSS v4 with Shadcn-style local UI primitives
- SQLite through Prisma ORM
- Puppeteer for launching local profile windows
- SheetJS
xlsxfor Excel/CSV parsing
- Local browser profile management with per-profile data directories
- Reusable proxy pool with health checking and background re-checks
- Spreadsheet (
.xlsx/.xls/.csv) batch import with preview-before-commit - Profile grouping, tagging, bulk operations, trash/restore
- Team members with role-based access control
- Localized interface (English and Spanish)
- Node.js 20.19.0 or newer
- npm 10 or newer
- Windows, macOS, or Linux
cd softglaze-browser
npm installnpm install runs prisma generate automatically through the postinstall script.
npm run devThe app will:
- Start the Vite renderer at
127.0.0.1:5173. - Start Electron.
- Create the SQLite database in Electron's user data directory.
- Create the local profile root folder in Electron's user data directory.
- Bootstrap missing tables/indexes automatically.
The runtime app can bootstrap the required SQLite schema automatically. For standard Prisma migration workflow, run:
cp .env.example .env
npm run prisma:migratenpm run buildBuild output is written to:
dist_installer/The app stores runtime data under Electron's userData path:
- SQLite DB:
softglaze.sqlite - Browser profile folders:
softglaze_profiles/
You can view exact resolved paths in the app under:
Settings → Local RuntimeSingle proxy fields:
host
port
username optional
password optionalBatch proxy input supports one proxy per line:
host:port:username:password
host:port
http://username:password@host:port
socks5://username:password@host:portThe batch importer supports .xlsx, .xls, and .csv files.
Expected behavior:
- Scans for the header row starting around row 4.
- Detects profile title/name columns.
- Maps proxy methods:
Customor2→ profile proxySystemor1→ system proxyDirect,None, or0→ direct connection
- Supports combined proxy cells such as:
Proxy Host:Proxy Port:Proxy Account:Proxy PasswordImport flow:
- Open
Batch Import. - Click
Open File Picker. - Review parsed rows in the preview table.
- Click
Commit Importonly after the preview is correct.
When launching a profile, Puppeteer opens Chromium with:
- Dedicated
userDataDirper profile. - Optional proxy server argument.
- Optional proxy authentication through
page.authenticate. - Standard window size of
1280x720.
No manual user-agent override is applied.
- Renderer has no direct Node.js access.
contextIsolationis enabled.nodeIntegrationis disabled.- The preload exposes only narrow
window.softglazeAPIs. - External navigation is blocked from replacing the app UI and is opened through the OS browser instead.
- Renderer permissions are denied by default.
Installing Puppeteer downloads a compatible Chrome for Testing browser binary by default. This can be a large download. To use a system Chrome/Chromium instead, configure Puppeteer environment variables and pass an executable path in the backend before packaging.