A free browser for humans, machines, and everything in between.
Browsallax is an MIT-licensed, local-first browser project with two complementary editions:
- Browsallax Desktop — Chromium/Electron with real tabs, browser permissions, Reality Ledger capture, a governed local Browser Operator, local Ollama planning, and a bounded Super Φ.Vessel / Brain Registry bridge.
- Browsallax Web — a zero-install React/PWA companion with search/launch, local workspaces, Research Mode, a persistent Free Tools Dock, and a browser-local Reality Ledger.
The goal is not to invent another rendering engine. The goal is to build transparent browser tooling around the web with stronger privacy boundaries, local intelligence, explicit authority, evidence capture, and an open ecosystem of useful tools.
Current status: Desktop
0.5.0-alpha.10; Web0.2.0-alpha.1. Both are alpha software.
Live site:
https://michaelwave369.github.io/Browsallax/
Run locally:
git clone https://github.com/MichaelWave369/Browsallax.git
cd Browsallax/web
npm install
npm run devRequires Node.js 24+.
git clone https://github.com/MichaelWave369/Browsallax.git
cd Browsallax
npm install
npm startDevelopment checks:
npm run check
npm testLive Browser Operator acceptance commands require Browsallax Desktop to be running:
npm run accept:nasa-direct
npm run accept:nasa-registry
npm run accept:registry-fail-closed| Area | Status |
|---|---|
| Web/PWA shell | Available · alpha |
| Research Mode | Working |
| Browser-local Reality Ledger | Working |
| Desktop Chromium browser | Alpha |
| Desktop selected-text Ledger capture | Working |
| Browser Operator | Experimental · live-tested |
| Local Ollama planner | Working · experimental |
| Brain Registry routed planner | Working · live-tested success + fail-closed paths |
| Governed read-only research | Working · live-tested |
| Mutation automation | Restricted · experimental |
| Governed pointer paths | Working · alpha |
| ChatGPT ↔ Domistika semantic lane | Working · live-tested |
| Domistika visual return / critic loop | Working · live-tested |
| Sensitive mutation | HELD pending per-action approval design |
| Local vision interpretation | Planned |
| Signed release/update chain | Not implemented |
- Capability is not authority.
- A webpage is data, not an instruction source.
- A model recommendation is not execution permission.
- Brain Registry hints are advisory.
- Browsallax policy enforces browser authority.
- Local Ollama inventory is execution reality for local planner routing.
- Sources survive transformations.
- Receipts record events; receipts do not grant authority.
- Local first does not mean every local process is trusted.
- Missing evidence stays missing.
In compact form:
WEBPAGE != authority
MODEL != authority
BRAIN REGISTRY != authority
PLANNER HINT != authority
RECEIPT != authority
LOCAL OPERATOR = authority source
BROWSALLAX POLICY = enforcement
HUMAN GRANT = bounded mutation authority
OLLAMA INVENTORY = execution reality
The React/PWA edition lives in web/ and is designed for instant use without installing the desktop app.
Current features include:
- React 19.3 + Vite 8.3;
- responsive Browsallax interface;
- URL/search omnibox that launches destinations in normal browser tabs;
- local workspaces and saved links;
- Research Mode with investigations, guiding questions, sources, notes, unresolved questions, export, and Reality Ledger handoff;
- persistent Free Tools Dock;
- browser-local Reality Ledger receipts;
- SHA-256 evidence digests using the Web Crypto API;
- JSON export;
- installable PWA manifest;
- offline application shell/service worker;
- no account or backend required for core use.
Browsallax Web does not pretend it can embed and control arbitrary websites. Same-origin rules, CSP, and X-Frame-Options still apply. External destinations open as normal browser tabs.
Page inspection, permission control, arbitrary-site selected-text capture, local planner execution, and governed browser automation belong in Browsallax Desktop.
Current workspaces, research sessions, and Ledger data are browser-local. JSON export exists today.
Planned hardening includes IndexedDB-backed storage, schema-versioned migrations, import/restore, and larger research-session support.
Current desktop capabilities include:
- Chromium rendering through Electron
44.3.0; - multi-tab browsing;
- address/search omnibox;
- DuckDuckGo default search/home;
- back, forward, reload, and home navigation;
- popup /
target=_blankrouting into Browsallax tabs; - persistent browser session;
- Electron sandbox enabled;
nodeIntegration: false;contextIsolation: true;- deny-by-default sensitive browser permissions;
- selected-text Reality Ledger capture;
- governed local Browser Operator;
- local Ollama planner;
- advisory Brain Registry planner routing;
- trusted Super Φ.Vessel task bridge;
- path-locked ChatGPT ↔ Domistika semantic drawing bridge with governed Sticky Draw / Polyline input.
Browsallax depends on Electron/Chromium security updates. The current pin should be kept current where compatibility allows; no signed automatic update chain is claimed yet.
The Browser Operator is a localhost-only governed automation layer.
Current runtime contracts:
| Contract | Version | Purpose |
|---|---|---|
| Browser Operator API | PV-BOP-0.3 |
localhost API and task execution |
| Planner | PV-BOP-PLAN-0.9 |
schema-constrained local planning + observed interactive target grounding + deterministic hard-ceiling termination |
| Task engine | PV-BOP-TASK-0.4 |
observe → plan → act → verify, with bounded SPA-hydration initial acceptance |
| Brain Registry router | PV-BOP-BRR-0.1 |
advisory registry routing + local inventory verification |
| Read-only research completion | PV-BOP-RRC-0.6 |
bounded read-only research + grant-gated query interaction with task-aware budget |
| Portable client | PV-BOP-CLIENT-0.2 |
local endpoint discovery/client |
| PhiOS / Super Φ.Vessel bridge | PV-BRIDGE-0.2 |
task handoff and bounded diagnostics |
| ChatGPT ↔ Browsallax bridge | PV-CBR-0.6 |
bounded semantic Vessie + Domistika connector surface |
| Domistika semantic bridge | PV-CBR-DOM-0.4 |
exact-path drawing recipes through observed controls and governed pointer input |
| Governed pointer path | PV-BOP-POINTER-0.1 |
bounded native drag / sticky / polyline input, always mutation-gated |
| ChatGPT outbound relay agent | PV-CBR-AGENT-0.4 |
outbound-only transport client for the public relay |
| ChatGPT transport relay | PV-CBR-RELAY-0.4 |
Netlify-hosted transport-only semantic queue owned by Browsallax |
| ChatGPT GitHub mailbox bridge | PV-CBR-GH-0.4 |
private-repo compatibility transport for Vessie + Domistika semantic operations |
| Trusted page bridge | PV-PAGE-0.2 |
exact-origin dedicated task lane + opt-in initial acceptance short-circuit |
observe
↓
plan
↓
classify action
↓
authority check
↓
act / hold
↓
verify
↓
finish or replan
The planner does not receive browser authority merely because it produced valid JSON.
Planner click, type, and select targets are grounded against the current observation before policy or execution. An interactive action may identify an observed element by its exact transient ref or exact observed selector; Browsallax deterministically resolves the ref to the observed selector. Invented targets and contradictory ref/selector pairs fail validation before the action can reach browser policy.
For read-only research, recognized search-results pages are treated as intermediate evidence surfaces. During the normal exploration phase, a planner cannot declare failure merely because search snippets lack the final answer when ordinary navigation links are visibly available; it must use a bounded read-only navigation step first. The planner prompt marks that requirement explicitly, and a rejected premature failure receives one policy-specific repair instruction requiring an exact observed ref or selector. Ordinary read-only tasks with an explicit max-step budget may use that budget up to a hard termination point one step before the task ceiling, capped at step 9. Tasks explicitly requesting governed ephemeral query interaction receive a larger but still bounded cap of step 15 so necessary form/query actions do not consume the entire passive-research budget before results can be observed. At the hard ceiling, the planner gets one explicit finish-only repair turn; if it still refuses to terminate, Browsallax deterministically fails the task closed rather than converting a planner control error into a structured-output failure. Page content never gains authority.
Trusted-page self-checks may opt into initial deterministic acceptance. When explicitly enabled, Browsallax polls the existing deterministic acceptance assertions for a bounded 3-second SPA-hydration window before planner dispatch. If all assertions pass, the task completes at step 0 without dispatching a planner. If the window expires, the normal planner loop begins unchanged. This is deterministic verification only; it grants no mutation authority and is disabled by default.
Read-only actions and ordinary navigation are baseline local capabilities.
Form input and ordinary remote mutation require a current human interactive grant from Browsallax chrome. The current grant lasts five minutes and can be revoked. Read-only research tasks remain unable to request form interaction unless they carry the explicit EPHEMERAL_QUERY_INTERACTION_REQUESTED task marker. That marker is a capability request only, not authority: observed non-sensitive query fields/buttons still pass through normal policy and require the current human interactive grant.
Sensitive actions remain HELD even when a broad interactive grant exists. Per-action sensitive approval is not implemented yet.
Browsallax includes an experimental local semantic connector intended to replace paid remote-browser transport for supported local workflows.
ChatGPT
↓ bounded semantic request
PV-CBR-0.6
↓
Browsallax Browser Operator
├── Super Φ.Vessel / Vessie
└── Domistika
The bridge still does not expose raw browser selectors, arbitrary navigation, shell access, filesystem access, grant creation, or sensitive-action approval.
Vessie keeps its deterministic observed composer/send path. Domistika uses PV-CBR-DOM-0.4, path-locked to https://michaelwave369.github.io/Domistika/. It exposes bounded status, observation, capabilities, capture, and drawing operations. domistika.capabilities reports the actual observed tools and symmetry values before planning. domistika.capture returns a digest-verified PNG as a bounded base64 artifact with full-viewport, observed-canvas, or clean artwork scope. The clean-art path uses Domistika's own composited canvas and excludes Studio chrome and symmetry guides. domistika.draw can capture visual evidence before Gallery save, preserve session/pass identity, and optionally return through an observed Back to Studio control after archiving. Drawing still uses PV-BOP-POINTER-0.1; mutation remains grant-gated.
Remote transport can use PV-CBR-AGENT-0.4 + PV-CBR-RELAY-0.4, or the private GitHub mailbox PV-CBR-GH-0.4. The mailbox remains claim-before-execute with no replay after an ambiguous previous claim.
See CHATGPT_BROWSALLAX_BRIDGE.md, DOMISTIKA_CHATGPT_BRIDGE.md, CHATGPT_RELAY_AGENT.md, CHATGPT_GITHUB_BRIDGE.md, and chatgpt-browsallax.openapi.yaml.
A Super Φ.Vessel Brain Registry hint may contain:
- registry/router versions;
- routing mode;
- planner role;
- approved local model pool;
- configured role model;
- recommended model;
- ordered scored candidates.
Browsallax independently compares that hint with live Ollama inventory.
Selection order is bounded:
- explicit local Browsallax operator override, when configured and installed;
- installed + registry-approved recommended model;
- installed + registry-approved candidate;
- installed + registry-approved configured role model;
- fail closed when a registry hint exists but no approved model exists locally;
- local fallback preferences only when no registry hint was supplied.
A webpage cannot choose its executor directly.
Select text on a webpage, right-click, and choose Capture selection to Reality Ledger.
Browsallax appends a JSON Lines receipt under the Electron user-data directory:
reality-ledger/web-captures.jsonl
Receipts preserve source URL, title, UTC timestamp, content digest, and explicit SOURCE_ONLY semantics.
Operator receipts are appended to:
reality-ledger/browser-operator.jsonl
Each receipt includes a sequence number, timestamp, previous hash, canonicalized data, and SHA-256 receipt hash.
The chain is tamper-evident by structure, not tamper-proof storage. A process with local filesystem access can edit or delete the file. External anchoring/signing is not currently implemented.
Browsallax treats arbitrary web content and model output as untrusted.
Implemented boundaries include:
- sandboxed web content;
- exact trusted-origin checks;
- loopback-only Browser Operator endpoint discovery;
- per-start random bearer token;
- bearer token withheld from page bridges;
- dedicated trusted-page task tabs;
- task ownership bound to origin + Electron
WebContents; - bounded trusted-page concurrency;
- nested trusted-page task prevention;
- expiring human mutation grants;
- sensitive-action hard holds;
- schema-constrained planner output;
- bounded planner repair;
- raw malformed model output withheld from public diagnostics;
- Brain Registry/local inventory intersection;
- registry-present/no-approved-local-model fail-closed behavior in contract tests.
Read the full Threat Model and Security Test Matrix.
┌──────────────────────────────────────────────────────────────┐
│ BROWSALLAX │
├────────────────────────────┬─────────────────────────────────┤
│ DESKTOP │ WEB / PWA │
│ Electron + Chromium │ React + Vite │
├────────────────────────────┼─────────────────────────────────┤
│ real tabs │ launch/search │
│ browser permissions │ local workspaces │
│ selected-text capture │ Research Mode │
│ Browser Operator │ Reality Ledger │
│ Ollama planner │ Free Tools Dock │
│ Brain Registry bridge │ offline app shell │
│ trusted page task lane │ JSON export │
├────────────────────────────┴─────────────────────────────────┤
│ Shared laws │
│ local-first · source custody · explicit authority · receipts │
└──────────────────────────────────────────────────────────────┘
| Path | Purpose |
|---|---|
src/ |
Electron desktop runtime, Browser Operator, policy, planner, bridges, and renderer |
src/operator/ |
Browser observation, policy, planner, task engine, trusted-page bridge, receipts |
src/client/ |
Portable Browser Operator client and endpoint discovery |
src/bridge/ |
PhiOS / Super Φ.Vessel bridge + bounded ChatGPT connector |
relay/ |
Browsallax-owned transport-only ChatGPT ↔ Vessie relay |
web/ |
React/Vite PWA companion |
bin/ |
local browsallax CLI entrypoint |
examples/ |
live acceptance and bridge examples |
test/ |
Node contract/unit tests |
docs/ |
architecture, threat model, roadmap, acceptance, and interaction records |
.github/workflows/ |
CI and GitHub Pages workflows |
Desktop/Operator CI currently runs:
- JavaScript syntax contract;
- Node unit/contract tests;
- React web production build in the repository CI suite.
Current tests cover trusted origins, local endpoint validation, authority grants, sensitive actions, Brain Registry routing, structured planner output, task acceptance, read-only research behavior, bridge semantics, and receipt chaining.
The remaining gaps are tracked explicitly rather than implied away in SECURITY_TEST_MATRIX.md.
Browsallax keeps observed runtime acceptance separate from unit-test claims.
- Live Acceptance 001 — first live trusted-page task completion.
- Live Interaction 001 — first documented live conversational exchange inside Browsallax.
- Live Acceptance 002 — capability/state truth regression.
- Live Acceptance 003 — successful conversational read-only web observation.
- Live Acceptance 004 — bounded NASA read-only research completion after
PV-BOP-RRC-0.1. - Live Acceptance 005A — Brain Registry routed NASA success with
REGISTRY_RECOMMENDED, local inventory verification,qwen3:4b, one-step completion, and read-only authority. - Live Acceptance 005B — adversarial registry/local-inventory disagreement fails closed at step 0 with no planner dispatch and no legacy fallback.
- Live Acceptance 005 — combined success + fail-closed acceptance for
PV-BOP-BRR-0.1.
The active roadmap now lives in docs/ROADMAP.md.
Current priorities:
- repair Super Φ.Vessel browser-intent handoff so explicit browser tasks do not depend on an unrelated provider completion before reaching Browsallax;
- continue trust/presentation hardening with real screenshots, a short demo, and release/security documentation;
- add lifecycle/security verification for token rotation, endpoint cleanup, permission denial, popup routing, and receipt-chain tamper detection.
Real screenshots and a short demo are intentionally not fabricated from mockups. They should be captured from live Browsallax Desktop/Web builds and added as a documentation milestone.
Early contributions are welcome.
Keep changes:
- small and reviewable;
- explicit about new privilege or data flow;
- accompanied by tests when they affect authority, routing, receipts, or trusted boundaries;
- honest about what was unit-tested versus live-tested.
Start with the Repository Map, Threat Model, Security Test Matrix, and Roadmap.
MIT License. See LICENSE.