Hermes Browser Extension v0.2.0 — Hermes Assist
Released July 21, 2026 · 26 commits since v0.1.11
Hermes now meets you where you write. v0.2.0 introduces Hermes Assist across the web, then hardens the model, context, session, connection, packaging, and full-view systems underneath it.
Hermes Browser Extension v0.2.0 is the first release built around Hermes Assist: a compact, site-aware drafting surface that appears beside supported text composers and routes every model-backed action through the connected Hermes Agent.
The release also includes every change shipped to main after v0.1.11 and the complete v0.2.0 release-candidate worktree: restored model discovery, stronger session continuity, real task progress, Browser Context Protocol v2, safer inline insertion, cleaner transcripts and copying, exact target packaging, and a substantial connection/runtime hardening pass.
No Hermes Agent repository changes are required for this release. Hermes Assist capability-gates exact model locking and falls back transparently to the connected gateway's default model when that contract is unavailable.
✨ Highlights
Hermes Assist across 31 writing environments
Hermes Assist recognizes GitHub, X, YouTube, Reddit, Facebook, ChatGPT, Grok, Claude, Perplexity, Gmail, Google Calendar, Google Chat, Proton Mail, LinkedIn, Slack, Discord, Microsoft Teams, Outlook, GitLab, Stack Overflow, Linear, Jira/Confluence, Notion, Google Docs, Threads, Bluesky, Mastodon, Substack, Medium, WhatsApp, and Telegram.
- Site- and composer-aware primary actions such as Draft a reply, Draft a post, and Draft a message.
- Useful surface-specific secondary actions without turning the panel into a generic command dump.
- Explicit routing to the current Hermes session, a new Assist session, or a background session.
- Review-first results: Hermes never sends, posts, submits, navigates, purchases, or otherwise operates the host page.
- Safe plain-text fields can apply a reviewed draft after an explicit user action.
- Framework-owned and higher-risk structured editors default to preview/copy.
- Exact apply/undo binding prevents a stale result from replacing a field that changed while Hermes was working.
- Duplicate request IDs cannot apply the same draft twice.
- Keyboard and pointer containment prevent host-page shortcuts from reacting while the Assist panel is open.
- Obstacle-aware launcher placement keeps Hermes Assist clear of native composer controls.
- Canonical themed scrollbars, Light/Dark parity, and a compact on-brand settings surface.
Site-aware context with private-surface defaults
- Per-site context controls and conservative defaults for private work, messaging, email, document, and AI-chat surfaces.
- Private-site context remains empty until explicitly enabled.
- Gmail thread capture is ask-first, visibility-filtered, bounded, and excludes field values.
- X status capture targets the source post instead of the empty reply form; broad-feed capture remains suppressed.
- Browser text, adapter metadata, page URLs, and selected elements are bounded and redacted before transport.
- Secret-shaped drafts, sensitive fields, disabled controls, read-only fields, credentialed URLs, malformed URLs, and unsupported schemes fail closed.
Exact model choice with transparent fallback
- The Hermes Assist model selector is restored and remains available in Settings.
- Gateways that advertise session chat plus per-session model locking receive the exact selected provider/model and must acknowledge it.
- A provider/model mismatch is rejected rather than silently running the wrong model.
- Released gateways without exact session routing receive no unsupported override fields and use the gateway default model instead.
- The result tells the user when fallback occurred and which routing path was used.
- Reasoning controls preserve all seven levels: Minimal, Low, Medium, High, Extra High, Max, and Ultra.
Live provider catalogs and corrected context windows
- Per-gateway model discovery remains the primary source for each connected user.
- Canonical Hermes/Nous catalog enrichment fills authenticated provider gaps without replacing the user's gateway list.
- Kimi K3, Laguna S 2.1, and Laguna XS 2.1 now appear when available.
- Cached catalogs remain isolated by gateway and profile and survive a temporary public-catalog failure.
- Provider-qualified identities are preserved across aliases and malformed catalog rows are discarded.
- GPT-5.6 context metadata is provider-correct: OpenAI Codex OAuth variants show 272k, direct OpenAI variants retain 1.05M, and explicit runtime/catalog telemetry remains authoritative.
Browser Context Protocol v2
- New typed
hermes.browser.turn.v2envelopes separate the user's instruction, browser data, and attachments. - Context is bound to owner, conversation, session, and turn identity.
- Deterministic source and serialized budgets apply before transport.
- Attachment-only turns use explicit placeholders while image data stays outside the JSON envelope.
- Final redaction fails closed on cycles, unsupported values, secret-shaped content, and credential-bearing URLs.
- Unchanged browser context can use bounded hash references before a fresh full snapshot is required.
- The v1 prompt compatibility path and visible “What Hermes saw” receipts remain available.
Companion plugin isolation and local text tools
- Owner/session/turn-scoped context storage with TTL, size limits, bounded retention, and consume-on-read isolation.
- Durable session identity no longer leaks context across conversations or reconnects.
- Added deterministic, standard-library text utilities that require no model call: formatting cleanup, bullet conversion, text statistics, and bounded diffs.
- The optional companion remains read-only and supplemental: no browser control, network calls, or required dependency for normal extension use.
Real task progress in the side panel and Hermes Web
- Hermes
todotool events now render as a live task stack on both Browser surfaces. - Task order, one active item, completed/pending/cancelled states, and progress percentage are normalized consistently.
- Task state is isolated per Hermes session, bounded, and available in compact or expanded form.
Cleaner copying, transcripts, and completion
- Copying part of a Hermes answer preserves semantic text, links, code, tables, and ordered-list numbering while stripping extension-only presentation markup.
- Internal context wrappers no longer leak into visible transcripts.
- Restored session history is preserved instead of being replaced by partial runtime data.
- Only the local transcript cache is bounded; canonical gateway history remains intact.
- Accepted sends to shared sessions are confirmed before local state advances.
- Accepted stream failures recover from canonical history instead of replaying the turn.
assistant.completed,run.completed, and idle terminal events stop the busy state immediately, fixing the lingering Stop button when an HTTP stream stays open.- Final assistant media wins over raw deltas while generated-image runs remain active until media settles.
Connection and session reliability
- Local, Hermes Cloud, and Remote readiness now share one staged controller: settings, gateway, capabilities, models, selected model, skills, profiles, sessions, and durable session binding.
- The startup gate cannot report ready until the required binding succeeds.
- Ticket transports remain Chat-only and skip unsupported REST-only surfaces explicitly.
- Automatic API pairing is loopback-only; remote API connections require an explicit endpoint and token.
- Non-loopback agent discovery is permanently credential-free, even when a probed service identifies itself as Hermes.
- Remote dashboard conversations preserve their durable session identity across WebSocket replacement and resume through the fresh live connection.
- Closed dashboard sockets surface a reconnecting state rather than a false ready state.
Side-panel and Hermes Web hardening since v0.1.11
- Chrome 141+ requires a real
sidePanel.onOpenedconfirmation, preventing Arc's hidden side-panel contexts from suppressing the fallback. - Silent side-panel failures reuse one extension-tab fallback instead of spawning duplicate tabs.
- Failed tab-scoped panel opens receive one window-scoped retry.
- Firefox keeps its sidebar path and popup fallback.
- Startup/loading states, runtime controls, empty states, diagnostics, and connection feedback received a full polish pass.
- Hermes Web model discovery fallbacks and full-tab runtime contracts were restored and hardened.
- Full-tab handoff preserves safe session/browser-tab identity while fresh Hermes Web sessions carry no stale Browser identity.
- Update status now distinguishes exact loaded-source state instead of loosely reporting “current.”
- Ordered lists, session restoration, transcript continuity, provider switching, rich media, artifacts, skills, thinking indicators, and the Cyberpunk globe/visual tour were corrected or refined.
Release packaging and integrity
- Source, package, Chromium manifest, Firefox manifest, lockfile, and companion-plugin versions are checked together.
- Chromium and Firefox builds are produced as isolated target trees.
- Packaging creates versioned target-specific archives,
SHA256SUMS-v0.2.0.txt, and a machine-readable release manifest. - Build hashing passes source content through Git filters so generated metadata tracks the real packaged source.
- Release-only ads, notes, and campaign artifacts remain outside the public source tree.
Security and privacy
v0.2.0 keeps Hermes Browser review-first and read-only by default.
- No debugger, native-messaging, cookie, history, bookmark, checkout, navigation, or autonomous browser-control permissions.
- Inline apply is explicit, scoped to supported reviewed fields, compare-and-swap protected, and never submits.
- Cloud/dashboard tickets remain short-lived, single-use, memory-only, HTTPS-only, and bound to the exact active signed-in tab and origin.
- Gateway, dashboard, catalog, and resource fetch boundaries reject redirects.
- Stored bearer credentials are never released during non-loopback discovery.
- Browser context stays bounded, redacted, labeled as untrusted, and visible to the user before it is sent.
Contributors
Thank you to the people whose reports and contributions appear in the complete post-v0.1.11 repository history:
- @mr-magaia — durable remote-dashboard session identity and reconnect continuity from #35, integrated and hardened for v0.2.0.
- @chinnsenn — Arc compatibility report in #37.
- Public contributor-ledger updates completed after v0.1.11 for @barteqpl, @bradlishman, @Doom-pixel-alt, and @HuntIntegrativeSolutions. These ledger-only commits document work already released in v0.1.11; they are not new v0.2.0 feature credits.
Install / update
- Download and extract the Chromium release archive.
- Open
chrome://extensionsoredge://extensions. - Enable Developer mode.
- Choose Load unpacked and select the extracted
dist/folder. - If updating an existing unpacked copy, choose the new folder and click Reload on the extension card.
Firefox users can load the preview package through about:debugging → This Firefox → Load Temporary Add-on.
Compatibility
- Primary: Chrome / Edge / Chromium 114+.
- Best effort: Brave, Comet, Arc, Opera, and Chromium forks with the required Side Panel APIs.
- Preview: Firefox package.
- Not shipped: Safari.
- Hermes connection: Local gateway, trusted Hermes Cloud tab, or explicit Remote gateway.
- Hermes Web full view: token-backed Local/Remote API connections; Cloud and ticketed dashboard transports remain Chat-only in the side panel.
- Hermes Assist model routing: exact session lock when advertised; transparent gateway-default fallback otherwise.
- No Hermes Agent source changes are required by the extension release.
Verification
npm test: 567/567 passed.npm run lint: 0 errors, 10 warnings.- JavaScript/content-runtime syntax checks: passed.
- Manifest validation: Hermes Browser Extension 0.2.0.
- Chromium build: passed.
- Firefox preview build: passed.
- Loaded-extension E2E: PASS, exercising 69 gateway requests plus Hermes Assist routing, safe apply/undo, X framework-owned insertion, provider switching, task stacks, accessibility, reduced motion, and GPT-5.6 context rows.
- Versioned Chromium/Firefox archives, release manifest, and SHA-256 checksum file: generated successfully.
Complete pushed change coverage after v0.1.11
The release includes all 26 commits currently on main after the v0.1.11 tag:
0e798d3— add shipped contributors ledger81e0da3— credit Opera sidebar supported87413— credit the scoped element picker8ed7735— credit security hardeningfcb1ffe— credit URL privacy hardening2e8749c— preserve remote dashboard sessions across reconnects5f73040— fall back when the side panel silently fails7de9706— credit the Arc compatibility report477d01e— reuse silent side-panel fallback tabs312e85e— keep release-only artifacts out of sourceba8372a— try a hidden Arc side-panel-context bypass; later reverted653ad3e— revert that bypass to preserve the toolbar user gesture0b577e5— confirm visible side-panel opens71dcf68— polish the Hermes Browser loading experiencedd00816— improve the Cyberpunk globe and refresh the visual tourb4c6faf— preserve restored session history80d89e4— bound only the local transcript cache93af516— hide internal context wrappers in transcripts11d4dd4— preserve ordered-list numberingfd28705— confirm sends to shared sessionsbb38cac— polish Browser startup and runtime controls5a54557— make Browser update status exact866f1a3— hash build sources through Git filtersb6125eb— harden full-tab runtime contractsf196da1— restore Hermes Web model discovery fallbackse6298e3— release Hermes Browser Extension v0.2.0
ba8372a and 653ad3e are an experiment/revert pair, not two cumulative features. The final shipped Arc/Chromium opening path is the visible-open confirmation in 0b577e5.
Full comparison: v0.1.11...v0.2.0
Links
- Repository: https://github.com/abundantbeing/hermes-browser-extension
- Changelog: https://github.com/abundantbeing/hermes-browser-extension/blob/main/CHANGELOG.md
- Security: https://github.com/abundantbeing/hermes-browser-extension/blob/main/SECURITY.md
- Privacy: https://github.com/abundantbeing/hermes-browser-extension/blob/main/PRIVACY.md
