Hermes
Apothem harness adapter for Hermes (Preview).
Vendor: Hermes
Install name: hermes
Status: Preview
Native config: ~/.hermes/config.yaml
Installation
apothem install --harness hermesThe adapter translates the shared profile to the Hermes Agent user-global configuration file and installs Apothem support cohorts under the harness root.
Files written: ~/.hermes/config.yaml, the profile document
~/.hermes/apothem/rules/00-apothem-profile.md, and support files under
~/.hermes/.apothem/support/
The profile document ends with an Apothem support files section that names
the absolute directory under ~/.hermes/.apothem/support/ each
repository-style citation (rules/<name>.md, templates/..., hooks/...)
resolves against.
Profile-to-native-config mapping
The adapter reads Apothem's shared profile and renders the native YAML config,
including the profile's MCP inventory. The MCP servers come from the profile's
mcp_servers section. They are rendered into config.yaml on each install and
update, not copied as files. The adapter also adds
~/.hermes/.apothem/support/skills to skills.external_dirs, the list of extra
skill directories Hermes reads, which is how Hermes finds the installed skills.
The entry goes after any entries you already list, and your other keys stay as
they are. The profile's identity, preferences, and rules go into the profile
document. Shared commands, skills, helper definitions, rules, templates, and
hook prompts land as support material under ~/.hermes/.apothem/support/.
Compatibility notes
Preview adapter. Hermes loads the Apothem skills through
skills.external_dirs, but it does not load the rest of the support tree or the
profile document on its own: nothing else in config.yaml and none of the
context files Hermes reads point there, so after install Hermes runs without
Apothem's rules or hooks.
Name clashes. Hermes documents this order of precedence for skills: the
project's skills (<project>/.hermes/skills/ and <project>/.agents/skills/),
then ~/.hermes/skills/, then skills.create_dir, then the folders listed under
skills.external_dirs. The Apothem directory is an external_dirs entry, so it
comes last. The Hermes docs reviewed do not state which copy Hermes loads when
two locations hold a skill of the same name; Apothem reads the order as earlier
locations winning, so expect a skill of the same name that you keep in an earlier
location to take precedence over the Apothem copy. Apothem writes only to
config.yaml and under ~/.hermes/.apothem/support/, never into those earlier
locations, so install, update, and uninstall do not replace a skill you keep
there.
apothem update keeps keys you add to config.yaml, including
skills.config and your own skills.external_dirs entries. The adapter writes
the profile's MCP inventory under the top-level mcp_servers key, where Hermes
reads MCP servers. Earlier Apothem releases wrote it under auxiliary.mcp,
which Hermes reads as the auxiliary model for MCP tool dispatch; both
apothem update and apothem uninstall remove that block when it still
matches what such a release would write from your current shared profile (see
Uninstalling for when it stays). (Hermes behavior per its user
guide pages on
skills,
read 2026-10-24, and
MCP,
read 2026-10-02.)
Comments in config.yaml. Apothem rewrites the file with a YAML library
that drops comments. When the file carries comments of yours and the entry is
missing, Apothem leaves the file untouched and install stops with a message that
names the key. Add the entry yourself, then run the install again:
skills:
external_dirs:
- ~/.hermes/.apothem/support/skillsAn entry you add yourself counts as yours: if you already list this directory, Apothem keeps your entry as it is and uninstall leaves it in place.
Verification
apothem verify --harness hermesThe verify command confirms that:
- The native config exists at the expected path.
- Each managed target exists; managed files are non-empty, and JSON or YAML
configs parse. Add
--profile PATHto also confirm that the installed files match that profile. skills.external_dirsin the native config lists~/.hermes/.apothem/support/skills. Without that entry Hermes does not load the installed skills;apothem updateadds it back.- The adapter-specific verification routine reports success.
Updating
apothem update --harness hermesRe-derives the native config from the current shared profile state; the Apothem
entry in skills.external_dirs stays listed once however often you update.
Run after editing ~/.config/apothem/profile.yaml or upgrading the installed
Apothem package.
Uninstalling
apothem uninstall --harness hermesRemoves what the adapter added: the mcp_servers entries and the
skills.external_dirs entry its install recorded in config.yaml (your own
keys stay, including your own external_dirs entries and skills.config, and
the file is deleted only when Apothem created it and nothing of yours is left),
the profile document, and the support tree. The shared profile YAML and Apothem
engine are unaffected.
An install made by an earlier release, which wrote the profile's servers under
auxiliary.mcp, also has that block removed when it still matches what that
release would write from your current shared profile at
~/.config/apothem/profile.yaml. This is the same rule apothem update applies,
so uninstalling without updating first leaves no stale block while the profile's
MCP servers are unchanged. A block you have edited, one that no longer matches
your current profile's MCP servers, or one with no readable shared profile to
compare against, stays in place, and the rest of your auxiliary settings
always stay.
Conformity gate
python -m apothem.conformity.gate --all .Troubleshooting
| Symptom | Fix |
|---|---|
| Config file not found | Re-run apothem install --harness hermes |
| Verification failed | Run apothem update --harness hermes, then verify again |
| Unexpected config content | Check ~/.config/apothem/profile.yaml or --profile PATH, then re-run apothem update --harness hermes |
Install stops with a message about comments in config.yaml | Apothem does not rewrite a file it would have to strip comments from. Add the skills.external_dirs entry shown under Compatibility notes yourself, then run the install again |
| An Apothem skill does not appear in Hermes | A skill of the same name in the project or in ~/.hermes/skills/ may take precedence over the Apothem copy: Hermes documents the lookup order but not the clash rule (see Compatibility notes). Also run apothem verify --harness hermes |
Configuration knobs
| Flag | Default | Description |
|---|---|---|
--dry-run | false | Preview install without writing files. |
See also
- All harnesses — the full catalog of supported tools
- Install guide — install Apothem into this harness
apothem harnessesreference — list and inspect adapters from the CLI