hermes - 💡(How to fix) Fix feat: Skill ownership and permission system for multi-user gateway

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…

Fix Action

Fix / Workaround

In a multi-user gateway setup (WeCom, Telegram, Discord, etc.), all users share the same skill pool under ~/.hermes/skills/. Any user can ask the AI Agent to modify or delete any skill via skill_manage (create/patch/edit/delete), regardless of who created it.

RAW_BUFFERClick to expand / collapse

Problem

In a multi-user gateway setup (WeCom, Telegram, Discord, etc.), all users share the same skill pool under ~/.hermes/skills/. Any user can ask the AI Agent to modify or delete any skill via skill_manage (create/patch/edit/delete), regardless of who created it.

This means:

  • User A creates a carefully crafted skill with business logic
  • User B (maybe a different department or even external) can silently modify or delete it
  • There is no concept of skill ownership or access control

This is a security and integrity concern for teams using Hermes in production.

Proposed Solution

Add an owner field to skill metadata (frontmatter) and enforce write-permission checks in skill_manage:

1. Skill frontmatter addition

---
name: my-skill
owner: moment          # creator / owner identifier
permission: owner-write  # "owner-write" | "readonly"
---
  owner  : the user/platform ID who created the skill
  permission  :
  owner-write   (default for new skills): only the owner can modify/delete
  readonly  : no one can modify (useful for shared infrastructure skills)
2. CLI interface
# View permissions
hermes skills list --show-owner

# Change owner (only current owner can do this)
hermes skills permission set <skill> --owner <user>

# Set read-only mode
hermes skills permission set <skill> --mode readonly
3. Gateway-aware enforcement
When a user on a gateway platform (WeCom, Telegram, etc.) tries to
modify a skill via slash command or the AI's   skill_manage   tool:
If the user's identity matches   owner   → allow
If not → reject with message: "This skill is owned by {owner}.
Only the owner can modify it."
  readonly   skills reject modification from everyone
4. Backward compatibility
Existing skills without   owner   field = world-writable (current behavior)
The   permission   field is optional; absent = world-writable
  hermes curator pin   can coexist — pin protects from auto-archive,
owner-permission protects from user edits
Use Cases
Team shared skills: Admin creates and maintains shared skills;
team members use but cannot accidentally break them
Department isolation: Each department's skills are owned by
their lead, preventing cross-department modification
Production safety: Critical automation skills (deployment,
database operations) are locked to specific owners

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