Network

Loopback only

Non-loopback MCP bind addresses are rejected. Optional bearer authentication protects against other local processes.

Web content

Sandboxed renderers

Website views use Chromium sandboxing, context isolation, disabled Node integration, and enabled web security.

Supply chain

Verifiable builds

Every published asset and the checksum manifest receive GitHub build-provenance attestations.

Start with authority

Every connected MCP client should be treated as trusted with the visible browser session.

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

Loopback is a network boundary, not authentication.

Enforced

Only a local listener

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.

Inspect host enforcement ↗

Your decision

Authentication starts off

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

Pause rejects new commands

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

Local still needs hardening

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.

MCP Streamable HTTP security guidance ↗

Browser isolation

Remote pages stay inside hardened Chromium renderers.

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

Inspect the view settings

The tab manager creates each website view with explicit security preferences rather than relying on defaults that may change.

Website view source ↗

Implementation

Inspect permission handling

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

Compare with Electron's checklist

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

Workspaces isolate website state. They are not client authorization boundaries.

Read the complete workspace contract and storage model ↗

Release provenance

Verify the file, not just the download page.

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.

  1. 1

    Download from the public release

    Use Hronaut's latest-release redirect or the GitHub release page. Download the platform file and hashes.txt into the same directory.

    Open the latest Hronaut release →
  2. 2

    Check the SHA-256 digest

    sha256sum --check hashes.txt --ignore-missing

    On macOS, compare shasum -a 256 ./<downloaded-file> with the matching line in hashes.txt.

  3. 3

    Verify build provenance

    gh attestation verify ./<downloaded-file> --repo hronaut/hronaut

    Run the same command for hashes.txt. GitHub's verification output identifies the source repository, workflow, and commit used to produce the subject.

  4. 4

    Review before overriding a warning

    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

Primary sources, implementation, and disclosure.

Found a vulnerability? Follow the private reporting instructions in SECURITY.md. For reproducible non-sensitive defects, use GitHub Issues.

Make an informed decision

Inspect the source. Verify the release. Start with a low-risk account.

Use a dedicated workspace, enable MCP authentication where local processes are not equally trusted, and keep the pause control within reach.