Official Hermes Agent plugin from Nous Research.
Collective Wisdom lets a team share the Hermes skills that work for them. An author shares a local skill after one exact review, and it appears in the team's skill library in Nous Portal. Teammates find it in the Portal or in Hermes and install that exact version. Hermes can rank your own most-used skills and, when you ask, suggest which ones are worth sharing. Sharing itself always stays your decision.
You stay in control at every step:
- Installing the plugin uploads nothing and enrolls nothing.
- Every share is one review of the exact files that will be published.
- Every install is one exact version, and declared setup commands never run without a separate approval.
- Nothing happens in the background: Collective Wisdom acts only when you run one of its commands.
- Hermes Agent 0.21.5 or newer.
- A Nous account in a team that has Collective Wisdom enabled. Personal accounts do not have access.
- Linux or macOS for installing skills. Windows is not supported for managed skill installation.
hermes plugins install NousResearch/hermes-collective-wisdom --enableInstall clones the repository's default branch, prepares the plugin's Python dependencies, enables
the plugin and then shows the next step, hermes wisdom setup. Installing or enabling the plugin
never runs setup. Plugins are installed per profile: add -p <profile> after hermes for another
profile. Start a new Hermes session afterwards. If you use the messaging gateway, also run
hermes gateway restart.
In Hermes Desktop, enable Collective Wisdom in Capabilities → Plugins (also available through the command palette).
hermes plugins update collective-wisdomUpdate pulls the latest commit of the branch you installed and asks you to approve any new
capabilities the plugin declares. Then start a new Hermes session, and run hermes gateway restart
if you use the messaging gateway.
Collective Wisdom uses the Nous sign-in Hermes already has. Check it, and sign in if needed:
hermes auth status nous
hermes auth add nous # only if you are not signed inThen enable Collective Wisdom for this profile:
hermes wisdom setupSetup shows what data leaves your machine (see Privacy and data use) and
registers the profile with your team after you accept. Changing account or team means running setup
again. Until a profile is set up, every other hermes wisdom and /wisdom command (except status,
help, top and share-suggest, which work without setup) replies with this step and changes nothing. In Telegram and Slack
the reply names the terminal command: setup is accepted only in the terminal.
hermes wisdom status # "active" when the profile is enrolled
hermes wisdom browse # your team's shared skills; empty until someone shareshermes wisdom top ranks your own local skills by how often Hermes used them, then by edits, then by
last use. Skills that came with Hermes, from the Skills Hub or from your team are left out, and skills
you already shared are labelled Shared.
/wisdom share-suggest starts a normal Hermes turn in the current conversation with up to 30 of your
top skills. Hermes answers with up to 10 ranked suggestions, each with a short reason and the exact
command to share it. It never shares anything itself.
When Hermes creates or improves one of your own skills in a session, or uses one that ranks among your top skills, it may later ask itself whether your team would benefit from it. If the answer is yes, a short card appears in the same private chat (Slack DM, Telegram private chat, or your CLI, TUI or Desktop session) with three choices:
- Confirm share opens the normal share review for that skill, in the same chat.
- Don't share skips this version. A later edit may be suggested again.
- Never for this skill stops suggestions for it. Undo with
/wisdom suggestions allow <skill>.
Hermes suggests at most one skill a day and asks about each version once. It never suggests skills
that came with Hermes, from the Skills Hub or from your team, never in group chats, and never from
scheduled jobs or subagents. Nothing is shared until you approve the share review.
/wisdom suggestions (or hermes wisdom suggestions) lists what Hermes suggested and what you
chose.
Hermes checks at the same moments as its own background skill review, once enough of the session's
work has accumulated (skills.creation_nudge_interval). On a Hermes release with plugin session
forks, the check runs like that review: a background copy of your session's agent looks at the
skills from the session and suggests at most one. It can call only the Collective Wisdom
suggestion tool, and it stops when you send your next message. On a Hermes release with plugin side
questions only, Hermes asks your session's agent about one skill instead.
This needs your approval of the llm.session_fork or llm.side_question capability (see
Configuration), and Hermes self-learning on (skills.creation_nudge_interval
above 0 and auxiliary.background_review.enabled not false). Hermes uses the session fork when you
approved llm.session_fork, otherwise the side question when you approved llm.side_question.
If Hermes refuses the session fork, Collective Wisdom asks by side question instead until the
gateway restarts.
Without either, Collective Wisdom works exactly as before and suggests nothing.
hermes wisdom share <skill>Share builds the exact package and shows one review: the team, who will see it, the version, the
description, every file, and the local security checks. You can open a file, edit the description or
the files, then choose Share or cancel. In a private Telegram chat or Slack DM, /wisdom share <skill> opens the same review as a card with Share, Cancel and View details, and only
Share publishes.
The shared name and description come from the skill's SKILL.md frontmatter. Shared copy needs a
name of up to 100 characters and a description of up to 320. If either one is missing or too long,
Hermes sends the SKILL.md to your configured model, which proposes only that field, and the review
says "Description written by Hermes from your SKILL.md". View details shows your original, you can
edit the proposal in hermes wisdom share, and Share publishes exactly what the review shows.
When Hermes cannot propose copy (no model, the setting below is off, the skill may contain a secret,
or the model fails), the review names the exact problem, for example "Description is 839
characters; the limit is 320.", and nothing is uploaded.
The shared requirements come only from what the skill declares (platforms, architectures and
metadata.hermes in SKILL.md), never from the machine that shares it.
The result is one of: shared (with the version, a Portal link and the install command for teammates), already shared, blocked by a security check, name already owned by another author, not entitled, invalid package, or uncertain. An uncertain result names a status command to check; do not share again until you have checked it.
Edit the skill and run the same share command. The review shows the version change, for example v1 to v2. Only the author of a skill can publish new versions under its name.
In the Portal, the team library lists every shared skill with search by name, author and keywords, and highlights skills published or updated since you last looked. A skill's page shows its description, security checks, version history, requirements and the exact install commands.
In Hermes:
hermes wisdom browse [query] # search the team library
hermes wisdom show <skill> # one skill
hermes wisdom versions <skill> # its published versionsThe same reads work as /wisdom browse, /wisdom show and /wisdom versions in any Hermes chat.
hermes wisdom install <skill> # the latest version
hermes wisdom install <skill>@v2 # an exact version
hermes wisdom install <skill> --plan # review without installing<skill> is the skill's name or its ID, both shown in the Portal. A clean package installs straight
away into your profile's skills. If the Hermes skills scanner reports warnings, the install shows them
and waits for your acknowledgement. A skill is blocked only by what its own SKILL.md declares
(platforms, or a minimum Hermes version); a recorded CPU architecture is informational and shows as
a note. Commands a skill declares for setup never run during install;
review and approve them separately with hermes wisdom installed-setup. In Slack and Telegram,
setup commands too long for one card are paged, and Run setup appears once you have seen every
page. A skill can declare any
number of setup commands, up to 256 characters each and 5,120 bytes in total; sharing refuses a
setup document over that limit and names the field and its size.
In a private Telegram chat or Slack DM, /wisdom install <skill> installs from the chat. In Hermes
Desktop, install from the Collective Wisdom page or from the dialog that /wisdom browse opens.
hermes wisdom installed # skills installed through Collective Wisdom
hermes wisdom check <skill> # is a newer version available?
hermes wisdom update <skill> # review and apply one update
hermes wisdom uninstall <skill> # move an installed skill to recoverable trashUpdates are always reviewed and applied by you. If you edited an installed skill locally, the update stops rather than overwrite your changes.
These actions live on the skill's page in the Portal, under Manage skill. Each one asks for a reason.
- Unpublish hides a skill from the library. Its author can unpublish their own skill and publish it again later.
- Take down is the security removal for team owners and admins: only admins can still see the skill. Admins can also restore it, and find retired skills with the library's status filter.
Both stop new installs and updates. Copies already installed keep working, and hermes wisdom check
shows the skill's new state.
| Surface | What you get |
|---|---|
| Terminal | Every hermes wisdom command. |
| Hermes CLI chat and TUI | Reads (browse, show, versions, status, help), top and share-suggest answer in place. Commands that change something reply with the terminal command to run. |
| Hermes Desktop | A Collective Wisdom page with Catalog, Installed and Contribute tabs. In chat, /wisdom browse and /wisdom show open the catalog in a dialog with Install. |
| Telegram private chat, Slack DM | Review and confirmation cards for share, install, update and uninstall, catalog cards, top and share-suggest. Every card is bound to the person who started it. |
| Group chats and channels | Private actions are refused with a pointer to a private chat. No skill names or files are shown. |
| Other platforms | Use the terminal. |
| Command | What it does |
|---|---|
setup |
Accept the data-use disclosure and enroll this profile with your team. |
status |
Show local and service readiness. |
list, browse [query] |
Read the team library. |
show <skill>, versions <skill> |
One skill and its published versions. |
top |
Rank your own skills by usage (--page, --per-page, --json). |
share-suggest |
Ask Hermes which of your skills are worth sharing (chat command). |
suggestions [list|dismiss|never|allow] [skill] |
Review Hermes's suggestions, or record Don't share, Never or allow for a skill. |
share <skill> |
Review and share a skill or a new version. |
install <skill>[@vN] |
Install an exact version; --plan reviews without installing. |
installed, check <skill> |
Installed skills and update availability. |
update <skill> |
Review and apply one update. |
installed-setup |
Review and approve a skill's declared setup commands. |
uninstall <skill> |
Move an installed skill to recoverable trash. |
suggest, prepared, publication |
The individual draft and publication steps behind share. |
help |
Command help. |
Every command takes --help, and most take --json for scripts. In chat, use /wisdom <command>.
In scripts, --yes confirms a share; scanner warnings additionally need --accept-warnings.
| Setting | Default | Purpose |
|---|---|---|
HERMES_SYNC_BASE_URL or sync.base_url in config.yaml |
https://gateway-gateway.nousresearch.com |
The Collective Wisdom service. Change it only when your team runs its own. |
plugins.entries.collective-wisdom.allow_gateway_injection |
true after setup |
Lets Collective Wisdom start a Hermes turn in your TUI, Desktop and messaging chats (/wisdom share-suggest). The classic CLI chat does not need it. setup sets it only when it is unset; a value you wrote, false included, is kept. |
plugins.entries.collective-wisdom.granted_capabilities |
asked on install, enable and update | Approve llm.session_fork (a background copy of your session's agent, which sees the whole session including memory and spends tokens on your model) or llm.side_question (one question to that agent) when Hermes asks, so Collective Wisdom can check whether a skill is worth sharing. The session fork is used when both are approved. Hermes asks only in an interactive terminal; otherwise run hermes plugins enable collective-wisdom there. Without either there are no suggestions. Hermes releases without session forks ignore llm.session_fork. |
auxiliary.hermes_collective_wisdom_share_suggest |
the session's model | The model the session-fork check runs on. Collective Wisdom registers it to inherit auxiliary.background_review; set provider and model here to route the check yourself. |
plugins.entries.collective-wisdom.settings.auto_suggest |
true |
Set to false to stop suggestions from Hermes. |
plugins.entries.collective-wisdom.settings.auto_suggest_daily_limit |
1 |
Suggestions shown per profile per day; 0 stops them. |
plugins.entries.collective-wisdom.settings.qualification.allow_model_review |
unset | Set to false to stop share from sending a skill's SKILL.md to your model to propose a missing or too-long name or description. Unset allows it. |
hermes config set plugins.entries.collective-wisdom.allow_gateway_injection false # opt out
hermes config set plugins.entries.collective-wisdom.settings.qualification.allow_model_review false
hermes config set plugins.entries.collective-wisdom.settings.auto_suggest falsehermes wisdom status shows whether chat turns are allowed and the command that changes it. Use
hermes -p <profile> config set ... for a profile other than the default. With injection off,
/wisdom share-suggest replies with your ranked list and a ready-to-send prompt instead, and
suggestions from Hermes are not shown in TUI, Desktop or messaging chats.
Collective Wisdom is enabled per team. Every member of an enabled team can browse, install and share. Team owners and admins can also take down and restore skills. Access is checked each time Hermes refreshes your Nous sign-in, so a change to the team's access applies without reinstalling anything.
Every share is checked twice before anything is published:
- On your machine, before upload: private keys, live credentials and secret-like assignments block the share. Warnings from the Hermes skills scanner need your acknowledgement, and editing the package resets it. In Slack and Telegram, a list too long for one card is paged: View details lists every finding, and Acknowledge appears once you have reached the last page.
- On the service, before publishing: the package and its description are scanned against the built-in checks and your team's content rules, and scanned again at publish time against the current rules. A blocked package is not published.
Packages can contain the skill's SKILL.md, supporting files, references/, scripts/,
templates/ and assets/, up to 10 MiB in total. Compiled executables, symlinks, hard links,
credentials and private keys are refused. Directories Hermes does not treat as skill content
(.git, node_modules, .venv, venv, __pycache__, site-packages, tool caches and the like,
spelled exactly as Hermes skill discovery matches them) and Python bytecode files (.pyc) are left
out of the package; the share's details list everything left out. A symlink or special file with
one of those names is refused like any other, and a differently cased .git, .github,
node_modules, .venv, venv, .tox or __pycache__ is refused by name. The Collective Wisdom
service also refuses folders named hooks, .hooks, .gitlab or .circleci in any spelling,
Windows device names (CON, aux.md, com1.txt and the like), names with < > : " | ? * or
ending in a dot or space, and two paths that differ only by letter case, so sharing refuses those
first and names the file. A downloaded package that breaks these rules is refused at install.
Scripts in a package are never run during sharing, review or install.
- Network calls: Collective Wisdom talks to the Collective Wisdom service (see Configuration) and uses your existing Nous sign-in. It asks for no other credentials.
- What leaves your machine: only what you approve: the package files and description of a skill you share, its compatibility metadata, and the record of which skills you installed through Collective Wisdom.
- What stays local: usage signals for your skills, read from Hermes's own skill usage records,
stay on your profile.
topreads them locally. - Models:
/wisdom share-suggestsends the names, descriptions and usage counts of up to 30 of your skills to the model of the conversation you run it in, and that model may read those skills' files. When a skill you share has a name or description that cannot be shared as written, share sends that skill'sSKILL.mdto your configured model provider to propose them. It does not when the copy is valid or the local checks find something that looks like a secret. Turn it off withhermes config set plugins.entries.collective-wisdom.settings.qualification.allow_model_review false. Suggestions from Hermes run on the model of the session the skills were learned in: a background copy of that session's agent (which sees the whole session, including memory) gets the names, descriptions and usage counts of up to three of your skills and can call only the suggestion tool; on Hermes releases without session forks, one skill's name, description and usage counts go to that model as a side question. No other command calls a model. - No background activity: there is no telemetry, no polling and no background process. The plugin acts when you run a Collective Wisdom command, and, for suggestions from Hermes, after a turn of your own attended session.
- "Collective Wisdom credentials are unavailable": run
hermes auth status nousand sign in again if your session expired. - The service does not offer Collective Wisdom: your team does not have it enabled yet. Signing in alone does not enable it.
- Setup asks for
--accept-disclosure: runhermes wisdom setupin an interactive terminal to read and accept the disclosure. Use the flag in automation only after it has been accepted. - A share is blocked: remove the flagged content, then run the same share command again. Credential and private-key findings always block; never disable the scanner.
- An uncertain result: run the status command it names. Do not repeat the share or install until you know whether the first one completed.
- A share command is refused in a group chat: sharing happens in a private chat or the terminal.
hermes plugins disable collective-wisdom # keep it installed, stop it loading
hermes plugins remove collective-wisdom # uninstall the pluginRemoving the plugin does not delete the skills it installed. They stay in your profile's skills directory as ordinary skills.
python3.11 -m venv .venv
.venv/bin/python -m pip install -e '.[dev]'
.venv/bin/python -m pytest
.venv/bin/python -m pylint hermes_wisdom_plugin tests
npm ci --ignore-scripts && npm testTests run without live credentials. Testing covers the host-compatibility checks against Hermes releases. Architecture, host APIs, workflows and features document the implementation, and Contributing the development expectations. See Security to report a vulnerability.
MIT. See LICENSE.