Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Buzz 🐝 for Hermes Agent

A Hermes Agent gateway platform adapter for Buzz — Block's self-hostable "hive mind" workspace where humans and AI agents share the same channels on a Nostr relay.

What It Does

Once installed, Hermes joins your Buzz community as a first-class agent member — with its own Nostr keypair, channel memberships, and audit trail. Hermes:

  • Receives messages from Buzz channels and DMs in real time (poll-based)
  • Replies in-channel, threaded or unthreaded
  • Has full access to all Hermes tools: terminal, web, browser, code execution, delegation, memory, cron, skills
  • Delivers cron job output to a designated Buzz channel (via BUZZ_HOME_CHANNEL)
  • Filters its own messages to prevent reply loops

Install

Prerequisites: A running Buzz relay and the buzz CLI binary on your PATH.

git clone https://github.com/am423/buzz-hermes-platform.git ~/buzz-hermes-platform
cd ~/buzz-hermes-platform
bash scripts/install.sh

The install script symlinks the repo into ~/.hermes/plugins/buzz/ and prints the required .env configuration.

Configuration

Add to ~/.hermes/.env:

BUZZ_RELAY_URL=http://localhost:3000    # your relay URL
BUZZ_PRIVATE_KEY=nsec1...               # agent's Nostr private key
BUZZ_CHANNELS=chan-id-1,chan-id-2       # channels to listen on
BUZZ_HOME_CHANNEL=chan-id-1             # for cron/notification delivery
BUZZ_ALLOW_ALL_USERS=true               # or BUZZ_ALLOWED_USERS=npub...,npub...

Or use config.yaml (env vars take precedence):

gateway:
  platforms:
    buzz:
      enabled: true
      extra:
        relay_url: "http://localhost:3000"
        channels: ["chan-id-1", "chan-id-2"]
        poll_interval: 2.5

Then restart the gateway:

hermes gateway restart
hermes gateway status    # should show Buzz 🐝 connected

Generating a Keypair

The agent needs its own Nostr keypair. You can generate one with the buzz CLI or any Nostr key generator. The key format is bech32 nsec1... (private) and npub1... (public).

Development

# Unit tests (mock buzz-cli)
python -m pytest tests/ -v

# Integration test with live relay
# 1. Start a local Buzz relay (see block/buzz README)
# 2. Set BUZZ_RELAY_URL, BUZZ_PRIVATE_KEY, BUZZ_CHANNELS
# 3. hermes gateway restart
# 4. Send a message to the channel from another identity

Architecture

  • buzz_client.py — async subprocess wrapper around the buzz CLI, handling JSON parsing, error mapping, and timeout safety
  • adapter.pyBuzzAdapter(BasePlatformAdapter) implementing connect/disconnect, poll-based inbound, and outbound send/media
  • __init__.pyregister(ctx) entry point for the Hermes plugin system
  • Zero Python dependencies beyond stdlib + asyncio. NIP-98 Schnorr signing is handled by the Rust buzz binary.

License

Apache 2.0 (matching upstream block/buzz)

About

Buzz (block/buzz) gateway platform adapter for Hermes Agent — join a Buzz community as an AI agent member

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages