mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-18 04:41:56 +00:00
The Foundation Release — Hermes installs and runs anywhere now. Highlights: - Native Windows support (early beta) — PowerShell installer, native subprocess/PTY paths, ~40 follow-up Windows-only fixes - pip install hermes-agent — PyPI wheel - Cold-start wave — ~19s off hermes launch, 180x faster browser_console (CDP WS) - Supply-chain advisory checker + lazy-deps + tiered install fallback - OpenAI-compatible local proxy for OAuth providers (Claude Pro, ChatGPT Pro, SuperGrok) - Cross-session 1h Claude prompt cache (Anthropic / OpenRouter / Nous Portal) - 2 new platforms: LINE + SimpleX Chat (22 total) - Microsoft Graph foundation — Teams pipeline + webhook adapter - /handoff actually transfers sessions live - x_search first-class tool, vision_analyze pixel passthrough - LSP semantic diagnostics on every write - Unified video_generate with pluggable backends - computer_use cua-driver backend - 9 new optional skills, OpenRouter Pareto Code router, xAI Grok OAuth - 12 P0 + 50 P1 closures 808 commits · 633 PRs · 1393 files · 165k insertions · 545 issues closed · 215 contributors
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
"""
|
|
Hermes CLI - Unified command-line interface for Hermes Agent.
|
|
|
|
Provides subcommands for:
|
|
- hermes chat - Interactive chat (same as ./hermes)
|
|
- hermes gateway - Run gateway in foreground
|
|
- hermes gateway start - Start gateway service
|
|
- hermes gateway stop - Stop gateway service
|
|
- hermes setup - Interactive setup wizard
|
|
- hermes status - Show status of all components
|
|
- hermes cron - Manage cron jobs
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
|
|
__version__ = "0.14.0"
|
|
__release_date__ = "2026.5.16"
|
|
|
|
|
|
def _ensure_utf8():
|
|
"""Force UTF-8 stdout/stderr on Windows to prevent UnicodeEncodeError.
|
|
|
|
Windows services and terminals default to cp1252, which cannot encode
|
|
box-drawing characters used in CLI output. This causes unhandled
|
|
UnicodeEncodeError crashes on gateway startup.
|
|
"""
|
|
if sys.platform != "win32":
|
|
return
|
|
os.environ.setdefault("PYTHONUTF8", "1")
|
|
os.environ.setdefault("PYTHONIOENCODING", "utf-8")
|
|
for stream_name in ("stdout", "stderr"):
|
|
stream = getattr(sys, stream_name, None)
|
|
if stream is None:
|
|
continue
|
|
try:
|
|
if getattr(stream, "encoding", "").lower().replace("-", "") != "utf8":
|
|
new_stream = open(
|
|
stream.fileno(), "w", encoding="utf-8",
|
|
buffering=1, closefd=False,
|
|
)
|
|
setattr(sys, stream_name, new_stream)
|
|
except (AttributeError, OSError):
|
|
pass
|
|
|
|
|
|
_ensure_utf8()
|