Skip to content

Add Hermes Agent Bridge community ability#286

Merged
uzair401 merged 2 commits into
openhome-dev:devfrom
am423:add-hermes-agent
Jul 8, 2026
Merged

Add Hermes Agent Bridge community ability#286
uzair401 merged 2 commits into
openhome-dev:devfrom
am423:add-hermes-agent

Conversation

@am423

@am423 am423 commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

What does this Ability do?

Adds community/hermes-agent, a voice bridge that lets an OpenHome speaker delegate tasks to a local Hermes Agent install. It captures the user request, blocks obviously unsafe requests, confirms local-system-changing tasks, invokes hermes chat -q through exec_local_command(), then rewrites the result for short spoken output.

Suggested Trigger Words

  • "ask Hermes"
  • "run Hermes"
  • "Hermes agent"
  • "send this to Hermes"

Type

  • New community Ability
  • Improvement to existing Ability
  • Bug fix
  • Documentation update

External APIs

  • No external APIs called directly by the OpenHome Ability
  • Uses external API(s):

Hermes itself may use whichever model provider/tools the user configured locally.

Testing

  • Tested in OpenHome Live Editor
  • All exit paths tested (said "stop", "exit", etc.)
  • Error scenarios covered in code (missing task, local Hermes unavailable, rejected risky requests, local command exceptions)
  • Ran python3 validate_ability.py community/hermes-agent/
  • Ran python3 -m py_compile community/hermes-agent/main.py
  • Ran flake8 community/hermes-agent/main.py --max-line-length=120 --ignore=E501,W503
  • Verified changed files are only under community/hermes-agent/

Live Editor testing was not performed from this environment because it requires an OpenHome dashboard/device session.

Checklist

  • Files are in community/hermes-agent/
  • main.py follows SDK pattern (extends MatchingCapability, has register_capability + call)
  • README.md included with description, suggested triggers, and setup
  • resume_normal_flow() called on every exit path via finally
  • No print() — using editor_logging_handler
  • No hardcoded API keys — Hermes/provider credentials stay in the local Hermes install
  • No blocked imports (redis, user_config)
  • No asyncio.sleep() or asyncio.create_task() — using session_tasks.create() only
  • Error handling on all external/local bridge calls

Anything else?

This intentionally follows the contributor guide by adding a community Ability only. It is comparable to the OpenClaw pass-through template but adds availability checks, confirmation gates, shell-safe quoting, response normalization, and voice-focused summarization.

@am423 am423 requested a review from a team as a code owner June 24, 2026 19:23
@github-actions

Copy link
Copy Markdown
Contributor

🔀 Branch Merge Check

PR direction: add-hermes-agentdev

Passedadd-hermes-agentdev is a valid merge direction

@github-actions

Copy link
Copy Markdown
Contributor

✅ Community PR Path Check — Passed

All changed files are inside the community/ folder. Looks good!

@github-actions

Copy link
Copy Markdown
Contributor

✅ Ability Validation Passed

📋 Validating: community/hermes-agent
  ✅ All checks passed!

@github-actions

Copy link
Copy Markdown
Contributor

🔍 Lint Results

__init__.py — Empty as expected

Files linted: community/hermes-agent/main.py

✅ Flake8 — Passed

✅ All checks passed!

@github-actions github-actions Bot added the community-ability Community-contributed ability label Jun 24, 2026

@uzair401 uzair401 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@am423 Thanks for contributing to the OpenHome ecosystem. we're excited to see what you create next. Keep up the awesome work! 🚀

@uzair401 uzair401 merged commit ddb855e into openhome-dev:dev Jul 8, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community-ability Community-contributed ability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants