Skip to content

Tags: NousResearch/hermes-agent

Tags

v2026.6.19

Toggle v2026.6.19's commit message

Verified

This tag was signed with the committer’s verified signature.
teknium1 Teknium
Hermes Agent v0.17.0 (2026.6.19)

The Reach Release — iMessage via Photon, Raft channel, async subagents, image editing, Cursor Composer via xAI Grok, dashboard profile builder, memory tool upgrade, WhatsApp Business Cloud, rich Telegram, curator cost optimization.

backup/precopystrip-20260616-2058

Toggle backup/precopystrip-20260616-2058's commit message
Merge remote-tracking branch 'origin/main' into feat/opentui-native-e…

…ngine

backup/opentui-prestrip-20260616-1950

Toggle backup/opentui-prestrip-20260616-1950's commit message
refactor(tui): fetch tree-sitter grammars at runtime instead of vendo…

…ring

The OpenTUI engine vendored 10 tree-sitter grammars (.wasm + .scm) under
ui-opentui/parsers/ — ~37k checked-in binary lines, the single biggest
addition in the engine diff. opencode (the production reference) vendors
none: it declares grammars as remote URLs and lets OpenTUI fetch + cache
them. OpenTUI supports this natively via TreeSitterClient's dataPath cache.

Migrate to that model:
- parsers.manifest.json (now under src/boundary/) becomes the URL source of
  truth: each grammar is { filetype, aliases, wasm: <release URL>,
  highlights: <.scm URL> }. Grammar versions stay pinned (same release tags);
  .scm sources follow opencode's per-language choices (parser-repo queries
  for python/html where nvim-treesitter's are parser-incompatible).
- parsers.ts: registerVendoredParsers -> registerRemoteParsers. It points the
  global tree-sitter client's cache at HERMES_TUI_PARSER_CACHE via setDataPath
  BEFORE the client initializes, then addDefaultParsers() with the URL configs.
  Registration does zero network; the fetch is lazy on first use of a language
  and degrades to plain text (never throws) when GitHub is unreachable.
- hermes_cli/main.py sets HERMES_TUI_PARSER_CACHE to
  ~/.hermes/cache/opentui-parsers/ (profile-aware via get_hermes_home).
- git rm -r ui-opentui/parsers/ and drop scripts/update-parsers.mjs.
- parsers.test.tsx asserts URL configs are well-formed + cache-dir behavior
  instead of vendored-file existence.

Verified end-to-end on Node 26.3: type-check + lint clean, full ui-opentui
suite (821 tests) green, and a built smoke proves first-use fetch -> cache ->
10 real highlights, cache-hit on rerun, and graceful plain-text degrade when
the grammar URLs are unreachable.

v2026.6.5

Toggle v2026.6.5's commit message

Verified

This tag was signed with the committer’s verified signature.
teknium1 Teknium
Hermes Agent v0.16.0 (2026.6.5)

The Surface Release — native desktop app, browser admin panel, remote-gateway
connect, Simplified Chinese desktop UI, leaner default skill set, NVIDIA/skills
trusted tap, fuzzy model picker, /undo.

v2026.5.29.2

Toggle v2026.5.29.2's commit message
Hermes Agent v0.15.2 (2026.5.29.2)

Weekly release

v2026.5.29

Toggle v2026.5.29's commit message

Verified

This tag was signed with the committer’s verified signature.
teknium1 Teknium
Hermes Agent v0.15.1 (2026.5.29)

Same-day hotfix for v0.15.0. Headline: dashboard infinite-reload loop in loopback mode (Docker / hosted Hermes / fresh installs). Plus kanban worker SIGTERM, /model picker unification, /yolo session bypass, skills.sh full catalog, .md media delivery restore, gateway probe-stepdown safety, web URL redaction passthrough, kanban worker vision on referenced images, hindsight observation-default. Docker hardening: --insecure explicit env opt-in, MCP bare-command PATH resolution, arm64 cache fix.

28 commits, 21 PRs, 9 contributors since v0.15.0.

clean-before-remerge

Toggle clean-before-remerge's commit message
Pluginify provider/platform/terminal backends

Move provider adapters (anthropic, bedrock, azure), platform adapters
(telegram, slack, discord, feishu, dingtalk, matrix), and terminal backends
(modal, daytona) out of core into plugins/ workspace members. Core references
them via the plugin registries (get_provider_namespace / get_provider_service /
get_tool_provider / get_credential_pool_hook) instead of direct imports.

- Provider/platform/terminal adapters relocated under plugins/; pyproject
  extras reference workspace members; nix variants aggregate per-platform extras.
