Zero-Config Sidecar
Does not install as a fork of Hermes Agent or copy files. It imports your active local installation at runtime, preventing code drift.
Local-first MCP Sidecar • Python • FastMCP
Hermes GPT v0.5.0 connects your local Hermes Agent to ChatGPT, Cursor, Claude Desktop, and Codex CLI. A standalone companion sidecar that imports Hermes internals at runtime to let you search files, execute local commands, read memories, view skills, and delegate work to Codex — safely, without copying files or code.
System Architecture
Hermes GPT acts as a lightweight sidecar. It runs locally alongside your Hermes Agent installation, calling tools dynamically and passing the structured outputs back to your LLM clients.
You ask ChatGPT to "list my skills" or "run build". ChatGPT resolves this request into a Model Context Protocol tool call.
The call is routed to Hermes GPT. Stdio for local apps like Cursor, or HTTP SSE through a secure Cloudflare tunnel for ChatGPT.
Hermes GPT locates the local Hermes Agent directory, imports its core python tool code, and runs the action locally.
Execution is evaluated against your active Operator Level (e.g. read_only, skills, workspace) and server apply mode before returning results.
Interactive Sandbox
Toggle local environment configurations and simulate how ChatGPT requests local commands, reads files, and fetches skills through the FastMCP server.
Capabilities
Hermes GPT is engineered with zero-trust local constraints. It stays out of your project directories and relies on loopback controls to protect your machine.
Does not install as a fork of Hermes Agent or copy files. It imports your active local installation at runtime, preventing code drift.
Supports stdio mode for local IDE integrations (Cursor, Claude Desktop) and SSE transport for streaming web hooks.
Connects directly to your local Hermes state database to search past chats using SQLite FTS5 index logic, gated behind security switches.
Action tiers (from read_only to workspace and owner) restrict mutating tools unless the server apply mode is explicitly set to direct.
Binds to loopback (127.0.0.1) by default. If bound to a public interface without authentication enabled, the server alerts you on startup.
Proactive health checks (hermes_operator_doctor), state snapshots (hermes_operator_snapshot), release readiness assessment (hermes_release_doctor), and safe dry-run-first recovery (hermes_operator_recover). Structured error envelopes provide {success, ok, error, layer, code, safe_message, suggested_action, trace_id} on every failure, with PASS/WARN/FAIL/UNSUPPORTED statuses and automatic secret/path redaction.
How to setup
Hermes GPT runs in Python. Install dependencies, run the server, and add the config block to your editor or web clients.
# Clone the repository
git clone https://github.com/asimons81/hermes-gpt.git
cd hermes-gpt
# Install required dependencies
python -m pip install -r requirements.txt
# Run the local server in stdio mode (default)
python server.py
The server will launch in stdio mode by default, scanning for your local Hermes installation. Set the HERMES_HOME environment variable if you have a custom folder location.
{
"mcpServers": {
"hermes-gpt": {
"command": "python",
"args": ["C:\\Users\\asimo\\hermes-gpt\\server.py"]
}
}
}
To connect local apps like Cursor or Claude Desktop, append this configuration block to your JSON settings file. Make sure to use the absolute path to your server.py file.
python server.py --http --host 127.0.0.1 --port 4750
cloudflared tunnel --url http://127.0.0.1:4750 --http-host-header 127.0.0.1:4750
Because the ChatGPT web client runs remotely in the cloud, you must expose your local Hermes GPT server through a tunnel. Copy the generated trycloudflare.com URL and configure a Streaming HTTP connection in ChatGPT developer mode.
Changelog
Keep track of server version additions, security overrides, and feature releases.
Codex can opt into a namespaced Hermes Operator toolset, while trusted Hermes GPT clients can run asynchronous, policy-gated Codex tasks and reviews. Core stays the default; updates and mutations stay check-first and dry-run-first.
Added env-gated Hermes tool wrappers: hermes_vision_analyze, hermes_web_search, hermes_web_extract. Added hermes_cron_create operator tool with full field support. Shipped first external contribution — macOS gateway PID fallback from gateway_state.json. Expanded gateway diagnostics fields. Fixed Vercel deploy and flaky test. Published to PyPI, GitHub Release, and GitHub Actions publish workflow.
Added four new operator diagnostics tools: hermes_operator_doctor (deep health check), hermes_operator_snapshot (single state summary), hermes_release_doctor (release readiness with PASS/WARN/BLOCKED classification), and hermes_operator_recover (conservative dry-run-first recovery). Introduced structured error envelopes with {success, ok, error, layer, code, safe_message, suggested_action, trace_id} and PASS/WARN/FAIL/UNSUPPORTED status vocabulary across all operator surfaces.
Introduced tiered Operator and Owner safety postures (read_only, cron, skills, skills_config, workspace, owner) expanding the interface to 39 tools. Added dry-run previews for mutating operations, break-glass acknowledgements, cron tools, workspace scoped file actions, configuration editing, and audit logging.
Added FastMCP stdio and streamable HTTP server support. Imports local Hermes file read/search, memory search, and skill list/view capabilities. Provides opt-in environment safety gates for terminal, writes, patches, and session history searches.