Network
Loopback only
Non-loopback MCP bind addresses are rejected. Optional bearer authentication protects against other local processes.
Security & release trust
Hronaut can hold authenticated website sessions and accept powerful browser commands. This page documents what is isolated, what remains trusted, and how to verify the exact release you install.
Source and implementation review: August 28, 2026
Network
Non-loopback MCP bind addresses are rejected. Optional bearer authentication protects against other local processes.
Web content
Website views use Chromium sandboxing, context isolation, disabled Node integration, and enabled web security.
Supply chain
Every published asset and the checksum manifest receive GitHub build-provenance attestations.
Start with authority
A client can navigate, interact with pages, inspect bounded debugging data, trigger downloads, and attach a local file path it supplies. An authenticated tab can expose account data and actions. Hronaut adds visibility, pause controls, isolation, and redaction—not a data-loss-prevention boundary for an untrusted agent.
Local MCP boundary
Enforced
Hronaut defaults to 127.0.0.1 and refuses an MCP host outside loopback. Requests with an Origin header are accepted only from loopback origins, matching the MCP transport guidance against DNS rebinding.
Your decision
A new profile is intentionally easy to connect, so any process on the same computer can control it while authentication is off. Enable Require MCP authentication when local processes are not equally trusted; Hronaut creates an owner-only token file.
Review authentication behavior ↗Human control
The pause control beside MCP ready rejects new tool requests while the app, tabs, and sessions remain open. Pause before typing a password, approving MFA, or performing another sensitive manual action.
Use the safe login handoff →Protocol guidance
The Streamable HTTP specification calls for Origin validation, localhost binding, and authentication. Hronaut implements the first two and makes bearer authentication an explicit profile setting.
Browser isolation
Hronaut's website views explicitly set contextIsolation: true, nodeIntegration: false, sandbox: true, webSecurity: true, and allowRunningInsecureContent: false. Site permission requests pass through an app handler instead of Electron's permissive default.
Implementation
The tab manager creates each website view with explicit security preferences rather than relying on defaults that may change.
Website view source ↗Implementation
Hronaut asks before a site receives a permission, stores remembered decisions by exact HTTP(S) origin, and requires fresh consent for media and file-system requests.
Session permission source ↗Upstream baseline
Electron recommends disabling Node integration for remote content, enabling context isolation and sandboxing, keeping web security on, and handling session permissions.
Electron security checklist ↗Limits worth knowing
Release provenance
Initial Windows and macOS packages are not platform code-signed or Apple-notarized. SmartScreen or Gatekeeper may warn. Hronaut publishes SHA-256 hashes and GitHub artifact attestations so you can tie a downloaded file to the repository and release workflow.
Use Hronaut's latest-release redirect or the GitHub release page. Download the platform file and hashes.txt into the same directory.
sha256sum --check hashes.txt --ignore-missingOn macOS, compare shasum -a 256 ./<downloaded-file> with the matching line in hashes.txt.
gh attestation verify ./<downloaded-file> --repo hronaut/hronautRun the same command for hashes.txt. GitHub's verification output identifies the source repository, workflow, and commit used to produce the subject.
Confirm that the tag, commit, workflow, and checksum match what you intend to run. An attestation proves provenance, not that an artifact is vulnerability-free.
Audit trail
Found a vulnerability? Follow the private reporting instructions in SECURITY.md. For reproducible non-sensitive defects, use GitHub Issues.
Make an informed decision
Use a dedicated workspace, enable MCP authentication where local processes are not equally trusted, and keep the pause control within reach.