- Anthropic credential discovery + OAuth-masquerade guard live in the plugin's
  credential_pool_hook; browser-open guarded by _can_open_graphical_browser.
- Vercel AI Gateway + Vercel Sandbox removed (upstream deletion); get_bedrock_model_ids
  removed (replaced by bedrock_model_ids_or_none + discover_bedrock_models).
- Terminal backends resolve ModalEnvironment / DaytonaEnvironment lazily from
  the plugin registry.
- uv.lock regenerated against the pluginified workspace.

Plugin test suites updated for the relocation: imports point at
hermes_agent_<plat>.adapter, caplog logger-name filters and monkeypatch targets
use the new module paths, and credential/rollback tests patch
registries.get_provider_service rather than the removed agent.*_adapter modules.

Verified: zero dead imports of relocated modules in core (import smoke test +
rename-map grep); nix develop succeeds; targeted plugin suites green
(bedrock, anthropic-auxiliary, matrix, dingtalk, feishu, credential_pool,
switch_model_rollback). Remaining full-suite failures are pre-existing on the
pre-merge tree (telegram setUpModule __code__) or environmental (voice/media/
PTY/network-dependent), not introduced here.

v2026.5.28

Toggle v2026.5.28's commit message

Verified

This tag was signed with the committer’s verified signature.
teknium1 Teknium
Hermes Agent v0.15.0 (2026.5.28)

The Velocity Release. run_agent.py 16k→3.8k LOC refactor, kanban grows into
a multi-agent platform (104 PRs), cold-start perf wave continues, session_search
4500x faster, promptware defense, Bitwarden Secrets Manager, Krea + FAL plugin,
Nous-approved MCP catalog, OpenHands skill, ntfy as 23rd platform, deep xAI round.
15 P0 + 65 P1 closures. 747 PRs, 1302 commits, 321 contributors.

premerge-oh-god

Toggle premerge-oh-god's commit message
wipppppppppppppppppppppppppppppppp

merge-commit-backup

Toggle merge-commit-backup's commit message
Merge origin/main into ethie/oh-god (pluginify refactor reconciliation)

Reconciles the "pluginify everything" refactor (moving provider adapters,
platform adapters, and terminal backends out of core into plugins/) with
267 commits of main. main had 515 edits across 635 files; our branch moved
98 files into plugins/. The dangerous class was main editing files at OLD
paths that we relocated — handled below.

STRUCTURAL DECISIONS
- ai-gateway + vercel_sandbox: honored main's PR #33067 deletion. Dropped our
  orphaned plugins/terminals/vercel/ dir and all 3 stale vercel refs that
  survived in pyproject (workspace member, [all] entry, uv source).
- tools/lazy_deps.py: kept main's version. Our branch deleted it incompletely
  (WIP) while main has 30 live callers + active maintenance. main's intent won.
- agent/agent_runtime_helpers.py: COMBINED — main's atomic swap+rollback
  snapshot envelope wraps our pluginified registries-based anthropic imports.
- agent/credential_pool.py: took our plugin-hook indirection AND ported main's
  api_key_path_explicit OAuth-masquerade security fix INTO the anthropic
  credential_pool_hook (it was pluginified from a pre-fix base and would have
  been silently dropped otherwise).
- hermes_cli/model_switch.py, hermes_cli/models.py: took main's logic
  (cached_provider_model_ids, AI-gateway removal) then re-applied our pluginify
  import rewrites (agent.bedrock_adapter/anthropic_adapter -> registries
  namespace lookups) since those modules moved to plugins.
- tools/terminal_tool.py: took main's version (vercel_sandbox deletion) then
  restored our lazy registry resolution for modal + daytona environments
  (both moved to plugins; main's direct imports would crash at runtime).
- nix/checks.nix: kept both — our hermetic-boundary checks + main's
  messaging-variant discord.py guard.
- pyproject.toml: plugin extras as workspace members (ours) + main's new wecom
  extra; vercel removed throughout.
- uv.lock: regenerated with `uv lock` (not hand-merged); 233 packages.

VERIFICATION
- Zero conflict markers anywhere.
- Exhaustive 17-moved-module grep: no dead imports of relocated modules in core.
- Import smoke test: all hot core modules import clean.
- Targeted tests (21 files incl. credential_pool, anthropic plugin,
  run_agent, project_metadata): pass.
- 3 credential_pool security tests rewired to register the real plugin hook
  (core tests don't trigger plugin discovery): pass.
- Full suite: remaining failures are pre-existing on premerge-oh-god (telegram
  collection error: setUpModule MagicMock __code__) or environmental (matrix
  DNS/e2ee-deps, network) — NOT introduced by this merge. See PR notes.