Delegate real-world actions from Claude Code, Codex, and other agents to Hermes Agent.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
๐ก Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
A configurable bridge that lets external agents delegate real-world actions to Hermes Agent without reimplementing Hermes skills, tools, platform integrations, browser automation, cron jobs, or messaging flows.
Use it from Claude Code, Codex, Cursor, CI jobs, shell scripts, or any MCP-capable client.
Coding agents are good at understanding a repository. They should not duplicate your automation stack.
If an agent needs to do something outside its local coding session โ research, schedule a job, open a browser workflow, send a message, prepare a social post, use a Hermes skill, or coordinate with a messaging gateway โ it can delegate that request to Hermes through this bridge.
hermes-action run command for one-shot delegation.execute to request-approval by default, with per-preset trust overrides.--yolo mode for users who intentionally want to bypass bridge-level policy.E2BIG).hermes, or configured with a custom command path.Check Hermes:
Install from npm:
Install the skill and MCP registration for Codex and Claude Code, then verify the complete setup:
Global installation is all-or-nothing for the requested agents. If Codex or
Claude Code is unavailable, conflicting, or cannot verify its user-scoped
stdio MCP entry, the command exits non-zero without installing the requested
skills. Use --project for an explicit skill-only setup.
Choose the channel that matches the agent surface. Hermes Agent must always be installed and configured on the same computer as the local bridge.
| Channel | What it configures | Install |
|---|---|---|
| npm installer | Skill and verified user-scoped MCP for Codex CLI/app and Claude Code | hermes-action install all |
| Claude Code marketplace | Claude plugin with the Skill and a version-pinned MCP server | claude plugin marketplace add TheBlueHouse75/hermes-action-bridge, then claude plugin install hermes-action@hermes-action-bridge |
| Claude Desktop | Self-contained MCPB extension for the bridge runtime | From the latest GitHub Release, download hermes-action-bridge-<version>.mcpb and open it with Claude Desktop |
| Agent Skills | Portable instructions for supported coding agents | npx skills add TheBlueHouse75/hermes-action-bridge --skill hermes-action-bridge |
| Smithery Skill | Public portable instructions in the Smithery Skill catalog | Check the latest release notes for the verified Skill listing or its pending status |
| Smithery MCPB | The same local MCPB bundle through the Smithery catalog | Check the latest release notes for the verified MCPB listing or its pending status |
The standalone Agent Skill only teaches an agent when and how to delegate; it does not register an MCP server. Use the npm installer, Claude marketplace, or MCPB channel when MCP tools are required.
Maintainers releasing a new version should follow the distribution runbook, which covers the automated release workflow and the manual directory publication checks.
Codex CLI and the Codex surface in the ChatGPT desktop app share the local Codex MCP configuration on the same host. A general ChatGPT connector is a different distribution target: it requires a remotely reachable MCP server and is not installed by this local stdio bundle.
Create a config file in your project:
Ask Hermes for a safe plan:
Delegate with a context file:
Run a dry-run to inspect what will be sent to Hermes:
plan: Hermes is instructed to return a plan only. Treat it as open-world because configured tools remain available.draft: Hermes produces an artifact only. No external side effects.execute: Hermes may execute allowed actions, while still following Hermes' own safety rules.request-approval: Hermes prepares an action without executing it. MCP
callers should use hermes_prepare and then call hermes_approve only after
explicit human approval.The guard is deterministic and language-agnostic: in execute mode the bridge switches to request-approval by default โ regardless of the prompt's wording or language โ unless the preset is explicitly trusted (empty require_approval_for) or --yolo is set. It does not try to infer risk from keywords. See Security model for why the real barrier is your coding agent's own approval prompt.
Risk categories below are informational only: the bridge surfaces the ones it recognizes in the prompt envelope to help you and Hermes decide, but they never drive the mode. (Keyword matching is English-biased and trivially evaded, so it must not be a security control.)
publish_externalsend_messagesend_emaildeletepaymentgit_pushcredential_changeYOLO mode is off by default.
YOLO only bypasses the bridge policy. It does not remove Hermes Agent's own safety rules, provider/tool approval prompts, or platform constraints.
Use it only when the caller and environment are trusted.
By default every execute is downgraded to request-approval โ the right default when an agent might act unattended. When you are the one asking for an action and want it to run without that extra gate, define a trusted preset: one whose require_approval_for is an empty list. Put it in your user config so it is yours alone and available in every project:
Run actions through it โ execute stays execute, with no downgrade and no --yolo needed:
Keep it safe:
hermes-action run (execute/yolo) (see Security model).SKILL.md stays cautious for everyone else.hermes-action loads config in this order:
User config path:
Project config path:
Example:
The bridge builds one prompt envelope (policy header + your request + every <context> block) and hands it to Hermes. Two guardrails keep that reliable:
runtime.max_context_bytes, default ~768 KiB, plus a fixed 250 KiB per-file cap). Exceeding it fails fast with an actionable message โ Context total N bytes exceeds the limit ... Split your handoff or raise runtime.max_context_bytes. โ instead of a cryptic E2BIG spawn crash. The default leaves headroom under the operating system's argument-size limit.0600 temp file and tells Hermes to read that file (injecting a file toolset for the call). This sidesteps the OS argument limit. Two caveats: it adds one tool-calling turn, and the real ceiling becomes the model's context window โ a multi-megabyte file may only be partially read. The temp file is removed after the run; only an uncatchable kill of the bridge process itself could leave it behind (mitigated by the 0600 mode and the OS temp reaper).Every run is bounded by a timeout (default 180s for plan/draft, 600s for execute/request-approval). Override per run with --timeout <seconds> or globally with runtime.timeout_seconds. On expiry the Hermes child is sent SIGTERM, then SIGKILL after a short grace, and the result is marked as timed out.
hermes-action doctor prints the effective limits, and hermes-action run --dry-run --json reports the computed prompt size (promptBytes, promptChars) and whether delivery would use argv or a temp-file.
Common run options:
Instead of pasting instructions and MCP snippets by hand, run the complete installer. It installs the open-standard skill and registers the local stdio MCP server through each agent's own CLI:
Install behavior is safe by default: it uses a stable absolute bridge path,
does not depend on an interactive PATH, never modifies CLAUDE.md /
AGENTS.md unless you pass --project-hint, and refuses to overwrite either a
foreign skill or a customized MCP entry. Re-running it is idempotent. Use
--project for a project-local skill only and --dry-run to preview
operations.
The generated skill is shown in examples/claude-code/SKILL.md. Project-hint usage is documented in examples/claude-code/CLAUDE.md and examples/codex/AGENTS.md.
Codex users can install the delegation skill and the MCP server together as a plugin:
This registers the hermes-action MCP server and the Hermes delegation skill
in Codex. Hermes Agent must be installed locally โ the plugin runs the
version-pinned npm package with npx.
Faster MCP startup:
npxre-resolves the package on every server start. The native installer registers the absolute global launcher instead.
Register the global MCP server for Codex and Claude Code without reinstalling their skills:
For other JSON MCP clients, or a Claude Code project-scoped configuration,
write or merge .mcp.json directly while preserving other servers:
Or configure it by hand:
You can always call the bridge directly, without a skill:
Run:
Exposed tools:
hermes_run: delegate a request to Hermes. Optional overrides: mode, preset, contextFiles, yolo, dryRun, and โ to trade cost for speed on simple tasks โ model, provider, maxTurns, timeoutSeconds.hermes_plan: shortcut for hermes_run with mode=plan.hermes_capabilities: report configured presets, skills, toolsets, runtime, and policy without inventing live integrations.hermes_presets: list configured presets.hermes_status: check the configured Hermes runtime command.hermes_submit, hermes_job_status, hermes_result, hermes_cancel:
manage bounded, process-local asynchronous jobs.hermes_prepare, hermes_approve, hermes_reject: create and consume a
short-lived one-shot approval before execution.The MCP surface delegates to Hermes instead of mirroring every Hermes tool.
Jobs and approvals are intentionally process-local: restarting the MCP server
clears them. Audit events are written as owner-only JSONL metadata under
$XDG_STATE_HOME/hermes-action/audit.jsonl (or
~/.local/state/hermes-action/audit.jsonl) without prompt, context, token, or
full result content.
The HTTP transport is opt-in and loopback-only by default:
Prefer placing Tailscale Serve in front of that loopback endpoint. Forwarded
*.ts.net requests still require a bearer token, so start the loopback server
with --token-env:
For direct tailnet listening, the bridge accepts only an explicit Tailscale IPv4 address and requires the same bearer-token setup:
The token is never accepted as a CLI value or stored in bridge configuration. Public/wildcard and non-Tailscale addresses are refused.
Functional tests use a fake Hermes binary to verify command construction, prompt wrapping, risk policy, and YOLO behavior without spending LLM credits.
Direct CLI and hermes_run usage assumes a supervised host agent: Claude
Code / Codex ask you to approve the command or tool call. For MCP side effects,
prefer the bridge's additional, testable two-phase flow:
hermes_prepare returns a local no-tool summary and opaque approval ID, and
hermes_approve consumes the unchanged request exactly once after the human
approves it.
The bridge's own guard is a secondary net: execute is downgraded to request-approval by default unless a preset is trusted (empty require_approval_for) or --yolo is set. The bridge never injects --yolo or a bypass flag on its own.
hermes-action run, hermes_run, or
hermes_approve. A command-pattern allowlist cannot distinguish a safe
plan from an execution with side effects..hermes-action.yaml. Keep provider credentials in Hermes Agent, your OS keychain, or the platform's secure store.--yolo as a trusted-local escape hatch, not a default.Built by Cyril Guilleminot, who also makes offline-first voice tools:
MIT
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/hermes-action-bridge)<a href="https://allmcps.com/mcp/hermes-action-bridge"><img src="https://allmcps.com/api/badge/hermes-action-bridge?style=directory" alt="Hermes Action Bridge on AllMCPs" /></a>