hermes - 💡(How to fix) Fix Feature Request: Profile Distributions (shareable, packaged Hermes profiles) [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
NousResearch/hermes-agent#20456Fetched 2026-05-06 06:36:46
View on GitHub
Comments
0
Participants
1
Timeline
4
Reactions
0
Participants
Timeline (top)
labeled ×4

Root Cause

I totally get that, and those are fair points. But I think the stronger case can be made for distributions because:

Code Example

hermes distribution install https://github.com/user/my-profile-distro
# prompted for required API keys
# done

---

my-distribution/
  distribution.yaml     # manifest: name, version, hermes_requires, description
  SOUL.md
  config.yaml
  mcp.json
  skills/
  cron/
  .env.template         # required env vars (descriptions, not actual keys)

---

name: telemetry
version: 0.1.0
description: "Telemetry - Compliance monitoring and review harness"
hermes_requires: ">=0.12.0"
alias: telemetry
env_requires:
  - name: OPENAI_API_KEY
    description: "OpenAI API key for model access"
    required: true
  - name: GRAPHITI_MCP_URL
    description: "URL for Graphiti memory MCP server"
    required: false
    default: "http://127.0.0.1:8000/sse"

---

hermes distribution install https://github.com/user/telemetry-distribution
# prompted for API keys
# done

---

hermes distribution install <path-or-url>
hermes distribution export <profile-name> <dest>
hermes distribution update <profile-name>
hermes distribution list
hermes distribution info <profile-name>
RAW_BUFFERClick to expand / collapse

Hey team, first off: Hermes v0.12.0 is incredible. The profile system, the autonomous curator, 18 messaging platforms, the whole thing. I have been building on top of it for the past few weeks and the experience has been genuinely great.

This feature request comes from a real pain point I keep hitting, and I wanted to lay it out in enough detail that you can see both the problem and a path to solving it without it becoming a maintenance burden.

The problem

I have a specialized Hermes profile. Custom SOUL.md, curated skills, MCP server connections, pipeline settings, cron jobs, the works. It runs beautifully on one machine. But when I need to deploy it to a second machine, or share it with a colleague, the process is: manually create the profile, copy files, remember which env vars to set, hope nothing was missed. Every deployment is manual reconstruction with no guarantee of consistency.

What I am proposing: Profile Distributions

A distribution is a packaged Hermes profile that can be installed with a single command. Think of it as the profile equivalent of what skills already have with URL-based installation, but at the profile level.

hermes distribution install https://github.com/user/my-profile-distro
# prompted for required API keys
# done

A distribution would contain:

my-distribution/
  distribution.yaml     # manifest: name, version, hermes_requires, description
  SOUL.md
  config.yaml
  mcp.json
  skills/
  cron/
  .env.template         # required env vars (descriptions, not actual keys)

The manifest declares what the distribution needs:

name: telemetry
version: 0.1.0
description: "Telemetry - Compliance monitoring and review harness"
hermes_requires: ">=0.12.0"
alias: telemetry
env_requires:
  - name: OPENAI_API_KEY
    description: "OpenAI API key for model access"
    required: true
  - name: GRAPHITI_MCP_URL
    description: "URL for Graphiti memory MCP server"
    required: false
    default: "http://127.0.0.1:8000/sse"

Update semantics

This is where it gets interesting. When a distribution updates, what gets replaced and what gets preserved?

Distribution-owned (replaced): SOUL.md, config (merged with local overrides), skills shipped by the distribution, cron jobs shipped by the distribution.

User-owned (preserved): memories, sessions, state.db, auth.json, .env (actual keys), user-added skills, anything in a local/ directory.

Same pattern as OS package managers: config merges, data is never touched.

Anticipating concerns

If I were in your shoes managing this level of output and community momentum, I would probably be thinking:

  • "This is just profiles with extra steps. People can clone a git repo into ~/.hermes/profiles/ and they are good."
  • "Skills are our extensibility unit, not profiles. We do not want to maintain a second packaging system."
  • "This adds surface area and maintenance burden for something that might be an edge case."

I totally get that, and those are fair points. But I think the stronger case can be made for distributions because:

  1. git clone works for a single deployment, but it does not prompt for required environment variables, does not check Hermes version compatibility, and does not know how to update a profile without blowing away the user's memories and sessions. The moment you have two machines or two people sharing a profile, the manual approach falls apart. The distribution layer is the thin piece that makes profiles truly portable.

  2. Skills are absolutely the right unit for individual capabilities. A distribution does not replace skills; it bundles them. A profile is a coherent opinion about how to use Hermes: which skills, which MCP servers, which SOUL, which cron schedule, all working together as a system. Skills and distributions operate at different levels of abstraction and complement each other.

  3. The v1 implementation is genuinely lightweight. hermes distribution install <path> copies files into ~/.hermes/profiles/<name>/, reads the manifest, prompts for env vars, done. hermes distribution export is even simpler: basically cp -r plus generating a manifest. No registry, no publishing, no three-way merge needed for v1. The heavier features can come later if there is demand.

  4. The more people building specialized profiles on Hermes, the more people running Hermes as their daily driver. Imagine someone builds a "Code Review Specialist" profile, or a "Research Assistant" profile, or a compliance monitoring harness, complete with the right SOUL, the right skills, the right MCP connections, and the right cron schedule. Today there is no way to share that as a unit. Distributions would make profiles a first-class shareable artifact and lower the barrier for others to adopt what someone has built. That is how ecosystems compound.

My use case

Telemetry is a compliance-related harness built as a Hermes profile. It includes a custom SOUL.md, MCP connections to a Graphiti memory graph, specialized skills for compliance-related work, a multi-model intelligence pipeline, and domain-specific cron jobs. Today, deploying Telemetry to a new machine means manually creating the profile and copying files. With distributions it would be:

hermes distribution install https://github.com/user/telemetry-distribution
# prompted for API keys
# done

CLI surface (proposed)

hermes distribution install <path-or-url>
hermes distribution export <profile-name> <dest>
hermes distribution update <profile-name>
hermes distribution list
hermes distribution info <profile-name>

I'd be happy to contribute however I can to the implementation of this feature. The design is informed by building Telemetry as a Hermes profile over the past few weeks and running into portability limitations repeatedly. Thanks for considering it.

extent analysis

TL;DR

Implementing a profile distribution feature in Hermes would allow users to easily share and install pre-configured profiles, addressing the current pain point of manual profile reconstruction.

Guidance

  • To address the issue, consider designing a distribution system that packages a Hermes profile into a single installable unit, containing a manifest, SOUL.md, config.yaml, and other necessary files.
  • The distribution manifest should declare dependencies, required environment variables, and version compatibility to ensure seamless installation and updates.
  • When updating a distribution, preserve user-owned data such as memories, sessions, and state.db, while replacing distribution-owned components like SOUL.md and skills.
  • Implementing a simple hermes distribution install command with env var prompting and version checking can provide a basic solution for profile portability.

Example

hermes distribution install https://github.com/user/my-profile-distro

This command would install the profile distribution, prompting for required API keys and ensuring version compatibility.

Notes

The proposed solution focuses on creating a lightweight distribution system, leaving room for future enhancements and heavier features. The design should prioritize simplicity, portability, and user experience.

Recommendation

Apply a workaround by using a manual cloning and configuration process until a formal distribution feature is implemented, as this will allow users to share profiles while the community discusses and refines the distribution concept.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix Feature Request: Profile Distributions (shareable, packaged Hermes profiles) [1 participants]