Date checked: 2026-08-10 against published and locally installed Hermes Agent 0.20.0 (2026.8.3), the live machine-readable official docs, and the canonical ACP Registry.
Socket's Hermes compatibility is a durable, explicit compatibility baseline. Every new or materially changed Socket plugin, skill, and MCP declaration must record and validate its Hermes outcome in the same change. This does not turn Socket into a second plugin bundle: Codex-only runtime surfaces remain host-specific unless a concrete native Hermes implementation is designed.
| Socket surface | Hermes surface | Status |
|---|---|---|
Portable SKILL.md |
GitHub skill tap export or documented no-export decision | Required per changed skill |
.codex-plugin/plugin.json |
None | Not compatible by design |
Socket .mcp.json |
Checked-in mcp_servers translation fragments |
Configuration required |
| Hooks, apps, and custom agents | Host-specific extension decision | Not automatically compatible |
| Runtime tools, hooks, commands, or namespaced skills | Python Hermes plugin | Separate implementation |
Socket Codex plugins are installable distribution bundles; Hermes plugins are
Python runtime extensions. Their shared portable unit is the SKILL.md
workflow, not either host's plugin manifest.
Hermes discovers the root skills/ directory by default after a user adds the
Socket tap. The curated set is:
build-acp-agentbuild-hermes-agent-extensionschoose-agent-integration-protocolchoose-hermes-agent-workflowhermes-agent-compatibilityoperate-acp-agent-integrationoperate-a2a-agent-integrationoperate-hermes-agentoperate-hermes-agent-gatewayoperate-zed-agentuse-nous-research-servicesapp-extension-architecture-workflowdiagnose-apple-entitlementsmailkit-workflowfile-provider-and-finder-sync-workflowmacos-privacy-permissions-workflowmacos-sandbox-file-access-workflowconnect-hopper-mcpresearch-macos-security-controlscript-hopper-analysisuse-ghidrause-hopperchoose-swift-language-toolingsourcekit-lsp-workflowswift-compiler-inspection-workflowswift-semantic-indexing-workflowswift-syntax-tooling-workflowchoose-model-lab-workflowdesign-model-experimentprepare-language-model-datasetfine-tune-language-modelevaluate-language-modelcompare-model-checkpointschoose-apple-model-runtimeresearch-model-representationssteer-language-model-behaviorablate-refusal-representationsevaluate-jailbreak-resilienceevaluate-tool-calling-modelbenchmark-model-runtimepython-testing-workflowcoordinate-external-agentscoordinate-worktrees-and-threadsorchestrate-agent-workrepository-operations-workflowgit-workflowgithub-collaboration-workflowmaintain-github-repositorymaintain-project-repo
hermes skills tap add gaelic-ghost/socket
hermes skills search portability
hermes skills install gaelic-ghost/socket/hermes-agent-compatibilityThe ACP workflows keep source support, package publication, canonical registry
publication, and client runtime proof as separate states. Hermes 0.20.0 ships
an official acp_registry/agent.json and PyPI ACP extra, but the live canonical
ACP Registry did not contain hermes-agent on 2026-08-10. Until an official
entry is accepted and published, Zed users should validate hermes acp --check
and use Zed's custom-agent command rather than an unrelated launcher.
Custom GitHub taps are community sources and Hermes security-scans skills at
install time. Review a finding before using --force; Hermes does not let that
flag override a dangerous verdict.
The expanded Hermes set deliberately separates protocol routing, A2A agent-to-agent operation, day-to-day operation, extension development, messaging/API gateway operation, and Nous-hosted services. The compatibility skill remains responsible only for Socket-to-Hermes classification and export decisions.
The currently exported skills are listed in skills.sh.json. Their canonical
sources remain in their owning child plugins; root skills/ is a checked-in
generated export because the GitHub tap API needs real child directories, not a
symlink mirror. Root skills.sh.json supplies Skills
Hub grouping labels. The historical Socket inventory is not yet fully exported;
the roadmap tracks that migration. New or materially changed skills must either
join the generated tap with grouping metadata or document why their workflow is
not portable to Hermes.
The complete cybersecurity-skills inventory is portable guidance and is
exported under the Cybersecurity Skills grouping. Its Codex manifest and icon
remain host-specific packaging metadata. The initial plugin ships no MCP server,
hook, app, custom agent, or native Hermes runtime surface, so no mcp_servers
translation or Python Hermes plugin is required.
The complete model-lab-skills inventory is portable guidance and is exported
under the Model Lab Skills grouping. Its deterministic Python helpers operate
on caller-supplied local manifests, JSONL results, and model artifacts; they do
not require a host API, MCP server, hook, app, custom agent, or native Hermes
plugin.
The exported Hopper and Ghidra workflows are portable guidance. Hopper's GUI,
Python SDK, and HopperMCPServer remain operator-local runtime surfaces. The
Hopper MCP profile is therefore private user configuration, not a Socket
.mcp.json declaration or a native Hermes plugin.
The exported Swift language-tooling workflows are portable guidance. They resolve and invoke operator-installed Swiftly or Xcode tools but bundle no compiler, SourceKit service, language server, MCP declaration, hook, or native Hermes runtime. Hermes skill-tap support therefore preserves their real instruction contract without presenting the Codex plugin manifest as portable.
The exported Swift package extension workflow is likewise portable guidance. It resolves operator-installed Swiftly and Xcode tools and plans SwiftPM plugin, macro, trait, generated-source, and permission work without bundling a compiler, plugin runtime, MCP server, or native Hermes extension.
The exported F# web-framework workflows are portable instruction contracts. They use the operator's .NET SDK and project dependencies but bundle no runtime, framework package, MCP server, hook, or native Hermes extension. The cloud deployment routing workflow and Dockerized-service release/deployment workflow are also portable guidance: they route Azure work to Microsoft's official Azure Skills plugin and define a clean-CI, exact-digest release contract, but do not claim that Azure MCP, provider credentials, or production deployment adapters are automatically installed or configured in Hermes.
The exported Python workflows are portable guidance. They guide uv-managed
agent services, FastAPI services, FastMCP services, and tests while relying on
operator-installed Python tooling and project dependencies. They package no
MCP server, credentials, hook, app, or native Hermes runtime surface.
The exported repository workflows are portable guidance. They use the
operator's git and, for GitHub work, authenticated gh CLI. They distinguish
read-only inspection from pushing, merging, tagging, deletion, settings
changes, publishing, and release actions; those mutations still need explicit
authority or a repository-owned release contract. The host-neutral coordinator
workflows accompany them so a Hermes agent can record worktree, branch, write,
validation, and handoff ownership. codex-gui-worktree-workflow remains
Codex-specific because its thread association and managed-worktree state have
no Hermes equivalent.
A named autonomous git-steward remains a future native Hermes-plugin
decision. The current tap provides reusable workflow instructions, not a
registered runtime role, slash command, credential store, or additional GitHub
authority.
The exported macOS platform-security workflows are portable instruction contracts. Public app permission, sandbox file-access, and entitlement diagnosis remain in Apple Dev Skills; exact-build private-control research remains in Reverse Engineering Skills; defensive host investigation remains in Cybersecurity Skills. Hermes does not receive a TCC database tool, permission grant service, privileged helper, protection bypass, or native runtime plugin from this work.
-
Classify each changed surface before editing: portable skill, translated MCP, native Hermes-plugin candidate, or Codex-only by design.
-
For each portable skill, edit the canonical child-plugin source, use a lowercase hyphenated directory and matching frontmatter
name, provide a trigger-orienteddescription, and add it to the Hermes export inventory andskills.sh.json. Addmetadata.hermes.categoryandmetadata.hermes.tagswhen discovery benefits. -
For each changed
.mcp.json, update its matching checked-in translation andhermes-mcp/index.yamlentry. A Codex manifest alone never satisfies this requirement. -
For a runtime-only surface, record either its concrete native Hermes plugin design or the reason it remains host-specific; do not add a packaging shim.
-
Regenerate and validate:
just repo-sync just repo-validate
-
Run the root metadata validator and relevant tests before review.
The focused validator fails for malformed frontmatter, wrong names, missing descriptions, stale generated content, grouping drift, machine-local metadata paths, invalid maintained MCP examples, or an unaccounted Socket MCP declaration. It warns, without blocking, when a description exceeds 240 characters.
Socket .mcp.json files are Codex declarations, not portable Hermes config.
Every declared Socket MCP configuration, including each new or changed one, is translated under
hermes-mcp/, with the complete inventory and setup status in
hermes-mcp/index.yaml. Copy the chosen fragment's
mcp_servers mapping into the operator's private ~/.hermes/config.yaml and
complete any listed setup first. The checked-in fragments never require a
machine-local path.
Hermes config has this shape:
mcp_servers:
socket_example_stdio:
command: "uv"
args: ["run", "python", "app/server.py"]
env:
EXAMPLE_API_KEY: "set-this-in-your-private-config"
tools:
include: [read_status]
prompts: false
resources: false
socket_example_http:
url: "https://example.invalid/mcp"
tools:
include: [read_docs]
prompts: false
resources: trueThe checked-in example YAML demonstrates optional
filtering fields, while the per-plugin fragments preserve each Socket server's
actual name and transport. Replace placeholders in private configuration,
never in Socket. The translations do not add filtering where no direct
safety/namespace reason exists. Configure required secrets through the explicit
env mapping or Hermes process environment, then reload MCP configuration with
/reload-mcp and test the enabled server before use.
An external local server such as Hopper does not join this translation inventory unless Socket begins distributing a portable launcher. Its operator profile belongs in private Codex and Hermes configuration and must use the installed server command plus a deliberately small tool allowlist.
| Socket declaration | Checked-in Hermes translation | Status |
|---|---|---|
| Apple Dev Skills Xcode bridges | apple-dev-skills.yaml |
Manual Xcode setup required |
| Cloud Inference Runpod API and docs servers | cloud-inference-skills.yaml |
Ready; API server needs RUNPOD_API_KEY |
| Professional Dice server | professional-skills.yaml |
Ready; basic public search needs no credential |
Write a dedicated general Python Hermes plugin only when a concrete Socket
feature needs runtime registration: a tool handler, plugin lifecycle hook,
slash command, CLI command, or namespaced skill bundle. A real plugin has its
own plugin.yaml and register(ctx) entry point.
Hermes now documents multiple specialized extension systems in addition to the general plugin API: messaging platform adapters, model providers, memory providers, context engines, secret sources, image and video providers, web search providers, browser providers, desktop plugins, and dashboard plugins. Config-driven TTS, STT, MCP, and shell hooks plus drop-in gateway hooks are separate again. Select the subsystem that owns the behavior; do not hide these contracts behind one generic Socket bridge.
Do not add a generic Socket bridge or boilerplate plugin merely to mirror Codex packaging. Instruction workflows remain skills; external tool servers remain MCP. A native plugin is a separate implementation and distribution decision.
The concrete, prioritized future work is in the Hermes native Python plugin adapter plan. It classifies each candidate as a tool, hook, slash command, CLI command, bundled read-only skill, platform/backend provider, or no adapter, and names the required configuration and test shape before any implementation begins.
This release validates the repository shape and generated tap without mutating a user's Hermes home. It does not claim that every Socket child plugin, MCP server, hook, app, or custom agent runs in Hermes; the required outcome is an explicit, validated compatibility classification, not a fictional universal runtime.
Hermes skill tap supported: the skill is in rootskills/and passes the Hermes validator.Hermes MCP configuration required: a translation is documented, but the operator configures and tests it in Hermes.Native Hermes plugin required: runtime Python registration is needed.Not compatible by design: it is a Codex-only or other host-specific surface.
- Hermes Skills System
covers GitHub taps, root
skills/,skills.sh.json, and frontmatter. - Hermes Creating Skills covers the skill-versus-tool decision and custom tap publishing.
- Hermes MCP covers stdio and HTTP server configuration.
- Hermes MCP Config Reference
defines
mcp_serverstransport, environment, filtering, and timeout fields. - Hermes Plugins defines plugin discovery, general and specialized plugin categories, and Python runtime extensions.
- Hermes plugin developer guide maps general plugins, provider plugins, platform adapters, config-driven extensions, desktop/dashboard plugins, and programmatic integration choices.
- Hermes Programmatic Integration distinguishes ACP, TUI gateway JSON-RPC, and the OpenAI-compatible API server.
- Hermes ACP Editor Integration documents the ACP toolset, shared Hermes state, health checks, sessions, and editor launch paths.
- ACP Registry is the publication source of truth; a source-owned manifest alone is not a published registry entry.
- Nous Portal distinguishes Portal inference, managed Tool Gateway routes, Nous Chat, and subscription-backed services.
- Agent Skills is the shared progressive-disclosure
skill format that keeps Socket's exported
SKILL.mdworkflows portable.