u/AdIndependent384

We turned our Hermes instance into a project manager living on Rocket.Chat (plugin + write-up)

We run Hermes on self-hosted Rocket.Chat and gave it a project-manager profile plus access to YouTrack and our company knowledge base, then wired it into chat with an MIT platform plugin (DDP inbound / REST outbound). The team calls it HalfPM according to our company name :D

What it does on the channel:

  • "where are we on project X?" → grouped ticket status + what it flags as risk
  • "summary of open tickets by person" → with clickable links
  • "check tomorrow if Tom updated the contract ticket; if not, DM him and report back here" → finds the ticket, schedules a cron, delivers the DM (survives a gateway restart)
  • "open a ticket for Peter to order coffee" → picks the project, maps the name to a YouTrack user, sets sane defaults — all from the knowledge base

Full write-up: how the plugin, profile, thread context and cron delivery fit together — plus an honest security lesson from red-teaming a bot with real access:

https://halfbitstudio.com/en/ai-virtual-project-manager/

Plugin's open source if you want the same setup. But you can build something simillar on slack too :)

u/AdIndependent384 — 3 months ago

Open-sourced our Rocket.Chat adapter for Hermes Agent — self-hosted AI agent in your team chat

We self-host Rocket.Chat and wanted our Hermes Agent instance to live in it instead of a separate web UI. Published the adapter as a standalone plugin, MIT:

https://github.com/HalfbitStudio/hermes-plugin-rocketchat

How it works

Rocket.Chat talks over two channels, so the adapter does too: inbound messages come in over a long-lived DDP WebSocket (__my_messages__, so it only ever sees rooms the bot is a member of), outbound replies go out over the REST API (chat.postMessage). Standalone plugin — zero changes to Hermes core files, no extra Python deps (uses aiohttp, which already ships with Hermes).

What's in it

  • Threads (tmid), plus thread context — first time it's mentioned in a thread it pulls the prior messages in, so "summarize this thread" works
  • Mention gating — answers only when @-mentioned in channels, always in DMs; configurable per room
  • Voice messages → STT (ffmpeg MP3 pipeline), file upload (two-step rooms.media + mediaConfirm), attachment download with cache
  • Emoji reactions (👀✅❌), typing indicator (RC 8.x compatible)
  • Bidirectional topic sync (Hermes session title ↔ room topic)
  • Cron delivery that survives a gateway restart — the job stores the target room_id, so scheduled messages land even if the gateway bounced in between
  • Reconnect with exponential backoff (2–60s)
  • Agent tools: list/create channels, post to a room by name, open a DM
  • User allowlist — messages from anyone not on it (e.g. pulled in via thread context) get tagged [unverified] and framed as background, not instructions
u/AdIndependent384 — 3 months ago