Skip to content

About

Plugin enabling the collective wisdom features

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Collective Wisdom for Hermes Agent

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.

Requirements

  • 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.

Install

hermes plugins install NousResearch/hermes-collective-wisdom --enable

Install 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).

Update

hermes plugins update collective-wisdom

Update 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.

Sign in and enable

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 in

Then enable Collective Wisdom for this profile:

hermes wisdom setup

Setup 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.

Verify

hermes wisdom status          # "active" when the profile is enrolled
hermes wisdom browse          # your team's shared skills; empty until someone shares

What you can do

Find what is worth sharing

hermes 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.

Suggestions from Hermes

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.

Share a skill

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.

Publish a new version

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.

Discover skills

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 versions

The same reads work as /wisdom browse, /wisdom show and /wisdom versions in any Hermes chat.

Install a skill

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.

Keep installed skills current

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 trash

Updates are always reviewed and applied by you. If you edited an installed skill locally, the update stops rather than overwrite your changes.

Unpublish, take down and restore

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.

Where it works

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.

Commands

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.

Configuration

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 false

hermes 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.

Access and roles

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.

Security checks

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.

Privacy and data use

  • 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. top reads them locally.
  • Models: /wisdom share-suggest sends 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's SKILL.md to 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 with hermes 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.

Troubleshooting

  • "Collective Wisdom credentials are unavailable": run hermes auth status nous and 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: run hermes wisdom setup in 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.

Disable or remove

hermes plugins disable collective-wisdom    # keep it installed, stop it loading
hermes plugins remove collective-wisdom     # uninstall the plugin

Removing the plugin does not delete the skills it installed. They stay in your profile's skills directory as ordinary skills.

Development

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 test

Tests 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.

License

MIT. See LICENSE.

About

Plugin enabling the collective wisdom features

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages