██ ██ ███████ ██████ ███ ███ ███████ ███████
██ ██ ██ ██ ██ ████ ████ ██ ██
███████ █████ ██████ ██ ████ ██ █████ ███████
██ ██ ██ ██ ██ ██ ██ ██ ██ ██
██ ██ ███████ ██ ██ ██ ██ ███████ ███████
A G E N T U L T R A
Rust-first autonomous agent runtime with functional parity goals against NousResearch/hermes-agent, plus an Ultra reliability, security, and operator-control layer.
Current release baseline: v0.21.3.
As of v0.21.3, the tracked upstream parity backlog is closed in the local
governance artifacts: upstream queue pending is 0, shared-diff pending
classification/review is 0 / 0, coverage critical gaps are 0, and SOTA
harness critical gaps are 0. Future upstream changes can create new drift;
the scheduled parity audit and release-readiness summary are the public guard.
Fast confidence check against published artifacts:
bash scripts/smoke-release-artifact.sh --version v0.21.3Repo-local CI is the authoritative gate for development and release confidence. GitHub Actions are a hosted mirror of the repo contract when they run; they are not required as the source of truth.
CARGO_TARGET_DIR=${CARGO_TARGET_DIR:-target} bash scripts/run-repo-ci.shSee docs/demo.md for the one-command demo/readiness path.
- Fully Rust-native core runtime (agent loop, tools, gateway, skills, CLI/TUI)
- Multi-provider inference routing and OAuth-capable provider flows
- First-class local/self-host backends: Ollama, llama.cpp/llamafile, vLLM, MLX, Apple ANE endpoint, SGLang, TGI, LM Studio, LMDeploy, LocalAI, KoboldCpp, text-generation-webui, TabbyAPI
- Tool runtime with policy enforcement, MCP integration, cron, and memory backends
- Parity upkeep system for upstream drift triage and controlled roll-forward
- Production operations surface (
doctor, replay traces, sync gates, parity artifacts)
NousResearch/hermes-agent is the canonical upstream product surface.
Hermes Agent Ultra keeps that surface in scope while focusing on:
- deterministic Rust execution paths
- explicit safety and policy controls
- better observability and incident debugging
- easier operator workflows for long-running local and gateway sessions
Ultra keeps parity work separate from intentional extensions.
Runtime policy engine: enforce/audit/simulate tool policy decisions at runtimeSession branching + time-travel: checkpoint/rollback/replay navigation from the TUITool-call simulator: preview policy allow/deny outcomes before running risky tool invocationsAdaptive repo-review budget controls: tune discovery-loop trimming live (balanced/aggressive/relaxed/off)Semantic repo graph: inspect dependency hubs/edges with inline Mermaid previewProvider QoS router controls: inspect route learning/health and apply autotune from chatLive session eval harness: score real saved sessions and gate quality trends from actual usageRTK raw-mode controls: inspect unwrapped tool payloads when debugging integrationsMemory fusion: ContextLattice + external memory providers with scoring/fusion logicOne-true-harness cockpit:/harnessandharness_cockpitunify skills, proof, OIDC, replay, objectives, onboarding, and chaos probesUltra autonomy cockpit:ultra_autonomy,/harness autonomy, andharness.autonomyexpose task boards, loop detection, resource-governed subagents, ContextLattice-first memory lifecycle, channel surfaces, and objective-to-board planningOne-command always-on UX:hermes-ultra upcomposes gateway service install/start/status into a single operator commandAdvanced sync gates: differential parity checks, red-team/adversarial gating, elite sync gateOperational tooling: deep doctor snapshots, replay traces, queue-based upstream webhook syncRust-only implementation strategy: parity in Rust first; no direct Python runtime vendoring
curl -fsSL https://raw.githubusercontent.com/sheawinkler/hermes-agent-ultra/main/scripts/install.sh | bashThe one-line installer is safe to run on machines that also have upstream
NousResearch Hermes installed as hermes: by default it installs
hermes-agent-ultra and hermes-ultra only, leaving any existing hermes
command untouched. In non-interactive curl | bash installs, post-install
doctor/auth/setup probes are skipped by default; run setup later with
hermes-ultra setup, or opt in during install with:
curl -fsSL https://raw.githubusercontent.com/sheawinkler/hermes-agent-ultra/main/scripts/install.sh | bash -s -- --setupCustom install path:
curl -fsSL https://raw.githubusercontent.com/sheawinkler/hermes-agent-ultra/main/scripts/install.sh | sudo INSTALL_DIR=/usr/local/bin bashcargo install --git https://github.com/sheawinkler/hermes-agent-ultra hermes-cli --locked --bin hermes-agent-ultra --bin hermes-ultraNeed a shorter path? See README_QUICKSTART.md.
Setup:
hermes-ultra setupMem0 memory setup supports cloud, self-hosted, and OSS-style endpoints:
hermes-ultra memory setup mem0 --mode selfhosted --host http://127.0.0.1:24220 -yAdd --api-key ... only when the self-hosted server requires auth; Hermes writes the host to mem0.json and the secret to $HERMES_HOME/.env.
Interactive session:
hermes-ultraInteractive mode is single-instance per Hermes home by default (prevents accidental parallel TUI sessions sharing the same state).
If you intentionally want parallel interactive sessions, run:
HERMES_ALLOW_PARALLEL_INTERACTIVE=1 hermes-ultraOne-shot query:
hermes-ultra chat --query "summarize this repository"Gateway mode:
hermes-ultra gateway --liveHermes Agent Ultra still supports direct provider and per-tool keys. If you prefer one managed subscription for model access plus hosted tool backends, Nous Portal can cover:
- 300+ models, selectable with
/model <name>. - Tool Gateway routing for web search, image generation, text-to-speech, and cloud browser backends.
Fresh install path:
hermes-ultra setup --portalThat starts Nous OAuth setup, sets Nous as the provider, and enables Tool Gateway routing. Inspect the current state with:
hermes-ultra portal infoYou can still bring your own keys for individual tools; gateway routing is per backend, not all-or-nothing.
Deep diagnostics bundle:
hermes-ultra doctor --deep --snapshot --bundleOptional Sentrux MCP profile:
Full MCP guide: docs/mcp.md
hermes-ultra mcp sentrux
hermes-ultra mcp sentrux-statusKey operator commands:
# Capability diagnostics for current or target model
/model explain
/model why-not --cap tools,reasoning --min-context 200000
/swarm status
/swarm plan graph
/swarm run 4 sequential
# Deterministic trace controls
/raw trace status
/raw trace verify
/raw trace export 200
# Runtime policy packs
/policy list
/policy strict
/policy standard
/policy dev
# Adaptive intelligence-performance autopilot
/ops autopilot status
/ops autopilot run
/ops autopilot recommend
/ops autopilot apply
# OpenHuman-derived P0/P1 operator control-plane
/commands search boot
/boot quick
/boot profile prod
/walkthrough start quick
/walkthrough insights
/integrations status
/integrations repair
/integrations snapshot
/triage eval webhook "secret leak panic outage"
/triage feedback webhook critical "secret leak panic outage"
/subconscious status
/subconscious profile strict
/subconscious run 2 --dry-run
/compress rules recommend
/compress rules autotune apply user
# Session time-travel + simulation
/timetravel list
/timetravel goto <snapshot>
/simulate terminal {"cmd":"ls -la"}
# QoS + eval runtime surfaces
/qos status
/qos health
/ops budget balanced
/ops eval runhermes-ultra setup now includes local/self-host provider options with no mandatory API key:
ollama-local(defaulthttp://127.0.0.1:11434/v1)llama-cpp(defaulthttp://127.0.0.1:8080/v1)vllm(defaulthttp://127.0.0.1:8000/v1)mlx(defaulthttp://127.0.0.1:8080/v1)apple-ane(defaulthttp://127.0.0.1:8081/v1)sglang(defaulthttp://127.0.0.1:30000/v1)tgi(defaulthttp://127.0.0.1:8082/v1)lmstudio(defaulthttp://127.0.0.1:1234/v1)lmdeploy(defaulthttp://127.0.0.1:23333/v1)localai(defaulthttp://127.0.0.1:8080/v1)koboldcpp(defaulthttp://127.0.0.1:5001/v1)text-generation-webui(defaulthttp://127.0.0.1:5000/v1)tabbyapi(defaulthttp://127.0.0.1:5000/v1)
Override endpoint URLs via env vars:
OLLAMA_BASE_URLLLAMA_CPP_BASE_URLVLLM_BASE_URLMLX_BASE_URLAPPLE_ANE_BASE_URLSGLANG_BASE_URLTGI_BASE_URLLMSTUDIO_BASE_URLLMDEPLOY_BASE_URLLOCALAI_BASE_URLKOBOLDCPP_BASE_URLTEXT_GENERATION_WEBUI_BASE_URLTABBYAPI_BASE_URL
Detailed guide: docs/local-backends.md
Ultra auto-loads high-value project and persona context:
SOUL.mdAGENTS.mdDESIGN.md.hermes.md/HERMES.mdMEMORY.md/USER.md
Subdirectory discovery is enabled so context follows the code path being edited.
Skills commands support multi-registry search/install and local tap flows.
- Default GitHub skill taps include OpenAI, Anthropic, VoltAgent, Matt Pocock, Addy Osmani, Google, Obsidian, design-skill, Loopy, GitHub Copilot, gstack, and MiniMax roots where those repos expose a clear skill directory.
- Registry-aware installs include:
official/...skills.sh/...github/...lobehub/...clawhub/...claude-marketplace/...
- Mandatory skill security scanning runs before install and before use.
Use /harness in the TUI or the harness_cockpit tool for the curated
one-true-harness index, including Matt Pocock teach, domain-modeling,
grill-with-docs, codebase-design, and architecture-deepening workflows.
Use /harness autonomy or the ultra_autonomy tool for board execution,
loop detection, resource admission, ContextLattice-first memory lifecycle, and
objective-to-board planning. Dashboard clients can call harness.autonomy via
/v1/rpc; see Ultra Autonomy Surfaces.
hermes-http supports a Rust-native dashboard OIDC mode while preserving
HERMES_HTTP_API_KEY bearer access for machine clients.
Minimum OIDC env:
HERMES_DASHBOARD_AUTH_PROVIDER=oidc
HERMES_DASHBOARD_OIDC_ISSUER=https://issuer.example
HERMES_DASHBOARD_OIDC_CLIENT_ID=hermes-dashboard
HERMES_DASHBOARD_SESSION_SECRET='replace-with-strong-random-secret'Optional env includes HERMES_DASHBOARD_OIDC_CLIENT_SECRET,
HERMES_DASHBOARD_OIDC_REDIRECT_URI, HERMES_DASHBOARD_OIDC_SCOPES,
HERMES_DASHBOARD_OIDC_ALLOWED_EMAILS, HERMES_DASHBOARD_OIDC_ALLOWED_DOMAINS,
HERMES_DASHBOARD_COOKIE_SECURE, and explicit authorization/token/JWKS endpoint
overrides.
OpenHuman runbooks and matrices:
docs/implementation/openhuman-p0-p1-runbook.mddocs/implementation/openhuman-p0-p1-surface-matrix.mddocs/implementation/openhuman-p2a-p2b-runbook.mddocs/implementation/openhuman-p2a-p2b-surface-matrix.mddocs/implementation/openhuman-p3-swarms-runbook.mddocs/implementation/openhuman-p3-swarms-surface-matrix.md
- Skill content security scanning blocks dangerous patterns and restricted URL targets
- Skill guard modes:
strict(default),relaxed(only blocks destructivermops),off - Policy-controlled tool execution modes:
off,audit,simulate,enforce - Tool policy presets:
strict,balanced,dev,relaxed - Sensitive field redaction in traces/log surfaces
- Guardrails for path traversal, unsafe file ops, and runtime boundary violations
Operator runtime overrides (env):
HERMES_SKILL_GUARD_MODE=relaxedHERMES_TOOL_POLICY_PRESET=relaxedHERMES_MAX_TURNS_UNLIMITED=1(or setmax_turns: 0in config/profile)HERMES_FORCE_RUNTIME_AUTH_REFRESH=1HERMES_AUTH_REFRESH_MAX_RETRIES=6
Ultra uses controlled sync workflows, not blind merges.
- Upstream source of truth:
NousResearch/hermes-agent - Fetch/sync tooling:
scripts/sync-upstream.shscripts/upstream_webhook_sync.py
- Parity artifacts:
docs/parity/.sync-reports/
- Generated at:
20260504-053352 - Source report:
upstream-sync-20260504-053352.txt - Sync timestamp (
timestamp_utc):20260504-053352 origin/mainat sync:1861c5dcfb8cad8dcddb5f15c1a5a8c34c7f1ce2upstream/mainat sync:95f395027f72c69f06bddcecb08da53cfd10c440- Pending commits captured in report:
1512 - Queue summary (
docs/parity/upstream-missing-queue.json): pending121, ported266, superseded5499 - Parity gates (
docs/parity/global-parity-proof.json): releasefail, cifail - Workstream snapshot (
docs/parity/workstream-status.json):upstream/main@55cb4103beba5822303c06b662635e1491ae72f5(generated2026-06-13T16:15:14-06:00)
Note: this repository intentionally tracks parity via queue/gate workflows because upstream and ultra history can diverge materially.
Interested in helping? Start with CONTRIBUTING.md for setup, PR expectations, parity rules, and the no-stub completeness gate.
Canonical/official upstream references:
- Upstream (official): https://github.com/NousResearch/hermes-agent
- Ultra (this repository): https://github.com/sheawinkler/hermes-agent-ultra
- Ultra fork archive (historical): https://github.com/sheawinkler/hermes-agent-rs-fork
Integrated ecosystem references used in Ultra workflows:
- OpenAI skills repository: https://github.com/openai/skills
- Anthropic skills repository: https://github.com/anthropics/skills
- VoltAgent skills aggregation: https://github.com/VoltAgent/awesome-agent-skills
- Ratatui (TUI foundation): https://github.com/ratatui/ratatui
- tui-textarea (composer/editor behavior): https://github.com/rhysd/tui-textarea
Additional ownership, provenance, and credit notes are maintained in UPSTREAM_ATTRIBUTION.md.
Primary Rust workspace crates:
crates/hermes-agent: agent loop, memory orchestration, provider controlcrates/hermes-tools: tool registry and execution backendscrates/hermes-cli: CLI/TUI, setup, model/personality switching, operator commandscrates/hermes-gateway: gateway adapters and live runtime pathscrates/hermes-skills: skill storage, guardrails, hub and registry pathwayscrates/hermes-mcp: MCP transport/client/server supportcrates/hermes-config: config model and runtime loadingcrates/hermes-telemetry: tracing and metrics surfaces
Distributed under this repository's license and notices.
See LICENSE, NOTICE, and UPSTREAM_ATTRIBUTION.md.